|
|
- namespace Oculus.Platform.Samples.VrHoops
- {
- using UnityEngine;
- using UnityEngine.UI;
- using Oculus.Platform.Models;
-
- public class PlayerArea : MonoBehaviour
- {
- // the prefab for the ball that players will shoot
- [SerializeField] private GameObject m_ballPrefab = null;
-
- // cached gameobject that where the player camera will move to
- private GameObject m_playerHead;
-
- // cached Text component where we'll render the player's name
- private Text m_nameText;
-
- // cached component used to align the backboard movement between devices
- private P2PNetworkGoal m_p2pGoal;
-
- public Player Player
- {
- get { return m_playerHead.GetComponent<Player>(); }
- }
-
- public Text NameText
- {
- get { return m_nameText; }
- }
-
- void Awake()
- {
- m_playerHead = gameObject.transform.Find("Player Head").gameObject;
- m_nameText = gameObject.GetComponentsInChildren<Text>()[1];
- m_p2pGoal = gameObject.GetComponentInChildren<P2PNetworkGoal> ();
- }
-
- public T SetupForPlayer<T>(string name) where T : Player
- {
- var oldplayer = m_playerHead.GetComponent<Player>();
- if (oldplayer) Destroy(oldplayer);
-
- var player = m_playerHead.AddComponent<T>();
- player.BallPrefab = m_ballPrefab;
- m_nameText.text = name;
-
- if (player is RemotePlayer)
- {
- (player as RemotePlayer).Goal = m_p2pGoal;
- m_p2pGoal.SendUpdates = false;
- }
- else if (player is LocalPlayer)
- {
- m_p2pGoal.SendUpdates = true;
- }
- else
- {
- m_p2pGoal.SendUpdates = false;
- }
-
- return player;
- }
- }
- }
|