Bad_boy_yang 2023-12-01 11:56 采纳率: 0%
浏览 8

Unity联机开发,Photon插件

unity开发中,使用了PUN2插件,在执行外部生成的时候怎么都生成不出来,主机调用这个方法可以生成,其他客服端调用就没法生成,调试的时候发现是“待使用垃圾”是空的,这是为啥有呀(不要在意代码里的中文,公司其他人让这么写就这么写)

大概意思就是这个物体碰到了"可回收垃圾碰撞"让自己消失,在调用管理器里的方法在原位置在生成一个

    public void 生成垃圾(int Index)
    {
        int 随机数 = Random.Range(0, prefabList.Count);
        string 垃圾 = prefabList[随机数].name;
        object[] instantiationData = { Index };
        GameObject 待使用垃圾 = PhotonNetwork.InstantiateRoomObject(垃圾, ruby[Index].transform.position, ruby[Index].transform.rotation, 0, instantiationData);
    }
 public void OnCollisionEnter(Collision collision)
{
                if (collision.gameObject.CompareTag("可回收垃圾碰撞"))
                {
                    if (photonView.IsMine)
                    {
                        Owner.AddScore(可回收垃圾 ? 1 : -1);

                        DestroyAsteroidGlobally();
                    }
                    else
                    {
                        DestroyAsteroidLocally();
                    }
                }
}

        private void DestroyAsteroidGlobally()
        {
            isDestroyed = true;
            rubbishManager.生成垃圾(代号);
            Debug.Log("销毁了垃圾");
            PhotonNetwork.Destroy(gameObject);
        }
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-01 15:36
    关注

    【以下回答由 GPT 生成】

    问题应该是因为主机生成垃圾物体的方法 生成垃圾() 中使用了 PhotonNetwork.InstantiateRoomObject() 方法来生成物体,但是该方法只能在主机端执行,其他客户端无法生成物体。

    解决方案: 1. 首先,需要确保所有客户端都可以生成物体,而不仅仅是主机。 2. 可以通过使用 PhotonNetwork.Instantiate() 方法来替代 PhotonNetwork.InstantiateRoomObject() 来实现在所有客户端生成物体的功能。

    修改后的代码如下:

    public void 生成垃圾(int Index)
    {
        int 随机数 = Random.Range(0, prefabList.Count);
        string 垃圾 = prefabList[随机数].name;
        object[] instantiationData = { Index };
        GameObject 待使用垃圾 = PhotonNetwork.Instantiate(垃圾, ruby[Index].transform.position, ruby[Index].transform.rotation, 0, instantiationData);
    }
    

    在修改后的代码中,将 PhotonNetwork.InstantiateRoomObject() 替换为 PhotonNetwork.Instantiate(),这样就可以在所有客户端生成物体了。

    如果修改后的代码依然无法在其他客户端生成物体,则可能是其他原因导致。这可能需要进一步检查代码和调试来确定具体原因。如果需要更多帮助,请提供更多相关代码和问题的上下文。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月1日

悬赏问题

  • ¥15 锌合金的耐温能到多少度。可以持续多长时间
  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零