void OnCurveChanged(GameObject gObject, AnimatableProperty property) { RigGoalController[] controllers = gObject.GetComponentsInChildren <RigGoalController>(); if (controllers.Length > 0) { if ((ToolsManager.CurrentToolName() == "Animation")) { //update all goals' curves UpdateGoalCurve(controllers); } else { //only update rig's root curve UpdateGoalCurve(new RigGoalController[] { controllers[0] }); } } if (property != AnimatableProperty.PositionX && property != AnimatableProperty.PositionY && property != AnimatableProperty.PositionZ) { return; } if (!Selection.IsSelected(gObject)) { return; } UpdateCurve(gObject); }
protected virtual void OnParametersChanged(GameObject gObject, Curve curve) { if (Selection.IsSelected(gObject)) { UpdateUI(); } }
void OnAnimationAdded(GameObject gObject) { if (!Selection.IsSelected(gObject)) { return; } UpdateCurve(gObject); }
private void UpdateEraser() { GameObject hoveredObject = Selection.HoveredObject; if (null == hoveredObject && Selection.SelectedObjects.Count == 0) { return; } // If we have a hovered object, only destroy it if (null != hoveredObject) { // Don't delete UI handles if (hoveredObject.GetComponent <UIHandle>()) { return; } if (VRInput.GetValue(VRInput.primaryController, CommonUsages.triggerButton)) { CommandGroup group = new CommandGroup("Erase Hovered Object"); try { RemoveCollidedObject(hoveredObject); selector.RemoveSiblingsFromSelection(hoveredObject, false); new CommandRemoveGameObject(hoveredObject).Submit(); } finally { group.Submit(); } } } // If we don't have any hovered object but we collided with a selection, delete the whole selection else if (collidedObjects.Count > 0 && Selection.IsSelected(collidedObjects[0])) { if (VRInput.GetValue(VRInput.primaryController, CommonUsages.triggerButton)) { CommandGroup group = new CommandGroup("Erase Selected Objects"); try { foreach (GameObject gobject in Selection.SelectedObjects) { RemoveCollidedObject(gobject); selector.RemoveSiblingsFromSelection(gobject, false); new CommandRemoveGameObject(gobject).Submit(); } } finally { group.Submit(); } } } }
private void OnFocalClicked() { focalActionSelected = Selection.IsSelected(gameObject); if (!focalActionSelected) { Selection.AddToSelection(gameObject); } focalValueCommand = new CommandSetValue <float>("Camera Focal", "/CameraController/focal"); }
private void OnSelectionChanged(HashSet <GameObject> previousSelectedObjects, HashSet <GameObject> currentSelectedObjects) { if (Selection.IsSelected(cameraObject)) { SetColor(UIOptions.PushedColor); } else { SetColor(UIOptions.BackgroundColor); } }
void OnCurveChanged(GameObject gObject, AnimatableProperty property) { if (property != AnimatableProperty.PositionX && property != AnimatableProperty.PositionY && property != AnimatableProperty.PositionZ) { return; } if (!Selection.IsSelected(gObject)) { return; } UpdateCurve(gObject); }
bool HasParentOrConstraintSelected(Transform t, ref string parentLayerName) { Transform parent = t.parent; while (null != parent && parent.name != "RightHanded") { if (Selection.IsSelected(parent.gameObject)) { parentLayerName = LayerMask.LayerToName(parent.gameObject.layer); return(true); } parent = parent.parent; } ParentConstraint constraint = t.gameObject.GetComponent <ParentConstraint>(); if (null != constraint) { if (constraint.sourceCount > 0) { GameObject sourceObject = constraint.GetSource(0).sourceTransform.gameObject; if (Selection.IsSelected(sourceObject)) { parentLayerName = LayerMask.LayerToName(sourceObject.layer); return(true); } } } LookAtConstraint lookAtConstraint = t.gameObject.GetComponent <LookAtConstraint>(); if (null != lookAtConstraint) { if (lookAtConstraint.sourceCount > 0) { ConstraintSource constraintSource = lookAtConstraint.GetSource(0); GameObject sourceObject = constraintSource.sourceTransform.gameObject; if (Selection.IsSelected(lookAtConstraint.GetSource(0).sourceTransform.gameObject)) { parentLayerName = LayerMask.LayerToName(sourceObject.layer); return(true); } } } return(false); }
private void OnActiveCameraChanged(GameObject _, GameObject activeCamera) { if (activeCamera == cameraObject) { SetColor(UIOptions.SceneHoverColor); } else { if (Selection.IsSelected(cameraObject)) { SetColor(UIOptions.PushedColor); } else { SetColor(UIOptions.BackgroundColor); } } }
private void OnHoveredChanged(GameObject previousHover, GameObject currentHover) { if (null != previousHover) { if (Selection.IsSelected(previousHover)) { SetRecursiveLayerSmart(previousHover, LayerType.Selection); } else { SetRecursiveLayerSmart(previousHover, LayerType.Default); } } if (null != currentHover && !Selection.IsSelected(currentHover)) { SetRecursiveLayerSmart(currentHover, LayerType.Hover); } }
void UpdateActiveCamera(GameObject hoveredObject, HashSet <GameObject> currentSelection) { // -------------------------------------------- // Check hover // -------------------------------------------- GameObject hoveredCamera = null; if (null != hoveredObject && null != hoveredObject.GetComponent <CameraController>()) { hoveredCamera = hoveredObject; } // Set current active camera from hovered one if (null != hoveredCamera && (hoveredCamera != ActiveCamera || Selection.IsSelected(hoveredCamera))) { // Enable current active camera ActiveCamera = hoveredCamera; return; } // -------------------------------------------- // Check selected // -------------------------------------------- GameObject selectedCamera = GetFirstCamera(currentSelection); if (null != selectedCamera && selectedCamera != ActiveCamera) { // Enable new one ActiveCamera = selectedCamera; return; } if (!GlobalState.Animation.IsAnimating() && null == hoveredCamera && null == selectedCamera) { ActiveCamera = null; } }
void SetRecursiveLayerSmart(GameObject gObject, LayerType layerType, bool isChild = false) { string layerName = LayerMask.LayerToName(gObject.layer); bool isSkinMesh = gObject.TryGetComponent <SkinnedMeshRenderer>(out SkinnedMeshRenderer mesh); // // SELECT // if (layerType == LayerType.Selection) { if (layerName == "Default") { if (isChild && !Selection.IsSelected(gObject) && !isSkinMesh) { layerName = "SelectionChild"; } else { layerName = "Selection"; } } else if (layerName == "Hover" || layerName == "HoverChild") { if (isChild && !Selection.IsSelected(gObject) && !isSkinMesh) { layerName = "SelectionChild"; } else { layerName = "Selection"; } } else if (layerName == "CameraHidden") { layerName = "SelectionCameraHidden"; } else if (layerName == "HoverCameraHidden") { layerName = "SelectionCameraHidden"; } } // // HOVER // else if (layerType == LayerType.Hover) { if (layerName == "Default") { if (isChild && !Selection.IsSelected(gObject) && !isSkinMesh) { layerName = "HoverChild"; } else { layerName = "Hover"; } } else if (layerName == "Selection" || layerName == "SelectionChild") { if (isChild && !Selection.IsSelected(gObject) && !isSkinMesh) { layerName = "HoverChild"; } else { layerName = "Hover"; } } else if (layerName == "CameraHidden") { layerName = "HoverCameraHidden"; } else if (layerName == "SelectionCameraHidden") { layerName = "HoverCameraHidden"; } } // // RESET layer // else if (layerType == LayerType.Default) { if (layerName == "SelectionCameraHidden") { layerName = "CameraHidden"; } else if (layerName == "Hover" || layerName == "HoverChild") { string parentLayer = ""; if (HasParentOrConstraintSelected(gObject.transform, ref parentLayer)) { layerName = parentLayer + "Child"; } else { layerName = "Default"; } } else if (layerName == "HoverCameraHidden") { layerName = "CameraHidden"; } else if (layerName == "Selection" || layerName == "SelectionChild") { string parentLayer = ""; if (HasParentOrConstraintSelected(gObject.transform, ref parentLayer)) { layerName = parentLayer + "Child"; } else { layerName = "Default"; } } } gObject.layer = LayerMask.NameToLayer(layerName); for (int i = 0; i < gObject.transform.childCount; i++) { SetRecursiveLayerSmart(gObject.transform.GetChild(i).gameObject, layerType, true); } ParametersController parametersConstroller = gObject.GetComponent <ParametersController>(); if (null != parametersConstroller) { foreach (GameObject sourceConstraint in parametersConstroller.constraintHolders) { if (!Selection.IsSelected(sourceConstraint)) { SetRecursiveLayerSmart(sourceConstraint, layerType, true); } } } }