/// <summary> /// Init this instance. /// </summary> protected override void Init() { var animator = GetComponent <Animator>(); notificationCentre = animator.GetBehaviour <Behaviours.NotificationCentre>(); // GetComponentInChildren does not look in inactive childrens. // GetComponentsInChildren does look in inactive children but would alocate memory. // Instead, looping over childrens for what we need. foreach (Transform children in transform) { if (signinWindow == null) { signinWindow = children.GetComponent <SignInWindow>(); if (signinWindow != null) { signinWindow.Init(animator); } } if (trophiesWindow == null) { trophiesWindow = children.GetComponent <TrophiesWindow>(); if (trophiesWindow != null) { trophiesWindow.Init(animator); } } if (leaderboardsWindow == null) { leaderboardsWindow = children.GetComponent <LeaderboardsWindow>(); if (leaderboardsWindow != null) { leaderboardsWindow.Init(animator); leaderboardsWindow.loadingPrefab = loadingPref; } } } }