Esempio n. 1
0
        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();
        }