当我尝试在多人游戏中生成时,我的游戏对象不可见
My Game object is not visible when I try and spawn in multiplayer
当我在 unity 多人游戏中按下 Lan host 按钮时,它使用我分配的预制件并且 Runner(Clone) 出现在层次结构中。但它没有出现在屏幕上。然后,当您进入场景视图时,您会看到有一个对象,但由于某种原因它是不可见的。导致此问题的原因是什么?我该如何解决?
可能有很多问题,但我会给你一份清单,列出需要检查的事项。
对象在主机/服务器中可见吗?相机位置/旋转是否可以正确查看生成对象的位置?您是否以与单人游戏相同的方式使用 Instantiate 生成对象,或正确使用 Unity Network 的实例化方式?
这篇Unity Networking Tutorial通过一个非常具体的例子详细讨论了如何设置多人游戏。如果您是 Unity Networking 的新手,我建议您从教程开始。下面展示如何在Multiplayer中实例化对象:
[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);
}
请注意,以上内容不足以通过网络实例化对象。为了执行上述代码,还必须设置其他内容。多人游戏与单人游戏有很大不同,如果你不熟悉上面的代码,你一定要去看看 Unity 网络教程。
注意事项:
- 方法必须用 [Command] 标记
- 方法名称必须以
Cmd
. 开头
- 链接教程可能是Unity提供的唯一教程。 (Unity Networking 因其缺乏文档而声名狼藉。)
当我在 unity 多人游戏中按下 Lan host 按钮时,它使用我分配的预制件并且 Runner(Clone) 出现在层次结构中。但它没有出现在屏幕上。然后,当您进入场景视图时,您会看到有一个对象,但由于某种原因它是不可见的。导致此问题的原因是什么?我该如何解决?
可能有很多问题,但我会给你一份清单,列出需要检查的事项。
对象在主机/服务器中可见吗?相机位置/旋转是否可以正确查看生成对象的位置?您是否以与单人游戏相同的方式使用 Instantiate 生成对象,或正确使用 Unity Network 的实例化方式?
这篇Unity Networking Tutorial通过一个非常具体的例子详细讨论了如何设置多人游戏。如果您是 Unity Networking 的新手,我建议您从教程开始。下面展示如何在Multiplayer中实例化对象:
[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);
}
请注意,以上内容不足以通过网络实例化对象。为了执行上述代码,还必须设置其他内容。多人游戏与单人游戏有很大不同,如果你不熟悉上面的代码,你一定要去看看 Unity 网络教程。
注意事项:
- 方法必须用 [Command] 标记
- 方法名称必须以
Cmd
. 开头
- 链接教程可能是Unity提供的唯一教程。 (Unity Networking 因其缺乏文档而声名狼藉。)