unity3d PhotonView不退出

zfciruhq  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(182)

已收到viewID 2010的RPC“RPCname”,但此PhotonView不存在!风景是我们的。远程呼叫。通过:#01 'name'

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour
{
    public PhotonView PV;
    int dir;

    void Awake()
    {
        PV = GetComponent<PhotonView>();
    }
    void Start() => Destroy(gameObject, 10f);

    void OnTriggerEnter2D(Collider2D col) // col을 RPC의 매개변수로 넘겨줄 수 없다
    {
        if (col.tag == "Border") PV.RPC("DestroyRPC", RpcTarget.AllBuffered);
        if (!PV.IsMine && col.tag == "Player" && col.GetComponent<PhotonView>().IsMine) // 느린쪽에 맞춰서 Hit판정
        {
            col.GetComponent<Player>().Hit();
            PV.RPC("DestroyRPC", RpcTarget.AllBuffered);
        }
    }

    [PunRPC]
    void DirRPC(int dir) => this.dir = dir;

    [PunRPC]
    void DestroyRPC()
    {

        Destroy(gameObject);
    }
}

我在做一个双人射击游戏,子弹打到墙上会消失,但会留下这样的警告信息。
我问chatGPT,他就这么说,但是不行

if (PV != null && PV.IsMine)
3pmvbmvn

3pmvbmvn1#

看起来你完全搞乱了一个网络对象的工作流程。请阅读光子引擎手册,了解如何示例化和删除网络实体。除此之外,以这种方式复制子弹并不是一个好的做法,因为由于浮点精度和网络快照延迟,不同的玩家会有各种各样的逻辑争议。最好有一个武器的网络实体,从服务器向其他玩家发送所有子弹的信息。

相关问题