我试图找出在使用 UNET 时导致以下错误差异的原因:
我同时在编辑器和应用程序表单中运行我的项目以测试多人游戏功能。我正在测试的功能是弹丸创建/生成。如果我将编辑器设为主机,将应用程序设为客户端,则只有主机才能看到弹丸。但是,当我将编辑器设置为客户端并将应用程序设置为主机时,两个玩家都可以看到弹丸。
这就是它变得奇怪的地方:无论我在两个应用程序上运行它时使用什么组合,而不是一个应用程序和编辑器,只有主机才能看到弹丸。
为什么这种特定的组合有效,我怎样才能使它适用于任何设置?
这是产卵代码;不确定是否是问题:
[Command]
public void CmdFireProjectile(Quaternion cA, Vector3 tF, string pN) {
GameObject projPrefab = Projectile.getProjectilePrefab(pN);
GameObject proj = (GameObject)Instantiate(projPrefab, new Vector3(transform.position.x, transform.position.y + .4f, transform.position.z) + tF, cA);
proj.GetComponent<Projectile>().setSource(this);
NetworkServer.Spawn(proj);
}