You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Photon PUN 2 工具对象重复实例化问题求助

Photon PUN 2 工具对象重复实例化问题求助

各位大佬好,我刚接触多人游戏开发和Photon PUN 2,现在正在做一个工具同步系统,要让所有玩家都能看到彼此当前使用的工具。

这个脚本大体上能工作,但不知道为什么,工具会被实例化两次。而且额外生成的对象没有被父化到任何物体上,明明我的脚本里已经把实例化的对象设置为toolSlot Transform的子物体了。

我的代码如下:

public class ToolManager : MonoBehaviour, IPunObservable
{
    public SA_Tool[] Tools;
    public Transform toolSlot;
    private GameObject currentToolInstance;
    private PhotonView photonView;

    private void Start()
    {
        photonView = GetComponent<PhotonView>();
    }

    private void Update()
    {
        if (photonView.IsMine && Input.GetMouseButtonDown(0))
        {
            SwitchTool(0);
        }
    }

    private void SwitchTool(int newIndex)
    {
        DestroyCurrentTool();
        currentToolInstance = PhotonNetwork.Instantiate(Path.Combine("PhotonPrefabs/Tool Models", Tools[newIndex].model.name), transform.position, transform.rotation);
        SetToolTransform(currentToolInstance);
        photonView.RPC("RPCSyncToolChange", RpcTarget.Others, newIndex);
    }

    private void SetToolTransform(GameObject tool)
    {
        tool.transform.SetParent(toolSlot, false);
        tool.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
    }

    private void DestroyCurrentTool()
    {
        if (currentToolInstance != null)
        {
            Debug.Log("Destroying current tool instance...");
            PhotonNetwork.Destroy(currentToolInstance);
        }
    }

    [PunRPC]
    private void RPCSyncToolChange(int newIndex)
    {
        DestroyCurrentTool();
        currentToolInstance = PhotonNetwork.Instantiate(Path.Combine("PhotonPrefabs/Tool Models", Tools[newIndex].model.name), transform.position, transform.rotation);
        SetToolTransform(currentToolInstance);
    }
}

我已经在DestroyCurrentTool()方法里加了Debug.Log,想看看是不是没有销毁多余的对象,但控制台里从来没看到这个日志输出。我还试过在不同的方法里调用设置工具的逻辑,结果还是一样,所以应该不是Update方法的问题。

我是真的刚入门,如果需要更多信息的话,随时告诉我!

备注:内容来源于stack exchange,提问作者payd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 13:05:29