namespace Oculus.Platform.Samples.VrHoops { using UnityEngine; using UnityEngine.UI; // Uses two triggers to detect that a basket is made by traveling from top to bottom // through the hoop. public class DetectBasket : MonoBehaviour { private enum BasketPhase { NONE, TOP, BOTH, BOTTOM } private BasketPhase m_phase = BasketPhase.NONE; private Player m_owningPlayer; public Player Player { set { m_owningPlayer = value; } } void OnTriggerEnter(Collider other) { if (other.gameObject.name == "Basket Top" && m_phase == BasketPhase.NONE) { m_phase = BasketPhase.TOP; } else if (other.gameObject.name == "Basket Bottom" && m_phase == BasketPhase.TOP) { m_phase = BasketPhase.BOTH; } else { m_phase = BasketPhase.NONE; } } void OnTriggerExit(Collider other) { if (other.gameObject.name == "Basket Top" && m_phase == BasketPhase.BOTH) { m_phase = BasketPhase.BOTTOM; } else if (other.gameObject.name == "Basket Bottom" && m_phase == BasketPhase.BOTTOM) { m_phase = BasketPhase.NONE; switch (PlatformManager.CurrentState) { case PlatformManager.State.PLAYING_A_LOCAL_MATCH: case PlatformManager.State.PLAYING_A_NETWORKED_MATCH: if (m_owningPlayer) { m_owningPlayer.Score += 2; } break; } } else { m_phase = BasketPhase.NONE; } } } }