예제 #1
0
        public bool IsActionActive(Transform boneTransform, BoneGizmoAction action)
        {
            if (m_GUIWapper.IsViewToolActive() || !IsActionHot(BoneGizmoAction.None) || m_HoveredBoneTransform != boneTransform)
            {
                return(action == BoneGizmoAction.None);
            }

            if (action == BoneGizmoAction.Select)
            {
                return(m_GUIWapper.IsControlNearest(m_HoveredBoneHeadControlID) || m_GUIWapper.IsControlNearest(m_HoveredBoneBodyControlID));
            }

            if (action == BoneGizmoAction.Rotate)
            {
                return(m_GUIWapper.IsControlNearest(m_HoveredBoneBodyControlID));
            }

            if (action == BoneGizmoAction.Move)
            {
                return(m_GUIWapper.IsControlNearest(m_HoveredBoneHeadControlID));
            }

            if (action == BoneGizmoAction.None)
            {
                return(true);
            }

            return(false);
        }
예제 #2
0
        public bool IsActionHot(Transform boneTransform, BoneGizmoAction action)
        {
            if (m_HotBoneTransform != boneTransform)
            {
                return(false);
            }

            return(IsActionHot(action));
        }
예제 #3
0
        private bool TryActivateAction(Transform boneTransform, BoneGizmoAction action)
        {
            if (IsActionTriggering(boneTransform, action))
            {
                m_HotBoneTransform = m_HoveredBoneTransform;
                return(true);
            }

            return(false);
        }
예제 #4
0
        public bool IsActionHot(BoneGizmoAction action)
        {
            if (action == BoneGizmoAction.None)
            {
                return(m_GUIWapper.IsControlHot(0));
            }

            if (action == BoneGizmoAction.Rotate)
            {
                return(m_GUIWapper.IsControlHot(m_RotateBoneControlID));
            }

            if (action == BoneGizmoAction.Move)
            {
                return(m_GUIWapper.IsControlHot(m_MoveBoneControlID));
            }

            return(false);
        }
예제 #5
0
        private bool IsActionTriggering(Transform boneTransform, BoneGizmoAction action)
        {
            if (!IsActionActive(boneTransform, action))
            {
                return(false);
            }

            if (action == BoneGizmoAction.Select)
            {
                return(m_GUIWapper.IsMouseDown(0));
            }

            if (action == BoneGizmoAction.Rotate)
            {
                return(m_GUIWapper.IsMouseDown(0));
            }

            if (action == BoneGizmoAction.Move)
            {
                return(m_GUIWapper.IsMouseDown(0));
            }

            return(false);
        }