Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 预制件don';不能为不同的玩家同步_C#_Unity3d - Fatal编程技术网

C# 预制件don';不能为不同的玩家同步

C# 预制件don';不能为不同的玩家同步,c#,unity3d,C#,Unity3d,我有子弹预制与网络转换和网络身份 生成子弹的玩家脚本: 但当我开枪时,我的敌人看不到这颗子弹。 为什么它不同步?我的播放器还具有网络转换和网络标识,一切正常。要生成网络对象,Unity提供了一个特定的功能NetworkServer。生成() 实例化对象后需要调用此函数,以便所有客户端在其场景中生成该对象 在您的情况下,在实例化bulletGo对象后,您应该调用: NetworkServer.Spawn(bulletGo) 您是否在NewWorkManager中注册了bullet预置?好的,我注

我有子弹预制与网络转换和网络身份

生成子弹的玩家脚本:

但当我开枪时,我的敌人看不到这颗子弹。
为什么它不同步?我的播放器还具有网络转换和网络标识,一切正常。

要生成网络对象,Unity提供了一个特定的功能
NetworkServer。生成()

实例化对象后需要调用此函数,以便所有客户端在其场景中生成该对象

在您的情况下,在实例化
bulletGo
对象后,您应该调用:

NetworkServer.Spawn(bulletGo)

您是否在NewWorkManager中注册了bullet预置?好的,我注册了,但不管怎么说它不行。然后,您可能需要告诉Unity的网络服务器实际生成它。使用以下命令:
var bulletGo=实例化(BulletPrefact、firePoint.position、firePoint.rotation);NetworkServer.Spawn(bulletGo)它工作!泰。现在我还需要重新思考下一个问题——一个玩家不能销毁石头(地图部分),但第二个玩家可以销毁石头,并且这些石头不会在第一个玩家的屏幕上被销毁(什么?)石头也是联网对象(具有Netowkid实体行为)?如果是这样,与生成网络对象的方式类似,您可能需要使用
NetworkServer.Destroy(gameObject)
为所有客户端销毁对象。不过,这可能是另一个问题的主题。
NetworkServer.Spawn(bulletGo)