0
C#活動我有連接到兩個不同的遊戲對象兩個腳本,並在其中的一個我有一個Action
這樣的:在Unity
public class EnemeyController : MonoBehavior
{
internal Action EnemyWaveKilled;
private void OnTriggerEnter2D(Collider2D other)
{
// If hit by a bullet, kill and raise the event
EnemyWaveKilled?.Invoke();
}
}
在我的其他腳本的Start
方法,我嘗試訂閱此事件以這種方式:
public class GameController : MonoBehavior
{
internal int PlayerLevel;
private void Start()
{
_enemyController = GameObject.FindWithTag("Enemy").GetComponent<EnemyController>();
_enemyController.EnemyWaveKilled +=() => PlayerLevel++;
}
}
我有3個遊戲對象都在場景中標記Enemy
。
現在,似乎我的GameController
以某種方式隨機訂閱該事件。
更準確,如果我在EnemyController
類的Update()
方法打印EnemyWaveKilled.Target
,它會顯示一條線說這是GameController
和兩行說這是null
)
任何幫助深表感謝
只是一個FYI,團結[它自己的事件包裝](https://docs.unity3d.com/ScriptReference/Events.UnityEvent。 html)在序列化方面更好,你可能想看看它們。另外,您的編輯應該是答案,而不是編輯。除非你還有問題嗎? –
謝謝。我會檢查你的鏈接,並且我會更新這個問題 – Farzad