Exemple #1
0
        protected override void Start()
        {
            base.Start();

            // Set up our max grab distance to be based on the player's max grab distance.
            // Adding a liberal margin of error here, because users can move away some from the
            // OVRPlayerController, and also players have arms.
            // Note that there's no major downside to making this value too high, as objects
            // outside the player's grabbable trigger volume will not be eligible targets regardless.
            SphereCollider sc = m_player.GetComponentInChildren <SphereCollider>();

            m_maxGrabDistance = sc.radius + 3.0f;

            if (m_parentHeldObject == true)
            {
                Debug.LogError("m_parentHeldObject incompatible with DistanceGrabber. Setting to false.");
                m_parentHeldObject = false;
            }

            DistanceGrabber[] grabbers = FindObjectsOfType <DistanceGrabber>();
            for (int i = 0; i < grabbers.Length; ++i)
            {
                if (grabbers[i] != this)
                {
                    m_otherHand = grabbers[i];
                }
            }
            Debug.Assert(m_otherHand != null);

#if UNITY_EDITOR
            OVRPlugin.SendEvent("distance_grabber", (SceneManager.GetActiveScene().name == "DistanceGrab").ToString(), "sample_framework");
#endif
        }
Exemple #2
0
        protected override void Start()
        {
            base.Start();

            // Basic hack to guess at max grab distance based on player size.
            // Note that there's no major downside to making this value too high, as objects
            // outside the player's grabbable trigger volume will not be eligible targets regardless.
            Collider sc = m_player.GetComponentInChildren <Collider>();

            if (sc != null)
            {
                m_maxGrabDistance = sc.bounds.size.z * 0.5f + 3.0f;
            }
            else
            {
                m_maxGrabDistance = 12.0f;
            }

            if (m_parentHeldObject == true)
            {
                Debug.LogError("m_parentHeldObject incompatible with DistanceGrabber. Setting to false.");
                m_parentHeldObject = false;
            }

            DistanceGrabber[] grabbers = FindObjectsOfType <DistanceGrabber>();
            for (int i = 0; i < grabbers.Length; ++i)
            {
                if (grabbers[i] != this)
                {
                    m_otherHand = grabbers[i];
                }
            }
            Debug.Assert(m_otherHand != null);

#if UNITY_EDITOR
            OVRPlugin.SendEvent("distance_grabber", (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "DistanceGrab").ToString(), "sample_framework");
#endif
        }