Я пытаюсь создать монстра, когда игрок нажимает кнопку, но при этом он возвращает 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();
}
}
Добавление EventListener к кнопке решило проблему!