我試圖在玩家單擊按鈕時生成怪物,但這樣做會回傳 NullReference。奇怪的是 NullReference 指向 ServerRpc 函式的第一行,所以即使是 Debug.Log 也被認為是 Null。(創建 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();
}
}
uj5u.com熱心網友回復:
向按鈕添加 EventListener 解決了問題!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/536472.html