/// <summary> /// 设备编辑模式下,旋转缩放状态设置 /// </summary> /// <param name="isOn"></param> private void SetGizmoTypeState(bool isOn) { EditorGizmoSystem system = EditorGizmoSystem.Instance; if (!isOn) { LastStateDic.Clear(); LastStateDic.Add(GizmoType.Translation, system.IsGizmoTypeAvailable(GizmoType.Translation)); LastStateDic.Add(GizmoType.Rotation, system.IsGizmoTypeAvailable(GizmoType.Rotation)); LastStateDic.Add(GizmoType.Scale, system.IsGizmoTypeAvailable(GizmoType.Scale)); LastStateDic.Add(GizmoType.VolumeScale, system.IsGizmoTypeAvailable(GizmoType.VolumeScale)); system.SetGizmoTypeAvailable(GizmoType.Translation, true); system.SetGizmoTypeAvailable(GizmoType.Scale, false); system.SetGizmoTypeAvailable(GizmoType.Rotation, false); system.SetGizmoTypeAvailable(GizmoType.VolumeScale, false); system.ActiveGizmoType = GizmoType.Translation; } else { if (LastStateDic.Count == 0) { return; } system.SetGizmoTypeAvailable(GizmoType.Translation, LastStateDic[GizmoType.Translation]); system.SetGizmoTypeAvailable(GizmoType.Scale, LastStateDic[GizmoType.Scale]); system.SetGizmoTypeAvailable(GizmoType.Rotation, LastStateDic[GizmoType.Rotation]); system.SetGizmoTypeAvailable(GizmoType.VolumeScale, LastStateDic[GizmoType.VolumeScale]); LastStateDic.Clear(); } }
/// <summary> /// 绑定设备编辑事件 /// </summary> private void BindingGizmosEvent() { EditorGizmoSystem GizmoSystem = EditorGizmoSystem.Instance; if (GizmoSystem == null) { Debug.LogError("EditorGizmoSystem.Instance is null!"); } else { //移动编辑事件 GizmoSystem.TranslationGizmo.GizmoDragStart += TranslationGizmosStart; GizmoSystem.TranslationGizmo.GizmoDragUpdate += TranslationGizmosUpdate; GizmoSystem.TranslationGizmo.GizmoDragEnd += TranslationGizmosEnd; //旋转编辑事件 GizmoSystem.RotationGizmo.GizmoDragStart += RotationGizmosStart; //GizmoSystem.RotationGizmo.GizmoDragUpdate += RotationGizmosUpdate; GizmoSystem.RotationGizmo.GizmoDragEnd += RotationGizmosEnd; //缩放编辑事件 GizmoSystem.ScaleGizmo.GizmoDragStart += ScaleGizmosStart; //GizmoSystem.ScaleGizmo.GizmoDragUpdate += ScaleGizmosUpdate; GizmoSystem.ScaleGizmo.GizmoDragEnd += ScaleGizmosEnd; } if (EditorObjectSelection.Instance) { //物体选中和取消选中的事件 EditorObjectSelection.Instance.SelectionChanged += OnEditObjectSelectionChange; } }
void OnEnable() { _gizmoSystem = EditorGizmoSystem.Instance; if (_gizmoSystem != null) { _gizmoSystem.ActiveGizmoTypeChanged += onGizmoChanged; EditorObjectSelection.Instance.GameObjectClicked += onGameObjectClicked; EditorObjectSelection.Instance.SelectionChanged += onSelectionChanged; } }
private void bindGizmosEvent() { EditorGizmoSystem GizmoSystem = EditorGizmoSystem.Instance; if (GizmoSystem == null) { Debug.LogError("EditorGizmoSystem.Instance is null!"); return; } //移动编辑事件 GizmoSystem.TranslationGizmo.GizmoDragStart += TranslationGizmosStart; GizmoSystem.TranslationGizmo.GizmoDragUpdate += TranslationGizmosUpdate; GizmoSystem.TranslationGizmo.GizmoDragEnd += TranslationGizmosEnd; //旋转编辑事件 GizmoSystem.RotationGizmo.GizmoDragStart += RotationGizmosStart; GizmoSystem.RotationGizmo.GizmoDragUpdate += RotationGizmosUpdate; GizmoSystem.RotationGizmo.GizmoDragEnd += RotationGizmosEnd; //缩放编辑事件 GizmoSystem.ScaleGizmo.GizmoDragStart += ScaleGizmosStart; GizmoSystem.ScaleGizmo.GizmoDragUpdate += ScaleGizmosUpdate; GizmoSystem.ScaleGizmo.GizmoDragEnd += ScaleGizmosEnd; EditorObjectSelection.Instance.SelectionChanged += OnEditObjectSelectionChange; }