diff --git a/Assets/Scripts/EditorGame/Grids/EditorGrid.cs b/Assets/Scripts/EditorGame/Grids/EditorGrid.cs index 08d93c19..8097735d 100644 --- a/Assets/Scripts/EditorGame/Grids/EditorGrid.cs +++ b/Assets/Scripts/EditorGame/Grids/EditorGrid.cs @@ -23,9 +23,7 @@ namespace Ichni.Editor void Start() { - if (sceneCamera == null) - sceneCamera = EditorManager.instance.cameraManager.sceneCamera.sceneCamera; - + sceneCamera = EditorManager.instance.cameraManager.sceneCamera.sceneCamera; // 实例化材质,避免修改共享材质 gridMaterial = GetComponent().material; // 同步网格平面的值到材质(方便 Shader 内部判断) @@ -34,9 +32,8 @@ namespace Ichni.Editor void Update() { - if (sceneCamera == null || gridMaterial == null) - return; - + sceneCamera = EditorManager.instance.cameraManager.currentCamera; + // 计算摄像机到网格平面的垂直距离 float camDistance = 0f; Vector3 camPos = sceneCamera.transform.position; @@ -60,11 +57,5 @@ namespace Ichni.Editor gridMaterial.SetFloat("_GridScale", 1 / gridScale); } - - // 提供外部接口,用于切换网格显示 - public void SetGridActive(bool active) - { - gameObject.SetActive(active); - } } } \ No newline at end of file diff --git a/Assets/Scripts/Manager/CameraManager.cs b/Assets/Scripts/Manager/CameraManager.cs index cf28a957..632d2877 100644 --- a/Assets/Scripts/Manager/CameraManager.cs +++ b/Assets/Scripts/Manager/CameraManager.cs @@ -19,6 +19,7 @@ namespace Ichni.Editor public GameCamera gameCamera; public bool haveGameCamera => gameCamera != null; + public Camera currentCamera => haveGameCamera && !isSceneCameraActive ? gameCamera.camera : sceneCamera.sceneCamera; public BaseElement_BM matchedBM { get; set; }