Files
2026-02-21 16:45:37 +08:00

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;
}
}
}