private void Start() { if (SceneButtonPrefab == null) { return; } SceneLauncherBuildIndex = SceneManager.GetActiveScene().buildIndex; // Determine the size of the buttons. Instantiate one of them so that we can check its bounds. SceneLauncherButton sceneButtonForSize = Instantiate(SceneButtonPrefab); var sceneButtonForSizeCollider = sceneButtonForSize.GetComponent <Collider>(); if (sceneButtonForSizeCollider != null) { sceneButtonSize = sceneButtonForSizeCollider.bounds.size; } for (int sceneIndex = 0; sceneIndex < sceneMapping.Length; ++sceneIndex) { if (sceneMapping[sceneIndex].IsButtonEnabled) { CreateSceneButton(ButtonSpawnLocation, sceneIndex); } } Destroy(sceneButtonForSize.gameObject); }
private void CreateSceneButton(GameObject buttonParent, int sceneIndex) { string sceneName = sceneMapping[sceneIndex].ScenePath; sceneName = sceneName.Substring(sceneName.LastIndexOf("/", StringComparison.Ordinal) + 1); sceneName = sceneName.Replace(".unity", ""); var scene = SceneManager.GetSceneByBuildIndex(sceneIndex); Debug.Assert(SceneManager.GetSceneByName(sceneName) == scene); SceneLauncherButton sceneButton = Instantiate(SceneButtonPrefab, GetButtonPosition(sceneIndex, sceneMapping.Length), Quaternion.identity, buttonParent.transform); sceneButton.SceneIndex = sceneIndex; sceneButton.SceneName = sceneName; sceneButton.MenuReference = ButtonSpawnLocation; }