public void Finish() { UnityEditor.EditorApplication.update -= Tick; if (null != m_mainCameraT) { m_mainCameraT.transform.parent = m_mainCameraP; } if (null != m_cameraCtrl) { GameObject.DestroyImmediate(m_cameraCtrl.gameObject); } m_cameraCtrl = null; }
public void Execute() { Finish(); if (null != Camera.main) { m_mainCameraT = Camera.main.transform; m_mainCameraP = m_mainCameraT.parent; } else { m_mainCameraT = null; } if (null == m_cameraCtrl) { CameraTrace[] traces = Resources.FindObjectsOfTypeAll <CameraTrace>(); foreach (var trace in traces) { if (trace.gameObject.scene.name == UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene().name) { if (null == m_cameraCtrl) { m_cameraCtrl = trace; } else { GameObject.DestroyImmediate(trace.gameObject); } } } if (null == m_cameraCtrl) { GameObject go = null; // PapeGames.X3.Res.LoadGameObject("Assets/ResourcesWorkspace/Battle/Misc/CameraTrace.prefab"); if (null != go) { m_cameraCtrl = go.GetComponent <CameraTrace>(); m_cameraCtrl.Init(); } } if (null != m_cameraCtrl) { m_cameraCtrl.Enter(); m_cameraCtrl.transform.parent = transform; } } UnityEditor.EditorApplication.update += Tick; }