Exemplo n.º 1
0
    /// <summary>
    /// Draws controls of selected mode.
    /// </summary>
    void DrawControls()
    {
        for (int i = 0; i < _transforms.Length; i++)
        {
            Transform transform = _transforms[i];
            //if(transform.GetComponent<Rigidbody>()==null) continue;
            Vector3 pos  = AutoRagdollUtility.GetRotatorPosition(transform);
            float   size = HandleUtility.GetHandleSize(pos);

            if (Handles.Button(pos, Quaternion.identity, size / 6f, size / 6f, Handles.SphereHandleCap))
            {
                _curPointIndex = i;

                Quaternion rotatorRotation2 = AutoRagdollUtility.GetRotatorRotation(transform);

                if (!_buttonPressed)
                {
                    _lastRotation  = rotatorRotation2;
                    _buttonPressed = true;
                }
                //Selection.activeGameObject = transform.gameObject;
            }
            else
            {
                _buttonPressed = false;
            }

            if (_curPointIndex != i)
            {
                continue;
            }

            // if current point controll was selected
            // draw other controls over it
            Quaternion rotatorRotation = AutoRagdollUtility.GetRotatorRotation(transform);
            switch (_selectedMode)
            {
            case SelectedMode.ColliderRotate:
                ProcessRotation(rotatorRotation, transform, pos);
                break;

            case SelectedMode.ColliderMove:
                ProcessColliderMove(rotatorRotation, transform, pos);
                break;

            case SelectedMode.ColliderScale:
                ProcessColliderScale(rotatorRotation, transform, pos);
                break;
            }
        }
    }