我有一个问题,当主机实例化时,用于实例化对象的 ServerRpc 对客户端不可见。然而,如果客户端实例化一个对象,主机客户端就能够看到它。这是我的代码,预制件是鱼网网络对象。
public override void OnStartClient()
{
base.OnStartClient();
if (!base.IsOwner)
{
enabled = false;
return;
}
}
[ServerRpc(RequireOwnership = false)]
void DropItemsRPC(GameObject prefab, Vector3 position)
{
GameObject drop = Instantiate(prefab, position, Quaternion.identity, worldObjectHolder);
ServerManager.Spawn(drop);
}
尝试这样的事情。
命名空间要求:
using FishNet;
代码:
[ServerRpc]
void DropItemsRPC(NetworkObject prefab, Vector3 position)
{
var _networkManager = InstanceFinder.NetworkManager;
var drop = _networkManager.GetPooledInstantiated(prefab,position,Quaternion.identity,true);
_networkManager.ServerManager.Spawn(drop);
_networkManager.SceneManager.AddOwnerToDefaultScene(drop);
}