/// <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; } } }