我正在用团结写作一个简单的棋盘游戏。 我需要设置对象(播放器)的属性,尽管我将其作为GameObject引用。我需要投,但不能。 这是我尝试过的
public GameObject PlayerPrefab;
private GameObject player;
// Use this for initialization
void Start () {
if (!isLocalPlayer)
{
return;
}
Debug.Log("Spawning.");
CmdSpawn();
}
[Command]
void CmdSpawn()
{
player = Instantiate(PlayerPrefab);
((Player)player).parentNetId = this.netId;
NetworkServer.SpawnWithClientAuthority(player, connectionToClient);
}
我有以下错误:
“资产/脚本/PlayerConnectionObject.cs(27,18):错误CS0030:无法转换类型UnityEngine.GameObject' to
播放器'”
答案 0 :(得分:2)
播放器是连接到PlayerPrefab的组件 您应该使用GetComponent <>。 还可以使用可以存储缓存的PlayerComponent的原因来导致GetComponent的工作速度缓慢:
更改字段:
private Player player;
内部命令:
player = Instantiate(PlayerPrefab).GetComponent<Player>();
player.parentNetId = this.netId;
NetworkServer.SpawnWithClientAuthority(player.gameObject, connectionToClient);