Я пытаюсь добавить слушатель UnityEvent к другому сценарию через код, когда я его создаю. Однако метод обратного вызова никогда не вызывается.
Я поместил оператор отладки в свой скрипт UIFader, и распечатка показывает, что UnityEvent не равен нулю, поэтому он видит слушателей. Однако метод обратного вызова в UIManager не вызывается.
UIManager.cs
public void SpawnInformationWindow()
{
if (canvas == null || InformationWindowPrefab == null)
{
return;
}
GameObject informationWindow = Instantiate(InformationWindowPrefab, canvas, false);
informationWindow.GetComponent<UIFader>().OnFadeOutComplete.AddListener(SpawnTermsOfUseWindow);
}
public void SpawnTermsOfUseWindow()
{
Debug.Log("THIS RAN!");
if (canvas == null || TermsOfUseWindowPrefab == null)
{
return;
}
GameObject termsOfUseWindow = Instantiate(TermsOfUseWindowPrefab, canvas, false);
}
UIFader.cs
void CompleteFadeOut()
{
Debug.Log("Fadeout Complete! " + OnFadeOutComplete == null);
if (OnFadeOutComplete != null)
OnFadeInComplete.Invoke();
if (destroyOnFadeOut)
Destroy(gameObject);
else if (mode == FadeMode.PingPong)
FadeIn();
else
{
mode = FadeMode.None;
currentState = FadeMode.None;
}
}