67 lines
1.2 KiB
C#
67 lines
1.2 KiB
C#
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<Player>();
|
|
}
|
|
}
|
|
|
|
public Text NameText
|
|
{
|
|
get
|
|
{
|
|
return m_nameText;
|
|
}
|
|
}
|
|
|
|
private void Awake()
|
|
{
|
|
m_playerHead = base.gameObject.transform.Find("Player Head").gameObject;
|
|
m_nameText = base.gameObject.GetComponentsInChildren<Text>()[1];
|
|
m_p2pGoal = base.gameObject.GetComponentInChildren<P2PNetworkGoal>();
|
|
}
|
|
|
|
public T SetupForPlayer<T>(string name) where T : Player
|
|
{
|
|
Player component = m_playerHead.GetComponent<Player>();
|
|
if ((bool)component)
|
|
{
|
|
Object.Destroy(component);
|
|
}
|
|
T val = m_playerHead.AddComponent<T>();
|
|
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;
|
|
}
|
|
}
|
|
}
|