コード例 #1
0
 public void ResetValues()
 {
     m_currentPoint = Vector3.zero;
     m_grabPoint    = Vector3.zero;
     m_pullState    = ePullState.PULL_IDLE;
     m_grabbing     = false;
 }
コード例 #2
0
        private void UpdateIdle()
        {
            if (leftController.GetTriggerDown())
            {
                m_grabPoint = leftController.transform.position;
                m_grabbing  = true;
                m_pullState = ePullState.PULLING_WITH_LEFT;
                leftController.TriggerHapticPulse();
                if (leftController.hoveringRope)
                {
                    cont.InvokePullStartEvent();
                }
            }

            if (rightController.GetTriggerDown())
            {
                m_grabPoint = rightController.transform.position;
                m_grabbing  = true;
                m_pullState = ePullState.PULLING_WITH_RIGHT;
                rightController.TriggerHapticPulse();
                if (rightController.hoveringRope)
                {
                    cont.InvokePullStartEvent();
                }
            }
        }
コード例 #3
0
        private void UpdateRightPull()
        {
            m_currentPoint = rightController.transform.position;
            float   dist    = Vector3.Distance(m_grabPoint, m_currentPoint);
            float   rigDist = Vector3.Distance(m_currentPoint, transform.root.position);
            Vector3 dir     = m_grabPoint - m_currentPoint;

            //transform.root.GetComponent<UnityEngine.AI.NavMeshAgent>().Move(dir);
            transform.root.GetComponent <UnityEngine.AI.NavMeshAgent>().enabled = false;

            if (!climbOnTrigger)
            {
                transform.root.position += dir;
            }
            else if (climbOnTrigger && rightController.hoveringRope)
            {
                transform.root.position += new Vector3(0, dir.y, 0);
            }

            if (leftController.GetTriggerDown())
            {
                m_grabPoint = leftController.transform.position;
                m_grabbing  = true;
                m_pullState = ePullState.PULLING_WITH_LEFT;
                leftController.TriggerHapticPulse();
                if (leftController.hoveringRope)
                {
                    cont.InvokePullStartEvent();
                }
            }

            // On trigger release go back to idle
            if (rightController.GetTriggerUp())
            {
                //transform.root.GetComponent<UnityEngine.AI.NavMeshAgent>().speed = 0;
                m_currentPoint = Vector3.zero;
                m_grabPoint    = Vector3.zero;
                m_pullState    = ePullState.PULL_IDLE;
                rigDist        = 0;
                m_grabbing     = false;
            }
        }