unity3d 从按钮调用ServerRpc函数时遇到问题- Unity Netcode

rjee0c15  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(219)

我试图在玩家点击按钮时产生一个怪物,但当这样做时,它返回了一个NullReference。奇怪的是,NullReference指向ServerRpc函数的第一行,因此即使是Debug.Log也被认为是空的。(创建testButton函数是为了检查我的按钮是否有问题,但它确实工作得很好)。
为了给予更多的上下文,当播放器产生时,按钮被示例化。播放器直接从预制件链接到按钮。

玩家可以通过按下A来产生怪物,这是非常好的工作,所以所有的产卵逻辑都很好。

public class PlayerNetwork : NetworkBehaviour
    {

        private SpawnMonsters spawn;
        
        public MonsterCardGame[] monsterDeck;
        public Transform[] cardEmps;
        
        public override void OnNetworkSpawn()
        {
            spawn = FindObjectOfType<SpawnMonsters>();
        }

        private void Update()
        {
            if (!IsOwner) return;

            if (Input.GetKey(KeyCode.A))
            {
                SpawnMonsterServerRpc();
            }
        }
        

        
        [ServerRpc(RequireOwnership = false)]
        public void SpawnMonsterServerRpc()
        {
            Debug.Log("ServerRpc");
            spawn.SpawnMonster(0);
        }
        
        public void testButton()
        {
            Debug.Log("Clickbutton");
            SpawnMonsterServerRpc();
        }
    }
p8ekf7hl

p8ekf7hl1#

向按钮添加EventListener解决了此问题!

相关问题