当我在单人多人游戏中按Lan主机按钮时,它使用预分配我分配和Runner(克隆)出现在层次结构中。但它没有出现在屏幕上。然后,当您进入场景视图时,您会看到有一个对象但由于某种原因它不可见。导致此问题的原因是什么?如何解决?
答案 0 :(得分:1)
可能有很多问题但我会给你一个要检查的事项列表。
对象在主机/服务器中是否可见?摄像机位置/旋转是否可以正确查看衍生对象的位置?您是否使用Instantiate以与Single Player相同的方式生成对象,或者正确使用Unity Network的实例化方式?
这个Unity Networking Tutorial详细讨论了如何使用一个非常具体的例子来设置多人游戏。如果您是Unity Networking的新手,我建议您从本教程开始。以下显示如何在多人游戏中实例化对象:
[Command]
void CmdFire()
{
// This [Command] code is run on the server!
// create the bullet object locally
var bullet = (GameObject)Instantiate(
bulletPrefab,
transform.position - transform.forward,
Quaternion.identity);
bullet.GetComponent<Rigidbody>().velocity = -transform.forward*4;
// spawn the bullet on the clients
NetworkServer.Spawn(bullet);
// when the bullet is destroyed on the server it will automaticaly be destroyed on clients
Destroy(bullet, 2.0f);
}
请注意,上述内容不足以通过网络实例化对象。为了执行上述代码,还必须设置其他内容。多人游戏与SinglePlayer非常不同,如果你不熟悉上面的代码,你一定要去查看Unity Networking Tutorial。
很少有事情需要注意:
Cmd
开头。