新Head
This commit is contained in:
@@ -1,72 +1,66 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public class CameraManager : MonoBehaviour, IBaseElement
|
||||
{
|
||||
public Camera backgroundCamera;
|
||||
|
||||
public bool isSceneCameraActive;
|
||||
public SceneCamera sceneCamera;
|
||||
public float sceneCameraMoveSpeed;
|
||||
public float sceneCameraRotateSpeed;
|
||||
|
||||
public PanelDrawer panelDrawer => EditorManager.instance.panelDrawer;
|
||||
|
||||
public GameCamera gameCamera;
|
||||
public bool haveGameCamera => gameCamera != null;
|
||||
public Camera currentCamera => haveGameCamera && !isSceneCameraActive ? gameCamera.cam : sceneCamera.sceneCamera;
|
||||
|
||||
public BaseElement_BM matchedBM { get; set; }
|
||||
|
||||
public void SwitchCamera()
|
||||
{
|
||||
if (!haveGameCamera)
|
||||
{
|
||||
LogWindow.Log("GameCamera is not assigned", Color.red);
|
||||
return;
|
||||
}
|
||||
|
||||
isSceneCameraActive = !isSceneCameraActive;
|
||||
sceneCamera.sceneCamera.enabled = isSceneCameraActive;
|
||||
gameCamera.cam.enabled = !isSceneCameraActive;
|
||||
|
||||
EditorManager.instance.backgroundController.backgroundCanvas.worldCamera = currentCamera;
|
||||
}
|
||||
|
||||
public void SetUpInspector()
|
||||
{
|
||||
string ShowCameraType() => isSceneCameraActive ? "Scene Camera" : "Game Camera";
|
||||
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
|
||||
var container = inspector.GenerateContainer("Camera Manager");
|
||||
|
||||
//切换摄像机,设置场景相机
|
||||
var cameraSettings = container.GenerateSubcontainer(3);
|
||||
var cameraTypeText = inspector.GenerateHintText(this, cameraSettings, ShowCameraType);
|
||||
var switchCameraButton = inspector.GenerateButton(this, cameraSettings, "Switch Camera", SwitchCamera);
|
||||
var cameraMoveSpeedField = inspector.GenerateInputField(this, cameraSettings, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed));
|
||||
var camMethods = container.GenerateSubcontainer(1);
|
||||
|
||||
{
|
||||
var butt1 = inspector.GenerateButton(this, camMethods, panelDrawer.isEditing ? "End Edit" : "Start Edit", () =>
|
||||
{ });
|
||||
butt1.AddListenerFunction(() =>
|
||||
{
|
||||
panelDrawer.SwitchEditing();
|
||||
butt1.buttonText.text = panelDrawer.isEditing ? "End Edit" : "Start Edit";
|
||||
});
|
||||
}
|
||||
|
||||
sceneCamera.SetUpInspector();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public class CameraManager : MonoBehaviour, IBaseElement
|
||||
{
|
||||
public Camera backgroundCamera;
|
||||
|
||||
public bool isSceneCameraActive;
|
||||
public SceneCamera sceneCamera;
|
||||
public float sceneCameraMoveSpeed;
|
||||
public float sceneCameraRotateSpeed;
|
||||
|
||||
public PanelDrawer panelDrawer => EditorManager.instance.panelDrawer;
|
||||
|
||||
public GameCamera gameCamera;
|
||||
public bool haveGameCamera => gameCamera != null;
|
||||
public Camera currentCamera => haveGameCamera && !isSceneCameraActive ? gameCamera.cam : sceneCamera.sceneCamera;
|
||||
|
||||
public BaseElement_BM matchedBM { get; set; }
|
||||
|
||||
public void SwitchCamera()
|
||||
{
|
||||
if (!haveGameCamera)
|
||||
{
|
||||
LogWindow.Log("GameCamera is not assigned", Color.red);
|
||||
return;
|
||||
}
|
||||
|
||||
isSceneCameraActive = !isSceneCameraActive;
|
||||
sceneCamera.sceneCamera.enabled = isSceneCameraActive;
|
||||
gameCamera.cam.enabled = !isSceneCameraActive;
|
||||
|
||||
EditorManager.instance.backgroundController.backgroundCanvas.worldCamera = currentCamera;
|
||||
}
|
||||
|
||||
public void SetUpInspector()
|
||||
{
|
||||
var editBtnRef = new ElementRef<DynamicUIButton>();
|
||||
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Camera Manager")
|
||||
.HintText(() => isSceneCameraActive ? "Scene Camera" : "Game Camera")
|
||||
.Button("Switch Camera", SwitchCamera)
|
||||
.InputField(nameof(sceneCameraMoveSpeed), "Scene Camera Move Speed")
|
||||
.Button(panelDrawer.isEditing ? "End Edit" : "Start Edit", () => { })
|
||||
.Span(3)
|
||||
.WithRef(editBtnRef)
|
||||
.OnChanged(() =>
|
||||
{
|
||||
panelDrawer.SwitchEditing();
|
||||
if (editBtnRef.Value != null)
|
||||
editBtnRef.Value.buttonText.text = panelDrawer.isEditing ? "End Edit" : "Start Edit";
|
||||
})
|
||||
.Build();
|
||||
|
||||
sceneCamera.SetUpInspector();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user