void Start() { ToggleMouthpiece(mouthpiece, true); // Sub panels selectPanel = panel.Find("SelectPanel").gameObject; snapPanel = panel.Find("SnapPanel").gameObject; inspectorPanel = panel.Find("ObjectPropertiesPanel").gameObject; selectPanel.SetActive(true); snapPanel.SetActive(false); inspectorPanel.SetActive(false); selectPanelButton = panel.Find("SelectPanelButton").GetComponent <UIButton>(); selectPanelButton.Checked = true; snapPanelButton = panel.Find("SnapPanelButton").GetComponent <UIButton>(); inspectorPanelButton = panel.Find("ObjectPropertiesPanelButton").GetComponent <UIButton>(); selectPanelButton.onReleaseEvent.AddListener(() => OnSelectPanel(selectPanelButton)); snapPanelButton.onReleaseEvent.AddListener(() => OnSelectPanel(snapPanelButton)); inspectorPanelButton.onReleaseEvent.AddListener(() => OnSelectPanel(inspectorPanelButton)); selectedObjectNameLabel = inspectorPanel.transform.Find("Object Name").GetComponent <UILabel>(); snapCheckbox = selectPanel.transform.Find("Snap").GetComponent <UICheckbox>(); snapToGroundCheckbox = selectPanel.transform.Find("SnapToGround").GetComponent <UICheckbox>(); // Constraints enableParentButton = inspectorPanel.transform.Find("Constraints/Parent/Active Button").GetComponent <UIButton>(); parentTargetLabel = inspectorPanel.transform.Find("Constraints/Parent/Target Label").GetComponent <UILabel>(); selectParentButton = inspectorPanel.transform.Find("Constraints/Parent/Select Button").GetComponent <UIButton>(); deleteParentButton = inspectorPanel.transform.Find("Constraints/Parent/Delete Button").GetComponent <UIButton>(); enableParentButton.onReleaseEvent.AddListener(OnToggleParentConstraint); deleteParentButton.onReleaseEvent.AddListener(RemoveParentConstraint); enableLookAtButton = inspectorPanel.transform.Find("Constraints/Look At/Active Button").GetComponent <UIButton>(); lookAtTargetLabel = inspectorPanel.transform.Find("Constraints/Look At/Target Label").GetComponent <UILabel>(); selectLookAtButton = inspectorPanel.transform.Find("Constraints/Look At/Select Button").GetComponent <UIButton>(); deleteLookAtButton = inspectorPanel.transform.Find("Constraints/Look At/Delete Button").GetComponent <UIButton>(); enableLookAtButton.onReleaseEvent.AddListener(OnToggleLookAtConstraint); deleteLookAtButton.onReleaseEvent.AddListener(RemoveLookAtConstraint); // Transforms posXButton = inspectorPanel.transform.Find("Transform/Position/X/Value").GetComponent <UIButton>(); posYButton = inspectorPanel.transform.Find("Transform/Position/Y/Value").GetComponent <UIButton>(); posZButton = inspectorPanel.transform.Find("Transform/Position/Z/Value").GetComponent <UIButton>(); posResetButton = inspectorPanel.transform.Find("Transform/Position/Reset").GetComponent <UIButton>(); posLockButton = inspectorPanel.transform.Find("Transform/Position/Global Lock").GetComponent <UIButton>(); posXLockButton = inspectorPanel.transform.Find("Transform/Position/X/Lock").GetComponent <UIButton>(); posYLockButton = inspectorPanel.transform.Find("Transform/Position/Y/Lock").GetComponent <UIButton>(); posZLockButton = inspectorPanel.transform.Find("Transform/Position/Z/Lock").GetComponent <UIButton>(); rotXButton = inspectorPanel.transform.Find("Transform/Rotation/X/Value").GetComponent <UIButton>(); rotYButton = inspectorPanel.transform.Find("Transform/Rotation/Y/Value").GetComponent <UIButton>(); rotZButton = inspectorPanel.transform.Find("Transform/Rotation/Z/Value").GetComponent <UIButton>(); rotResetButton = inspectorPanel.transform.Find("Transform/Position/Reset").GetComponent <UIButton>(); rotLockButton = inspectorPanel.transform.Find("Transform/Rotation/Global Lock").GetComponent <UIButton>(); rotXLockButton = inspectorPanel.transform.Find("Transform/Rotation/X/Lock").GetComponent <UIButton>(); rotYLockButton = inspectorPanel.transform.Find("Transform/Rotation/Y/Lock").GetComponent <UIButton>(); rotZLockButton = inspectorPanel.transform.Find("Transform/Rotation/Z/Lock").GetComponent <UIButton>(); scaleXButton = inspectorPanel.transform.Find("Transform/Scale/X/Value").GetComponent <UIButton>(); scaleYButton = inspectorPanel.transform.Find("Transform/Scale/Y/Value").GetComponent <UIButton>(); scaleZButton = inspectorPanel.transform.Find("Transform/Scale/Z/Value").GetComponent <UIButton>(); scaleResetButton = inspectorPanel.transform.Find("Transform/Position/Reset").GetComponent <UIButton>(); scaleLockButton = inspectorPanel.transform.Find("Transform/Scale/Global Lock").GetComponent <UIButton>(); scaleXLockButton = inspectorPanel.transform.Find("Transform/Scale/X/Lock").GetComponent <UIButton>(); scaleYLockButton = inspectorPanel.transform.Find("Transform/Scale/Y/Lock").GetComponent <UIButton>(); scaleZLockButton = inspectorPanel.transform.Find("Transform/Scale/Z/Lock").GetComponent <UIButton>(); posXButton.onReleaseEvent.AddListener(() => OnStartEditTransform(posXButton.Text, "px")); posYButton.onReleaseEvent.AddListener(() => OnStartEditTransform(posYButton.Text, "py")); posZButton.onReleaseEvent.AddListener(() => OnStartEditTransform(posZButton.Text, "pz")); rotXButton.onReleaseEvent.AddListener(() => OnStartEditTransform(rotXButton.Text, "rx")); rotYButton.onReleaseEvent.AddListener(() => OnStartEditTransform(rotYButton.Text, "ry")); rotZButton.onReleaseEvent.AddListener(() => OnStartEditTransform(rotZButton.Text, "rz")); scaleXButton.onReleaseEvent.AddListener(() => OnStartEditTransform(scaleXButton.Text, "sx")); scaleYButton.onReleaseEvent.AddListener(() => OnStartEditTransform(scaleYButton.Text, "sy")); scaleZButton.onReleaseEvent.AddListener(() => OnStartEditTransform(scaleZButton.Text, "sz")); posLockButton.onCheckEvent.AddListener(SetLockPosition); posXLockButton.onCheckEvent.AddListener((bool value) => SetMoveOnX(!value)); posYLockButton.onCheckEvent.AddListener((bool value) => SetMoveOnY(!value)); posZLockButton.onCheckEvent.AddListener((bool value) => SetMoveOnZ(!value)); rotLockButton.onCheckEvent.AddListener(SetLockRotation); rotXLockButton.onCheckEvent.AddListener((bool value) => SetTurnAroundX(!value)); rotYLockButton.onCheckEvent.AddListener((bool value) => SetTurnAroundY(!value)); rotZLockButton.onCheckEvent.AddListener((bool value) => SetTurnAroundZ(!value)); scaleLockButton.onCheckEvent.AddListener(SetLockScale); scaleXLockButton.onCheckEvent.AddListener((bool value) => SetScaleOnX(!value)); scaleYLockButton.onCheckEvent.AddListener((bool value) => SetScaleOnY(!value)); scaleZLockButton.onCheckEvent.AddListener((bool value) => SetScaleOnZ(!value)); // Global events bindings GlobalState.ObjectMovingEvent.AddListener(UpdateTransformUI); GlobalState.ObjectConstraintEvent.AddListener((GameObject gobject) => UpdateUIOnSelectionChanged(null, null)); Selection.onHoveredChanged.AddListener(SetConstraintTargetOnSelectionChanged); Selection.onSelectionChanged.AddListener(UpdateUIOnSelectionChanged); Init(); }