예제 #1
0
        private void OnTwoHandManipulationUpdated()
        {
#if UNITY_2017_2_OR_NEWER
            var targetRotation = hostTransform.rotation;
            var targetPosition = hostTransform.position;
            var targetScale    = hostTransform.localScale;

            if ((currentState & ManipulationMode.Move) > 0)
            {
                targetPosition = moveLogic.Update(GetHandsCentroid(), targetPosition);
            }

            if ((currentState & ManipulationMode.Rotate) > 0)
            {
                targetRotation = rotateLogic.Update(handsPressedLocationsMap, hostTransform, targetRotation);
            }

            if ((currentState & ManipulationMode.Scale) > 0)
            {
                targetScale = scaleLogic.UpdateMap(handsPressedLocationsMap);
            }

            UpdateHostTransform(targetPosition, targetRotation, targetScale);
#endif // UNITY_2017_2_OR_NEWER
        }
        private void OnTwoHandManipulationUpdated()
        {
#if UNITY_2017_2_OR_NEWER
            var targetRotation = hostTransform.rotation;
            var targetPosition = hostTransform.position;
            var targetScale    = hostTransform.localScale;

            if ((currentState & ManipulationMode.Move) > 0)
            {
                targetPosition = moveLogic.Update(GetHandsCentroid(), targetPosition);
            }

            if ((currentState & ManipulationMode.Rotate) > 0)
            {
                targetRotation = rotateLogic.Update(handsPressedLocationsMap, hostTransform, targetRotation);
            }

            if ((currentState & ManipulationMode.Scale) > 0)
            {
                targetScale = scaleLogic.UpdateMap(handsPressedLocationsMap);
            }

            hostTransform.position   = targetPosition;
            hostTransform.rotation   = targetRotation;
            hostTransform.localScale = targetScale;

            foreach (Transform child in this.transform.parent.transform)
            {
                if (child.GetComponent <LabelResetPosition>())
                {
                    child.GetComponent <LabelResetPosition>().ResetPosition(hostTransform.position, true);
                }
            }
#endif // UNITY_2017_2_OR_NEWER
        }
        private void OnTwoHandManipulationUpdated()
        {
#if UNITY_2017_2_OR_NEWER
            var targetRotation = HostTransform.rotation;
            var targetPosition = HostTransform.position;
            var targetScale    = HostTransform.localScale;

            if ((currentState & State.Moving) > 0)
            {
                targetPosition = m_moveLogic.Update(GetHandsCentroid(), targetPosition);
            }
            if ((currentState & State.Rotating) > 0)
            {
                targetRotation = m_rotateLogic.Update(m_handsPressedLocationsMap, HostTransform, targetRotation);
            }
            if ((currentState & State.Scaling) > 0)
            {
                targetScale = m_scaleLogic.UpdateMap(m_handsPressedLocationsMap);
            }

            HostTransform.position   = targetPosition;
            HostTransform.rotation   = targetRotation;
            HostTransform.localScale = targetScale;
#endif // UNITY_2017_2_OR_NEWER
        }
예제 #4
0
        private void OnTwoHandManipulationUpdated()
        {
#if UNITY_2017_2_OR_NEWER
            if (gameObject.name == "Movo" && StateManager.Instance.CurrentState != StateManager.State.CalibratingState)
            {
                return;
            }
            var targetRotation = hostTransform.rotation;
            var targetPosition = hostTransform.position;
            var targetScale    = hostTransform.localScale;

            if ((currentState & ManipulationMode.Move) > 0)
            {
                targetPosition = moveLogic.Update(GetHandsCentroid(), targetPosition);
            }

            if ((currentState & ManipulationMode.Rotate) > 0)
            {
                targetRotation = rotateLogic.Update(handsPressedLocationsMap, hostTransform, targetRotation);
            }

            if ((currentState & ManipulationMode.Scale) > 0)
            {
                targetScale = scaleLogic.UpdateMap(handsPressedLocationsMap);
            }

            hostTransform.position   = targetPosition;
            hostTransform.rotation   = targetRotation;
            hostTransform.localScale = targetScale;
#endif // UNITY_2017_2_OR_NEWER
        }