17 protected virtual IEnumerator
LoadScene(
string sceneName) {
18 if (!Application.CanStreamedLevelBeLoaded(sceneName)) {
20 $
@"Add the following to your file: 21 private static string sceneName = ""{sceneName}""; 23 [InitializeOnLoadMethod] private static void AddSceneToBuildSettings() => AddSceneToBuildSettings(sceneName); 27 var handle = SceneManager.LoadSceneAsync(sceneName: sceneName, mode: LoadSceneMode.Single);
28 if (handle == null) yield
break;
29 while (!handle.isDone) yield
return null;
30 Scene = SceneManager.GetActiveScene();
37 path = Objects.FindFile($
"{path}.unity");
38 if (path == null)
return;
39 var scenes = EditorBuildSettings.scenes;
40 for (
int i = scenes.Length - 1; i >= 0; i--) {
41 if (scenes[i].path == path)
return;
44 var newSettings =
new EditorBuildSettingsScene[scenes.Length + 1];
45 Array.Copy(scenes, newSettings, scenes.Length);
46 var sceneToAdd =
new EditorBuildSettingsScene(path,
true);
47 newSettings[newSettings.Length - 1] = sceneToAdd;
48 EditorBuildSettings.scenes = newSettings;
56 button.onClick.Invoke();
63 if ((transform == null) || !transform.gameObject.activeInHierarchy)
return false;
65 Rect screenRect =
new Rect(0, 0, Screen.width, Screen.height);
66 var objectCorners =
new Vector3[4];
67 transform.GetWorldCorners(fourCornersArray: objectCorners);
68 if (Compare.AlmostEqual(objectCorners[0].y, objectCorners[1].y))
return false;
69 if (Compare.AlmostEqual(objectCorners[1].x, objectCorners[2].x))
return false;
70 return screenRect.Contains(point: objectCorners[1]);
bool IsDisplayingInUi(RectTransform transform)
See if component is visible on the UI display/screen
static IEnumerator PushButton(Button button)
Push a GUI button
virtual IEnumerator LoadScene(string sceneName)
Load a scene by name (must be in build)
static void AddSceneToBuildSettings(string path)
//#TBD#//
Control a running scene (skeleton implementation)