using UnityEngine; using UnityEngine.UI; namespace Oculus.Platform.Samples.VrHoops { public class PlayerArea : MonoBehaviour { [SerializeField] private GameObject m_ballPrefab; private GameObject m_playerHead; private Text m_nameText; private P2PNetworkGoal m_p2pGoal; public Player Player { get { return m_playerHead.GetComponent(); } } public Text NameText { get { return m_nameText; } } private void Awake() { m_playerHead = base.gameObject.transform.Find("Player Head").gameObject; m_nameText = base.gameObject.GetComponentsInChildren()[1]; m_p2pGoal = base.gameObject.GetComponentInChildren(); } public T SetupForPlayer(string name) where T : Player { Player component = m_playerHead.GetComponent(); if ((bool)component) { Object.Destroy(component); } T val = m_playerHead.AddComponent(); val.BallPrefab = m_ballPrefab; m_nameText.text = name; if (val is RemotePlayer) { (val as RemotePlayer).Goal = m_p2pGoal; m_p2pGoal.SendUpdates = false; } else if (val is LocalPlayer) { m_p2pGoal.SendUpdates = true; } else { m_p2pGoal.SendUpdates = false; } return val; } } }