void DrawSceneTools() { var freelook = Target; if (freelook == null || !freelook.IsValid) { return; } var originalColor = Handles.color; Handles.color = Handles.preselectionColor; if (freelook.m_CommonLens && CinemachineSceneToolUtility.IsToolActive(typeof(FoVTool))) { CinemachineSceneToolHelpers.FovToolHandle(freelook, new SerializedObject(freelook).FindProperty(() => freelook.m_Lens), freelook.m_Lens, IsHorizontalFOVUsed()); } else if (freelook.m_CommonLens && CinemachineSceneToolUtility.IsToolActive(typeof(FarNearClipTool))) { CinemachineSceneToolHelpers.NearFarClipHandle(freelook, new SerializedObject(freelook).FindProperty(() => freelook.m_Lens)); } else if (freelook.Follow != null && CinemachineSceneToolUtility.IsToolActive(typeof(FollowOffsetTool))) { var draggedRig = CinemachineSceneToolHelpers.OrbitControlHandle(freelook, new SerializedObject(freelook).FindProperty(() => freelook.m_Orbits)); if (draggedRig >= 0) { SetSelectedRig(Target, draggedRig); } } Handles.color = originalColor; }
void DrawSceneTools() { var newFreelook = Target; if (newFreelook == null || !newFreelook.IsValid) { return; } if (CinemachineSceneToolUtility.IsToolActive(typeof(FoVTool))) { CinemachineSceneToolHelpers.FovToolHandle(newFreelook, new SerializedObject(newFreelook).FindProperty(() => newFreelook.m_Lens), newFreelook.m_Lens, IsHorizontalFOVUsed()); } else if (CinemachineSceneToolUtility.IsToolActive(typeof(FarNearClipTool))) { CinemachineSceneToolHelpers.NearFarClipHandle(newFreelook, new SerializedObject(newFreelook).FindProperty(() => newFreelook.m_Lens)); } else if (newFreelook.Follow != null && CinemachineSceneToolUtility.IsToolActive(typeof(FollowOffsetTool))) { CinemachineSceneToolHelpers.OrbitControlHandle(newFreelook, new SerializedObject(newFreelook).FindProperty(() => newFreelook.m_Orbits)); } }
protected override void OnEnable() { base.OnEnable(); Undo.undoRedoPerformed += ResetTargetOnUndo; m_PipelineSet.Initialize( // GetComponent (stage, result) => { int numNullComponents = 0; foreach (var obj in targets) { var vcam = obj as CinemachineNewVirtualCamera; if (vcam != null) { var c = vcam.GetCinemachineComponent(stage); if (c != null) { result.Add(c); } else { ++numNullComponents; } } } return(numNullComponents); }, // SetComponent (stage, type) => { Undo.SetCurrentGroupName("Cinemachine pipeline change"); foreach (var obj in targets) { var vcam = obj as CinemachineNewVirtualCamera; if (vcam != null) { Component c = vcam.GetCinemachineComponent(stage); if (c != null && c.GetType() == type) { continue; } if (c != null) { Undo.DestroyObjectImmediate(c); vcam.InvalidateComponentCache(); } if (type != null) { Undo.AddComponent(vcam.gameObject, type); vcam.InvalidateComponentCache(); } } } }); #if UNITY_2021_2_OR_NEWER CinemachineSceneToolUtility.RegisterTool(typeof(FoVTool)); CinemachineSceneToolUtility.RegisterTool(typeof(FarNearClipTool)); #endif }
void DrawSceneTools() { var vcam = Target; if (vcam == null || !vcam.IsValid || vcam.m_ExcludedPropertiesInInspector.Contains("m_Lens")) { return; } var originalColor = Handles.color; Handles.color = Handles.preselectionColor; if (CinemachineSceneToolUtility.IsToolActive(typeof(FoVTool))) { CinemachineSceneToolHelpers.FovToolHandle(vcam, new SerializedObject(vcam).FindProperty(() => vcam.m_Lens), vcam.m_Lens, IsHorizontalFOVUsed()); } else if (CinemachineSceneToolUtility.IsToolActive(typeof(FarNearClipTool))) { CinemachineSceneToolHelpers.NearFarClipHandle(vcam, new SerializedObject(vcam).FindProperty(() => vcam.m_Lens)); } Handles.color = originalColor; }
protected override void OnDisable() { m_PipelineSet.Shutdown(); base.OnDisable(); #if UNITY_2021_2_OR_NEWER CinemachineSceneToolUtility.UnregisterTool(typeof(FoVTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FarNearClipTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FollowOffsetTool)); #endif }
protected override void OnDisable() { Undo.undoRedoPerformed -= ResetTargetOnUndo; m_PipelineSet.Shutdown(); base.OnDisable(); #if UNITY_2021_2_OR_NEWER CinemachineSceneToolUtility.UnregisterTool(typeof(FoVTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FarNearClipTool)); #endif }
protected override void OnEnable() { base.OnEnable(); Target.UpdateInputAxisProvider(); #if UNITY_2021_2_OR_NEWER CinemachineSceneToolUtility.RegisterTool(typeof(FoVTool)); CinemachineSceneToolUtility.RegisterTool(typeof(FarNearClipTool)); CinemachineSceneToolUtility.RegisterTool(typeof(FollowOffsetTool)); CinemachineSceneToolUtility.RegisterTool(typeof(FreelookRigSelection)); #endif }
protected override void OnDisable() { base.OnDisable(); // Must destroy child editors or we get exceptions if (m_rigEditor != null) { UnityEngine.Object.DestroyImmediate(m_rigEditor); } #if UNITY_2021_2_OR_NEWER CinemachineSceneToolUtility.UnregisterTool(typeof(FoVTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FarNearClipTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FollowOffsetTool)); CinemachineSceneToolUtility.UnregisterTool(typeof(FreelookRigSelection)); #endif }