【问题标题】:Unity UNET- Can't spawn object with client authorityUnity UNET - 无法生成具有客户端权限的对象
【发布时间】:2018-02-24 14:13:19
【问题描述】:

我有一个问题,我无法从客户端生成所选对象。它在主机执行操作时完美运行,但在客户端尝试时却不行。当客户端尝试它时,我收到以下错误:“SpawnWithClientAuthority 播放器对象不是播放器”。这很令人困惑,因为它在由主机执行时完美运行。

此特定部分的代码如下:

 private void updateAppearance(GameObject newObject)
{

    Destroy(appearance);

    hiderModel.SetActive(false);

    int newObjectNum = propNames.IndexOf(newObject.name);
    activePropIndex = newObjectNum;
    Debug.Log(newObjectNum);


    newObject = (GameObject)Instantiate(props[newObjectNum], playerCam.gameObject.transform);
    newObject.transform.localPosition = new Vector3(0, getObjectHeight(newObjectNum), 0);

    NetworkServer.SpawnWithClientAuthority(newObject, gameObject); <--- This part gives the error

    appearance = newObject;
    appearance.transform.localPosition = new Vector3(0, appearance.transform.localPosition.y, 0);


}

要生成的对象设置了 localAuthority 并对其进行了网络转换。 该对象注册为可生成对象,它是我传递给 SpawnWithClientAuthority 方法的实例化预制件。据我所读,这应该允许该功能工作,但不幸的是它没有。

关于如何解决这个问题的任何想法?

提前致谢

【问题讨论】:

    标签: unity5 spawning unet


    【解决方案1】:

    当主机执行该操作时它可以完美运行,但当客户端尝试它时就不行了

    因为只有 SERVER 可以通过网络生成对象。 将您的代码包装到 [Command] 以在服务器上执行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多