Я получил свой префаб, прикрепленный к префабу игрока, как ребенок.Я хочу породить Gun Prefab в моем Hand Prefab (Дитя игроков).Так я могу сделать это с уровня руки?
В данный момент я порождаю Gun из руки, но он работает только для одного игрока.Пока я играю с 2 игроками, в момент появления Gun.Игра вылетает для клиента.Это ошибка, которую я получаю:
NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Networking.NetworkServer.SpawnWithClientAuthority (UnityEngine.GameObject obj, UnityEngine.Networking.NetworkConnection conn) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkServer.cs:1565)
HandHolder.CmdGetGun () (at Assets/Scripts/HandHolder.cs:27)
HandHolder.Update () (at Assets/Scripts/HandHolder.cs:19)
Вот мой код для руки:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class HandHolder : NetworkBehaviour {
[SerializeField] GameObject gun;
private GameObject playerGun;
// Update is called once per frame
void Update () {
if(GetComponentInParent<NetworkIdentity>().isLocalPlayer)
{
if (playerGun)
{
playerGun.transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - 1);
playerGun.transform.rotation = transform.rotation;
}
else if (Input.GetKeyDown(KeyCode.I))
{enter code here
CmdGetGun();
}
}
}
// [Command]
public void CmdGetGun()
{
playerGun = Instantiate(gun, transform.position, transform.rotation) as GameObject;
NetworkServer.SpawnWithClientAuthority(playerGun, GetComponentInParent<NetworkIdentity>().connectionToClient);
}
}
Когда я добавляю [Command] перед методом CmdGetGun (), в момент появления оружия я получаю эту ошибку:
There is no NetworkIdentity on this object. Please add one.
UnityEngine.Networking.NetworkBehaviour:get_isServer()
HandHolder:CallCmdGetGun()
HandHolder:Update() (at Assets/Scripts/HandHolder.cs:19)
Но когдая добавляю NetworkIdentity к своему детскому префабу рук, он показывает мне, что hasAuthority, isLocalPlayer является ложным как для руки, так и для игрока.
Я понятия не имею, как я могу вызвать пистолет в префабе.
ВотКомпоненты и дерево:
![Prefabs](https://i.stack.imgur.com/7aA5o.png)