public override IEnumerator RunTest() { // Show some empty view as a background for the toasts: ViewStackHelper.MainViewStack().ShowView(someUiScreenPrefabName); Toast.Show("Some toast 1", "Lorem ipsum 1"); yield return(new WaitForSeconds(1)); Toast.Show("Some toast 2"); // In between show another screen on the main view stack, to ensure it does not interrupt showing the toasts: ViewStackHelper.MainViewStack().SwitchToView(someUiScreenPrefabName); yield return(new WaitForSeconds(1)); var toast3 = Toast.Show("Some toast 3", "Lorem ipsum 3", 2500); AssertV2.IsFalse(toast3.IsDestroyed(), "Toast was already destroyed"); yield return(new WaitForSeconds(3)); AssertV2.IsTrue(toast3.IsDestroyed(), "Toast could not be destroyed"); RootCanvas.GetAllRootCanvases().Single().gameObject.Destroy(); Toast.Show("Some toast 4"); yield return(new WaitForSeconds(3)); }
static void AddRootCanvas() { var foundCanvas = RootCanvas.GetAllRootCanvases().FirstOrDefault(); if (foundCanvas != null) { Log.e("There is already a root canvas in the scene"); SelectInHirarchyUi(foundCanvas); return; } AddViewInViewStack(); }
public void Update() { if (Input.GetKeyUp(KeyCode.Escape)) // back button pressed { Log.d("Back key pressed"); var vs = gameObject.GetComponent <ViewStack>(); var c = vs.gameObject.GetComponentInParents <Canvas>()?.rootCanvas; if (c != null && c == RootCanvas.GetAllRootCanvases().First()) { var sortedViews = SortByCanvasSortingOrder(vs.gameObject.GetChildrenIEnumerable()); if (!vs.SwitchBackToLastView(sortedViews.First())) { // The last view was reached so the switch back could not be performed if (destroyFinalView) { vs.DestroyViewStack(); } } } } }