Unity无法将GameObject投射到我的对象

时间:2019-02-16 14:34:16

标签: unity3d

我正在用团结写作一个简单的棋盘游戏。 我需要设置对象(播放器)的属性,尽管我将其作为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播放器'”

1 个答案:

答案 0 :(得分:2)

播放器是连接到PlayerPrefab的组件 您应该使用GetComponent <>。 还可以使用可以存储缓存的PlayerComponent的原因来导致GetComponent的工作速度缓慢:

更改字段:

private Player player;

内部命令:

player = Instantiate(PlayerPrefab).GetComponent<Player>();
player.parentNetId = this.netId;
NetworkServer.SpawnWithClientAuthority(player.gameObject, connectionToClient);