我试图在玩家点击按钮时产生一个怪物,但当这样做时,它返回了一个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();
}
}
1条答案
按热度按时间p8ekf7hl1#
向按钮添加EventListener解决了此问题!