【问题标题】:Why does my Unity3d Unet spawning not work为什么我的 Unity3d Unet 生成不起作用
【发布时间】:2016-02-25 22:10:26
【问题描述】:

我正在测试 Unet,现在在远程客户端上生成时遇到了问题。一切都在服务器/客户端工作。

我生成了三个非玩家对象:“橙色”、“苹果”和“香蕉”。在测试时,我使用非常基本的代码来执行此操作。但是,在生成时,只生成了两个对象,第三个生成了得到以下错误:

生成服务器对象失败,assetId=3bd88da3adcb74d04addd82122b34fee netId=6 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

我一直在寻找解决方案,但这是我得到的唯一信息。我使用以下生成代码:

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;

public class SpawnManager : NetworkBehaviour {

[SerializeField] GameObject Spawn1;
[SerializeField] GameObject Spawn2;
[SerializeField] GameObject Spawn3;
[SerializeField] GameObject Spawn4;

public override void OnStartServer() {
    SpawnFruits ();
}

void SpawnFruits() {

    GameObject goX = Resources.Load ("Apple") as GameObject;
    GameObject goY = Resources.Load ("Orange") as GameObject;
    GameObject goZ = Resources.Load ("Banana") as GameObject;

    GameObject go1 = GameObject.Instantiate (goX, Spawn3.transform.position, Quaternion.identity) as GameObject;
    NetworkServer.Spawn (go1);
    GameObject go2 = GameObject.Instantiate (goY, Spawn4.transform.position, Quaternion.identity) as GameObject;
    NetworkServer.Spawn (go2);
    GameObject go3 = GameObject.Instantiate (goZ, Spawn1.transform.position, Quaternion.identity) as GameObject;
    NetworkServer.Spawn (go3);


}
}

【问题讨论】:

  • 我怀疑它与预制件有关。 “香蕉”预制件的结构与“苹果”完全一样吗?
  • Apple、Orange 和 Banana 是否在 NetworkManager 检查器中注册?

标签: unity3d multiplayer unity-networking


【解决方案1】:

好吧,我又做了一次! ...我在对象的注册码中有错字。我在代码中进行非玩家注册。

【讨论】:

  • 有趣的是,GameObject 不时从 NetworkManager Register Spawnable 中消失。这就是为什么我一开始就没有找到它的原因,因为我知道我已经把游戏对象放在那里了。
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多