所以我有一个我试图通过 UNET 操作的对象。我所做的基本上是在服务器上生成一个对象,然后执行射线投射,如果射线投射回来并且我击中了该生成对象的一个子对象,那么我想更改它的材质。有点像高亮效果。我可以让子对象恢复正常,并且它一直在工作,直到我使用 Rpc 调用它。我收到一条警告,内容如下:
网络编写器 myChildObject 没有网络标识
然后它继续给我一个空引用错误。经过考虑,我相信它给了我这个错误,因为没有网络 ID 就无法将该对象发送给其他客户端,但是,它的父级已经有一个,如果它的父级有一个,我不能给它一个.. .这种疯狂有没有解决方法,还是我做错了?
我的代码块PlayerController
如下:
[Command]
void CmdHighlight()
{
//get what the user hit and then if we hit something send it over the server to be highlighted
GameObject hitObject = ControllerUNET.CheckForHitObject();
if(hitObject != null)
RpcHighlight(hitObject);
}
[ClientRpc]
void RpcHighlight(GameObject hitObject)
{
//highlight the object over the server
//Throws null reference on game object on line below
ControllerUNET.HighlightHitObject(hitObject);
}