Unity не может привести GameObject к моему объекту - PullRequest
0 голосов
/ 16 февраля 2019

Я пишу простую настольную игру, используя единство.Мне нужно установить свойство моего объекта (Player), хотя у меня есть ссылка на него как 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 Player '"

1 Ответ

0 голосов
/ 16 февраля 2019

Player - это компонент, прикрепленный к вашему PlayerPrefab. Вы должны использовать GetComponent <>.Также использование может хранить кэшированный PlayerComponent, причина того, насколько медленно работает GetComponent:

Изменить поле:

private Player player;

И внутри команды:

player = Instantiate(PlayerPrefab).GetComponent<Player>();
player.parentNetId = this.netId;
NetworkServer.SpawnWithClientAuthority(player.gameObject, connectionToClient);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...