void Start() { gameSceneController = GameObject.FindObjectOfType <GameSceneController>(); // BGM if (BaseManager.globalMenuMusic != null) { StartCoroutine(AudioHelper.FadeAudioObject(BaseManager.globalMenuMusic, -1f)); } if (BaseManager.globalGameMusic == null) { // create and return the Intro Scene music audio BaseManager.globalGameMusic = AudioHelper.CreateGetFadeAudioObject(BaseManager.GetInstance().gameMusic, true, BaseManager.GetInstance().fadeClip, "Audio-GameMusic"); // play the clip StartCoroutine(AudioHelper.FadeAudioObject(BaseManager.globalGameMusic, 0.5f)); } // Load data (if not done yet) GlobalData.LoadLevelData(); if (GlobalData.gameMode == GlobalData.GameMode.PUZZLE_MODE) { // create board GameObject board = Instantiate(ModePuzzlePrefab) as GameObject; _bubbleBoard = board.GetComponent <IBubbleBoard>(); // Set Data RequiredSquirrel = GlobalData.LevelRequire[GlobalData.GetCurrentLevel()]; RemainBubbleShoot = GlobalData.StarTarget[GlobalData.GetCurrentLevel()][0]; if (GlobalData.GetCurrentLevel() >= 40) { RemainBubbleShoot += 15; } StarTargets[0] = GlobalData.StarTarget[GlobalData.GetCurrentLevel()][1]; StarTargets[1] = GlobalData.StarTarget[GlobalData.GetCurrentLevel()][2]; StarTargets[2] = GlobalData.StarTarget[GlobalData.GetCurrentLevel()][3]; float maxPoint = StarTargets[2] + StarTargets[2] * 15 / 100; for (int i = 0; i < 3; i++) { RectTransform tf = StarTargetFlags[i].GetComponent <RectTransform>(); tf.anchoredPosition = new Vector2(StarTargets[i] / maxPoint * 266f, tf.anchoredPosition.y); } // Levelselect switch LevelSelectController.NewUnlockedLevel = -1; LevelSelectController.needUpdateMoveSquirrelIcon = false; } else if (GlobalData.gameMode == GlobalData.GameMode.ENDLESS_MODE) { LittleSquirrelController.publicList.Clear(); // create board GameObject board = Instantiate(ModeEndlessPrefab) as GameObject; _bubbleBoard = board.GetComponent <IBubbleBoard>(); // Set Data RequiredSquirrel = -1; RemainBubbleShoot = -1; BubbleRemainBoard.SetActive(false); SquirrelCounter.SetActive(false); HUDBGEndless.SetActive(true); SplitBar.SetActive(true); RECT_ScoreBoard.anchoredPosition = new Vector2(-134, -16); RECT_StarBar.anchoredPosition = new Vector2(-122, -52); RECT_StarRealBar.sizeDelta = new Vector2(470, 12.8f); RECT_StarRealBar.GetComponent <Image>().sprite = longStarBarSprite; for (int i = 0; i < 3; i++) { StarTargetFlags[i].SetActive(false); } EndlessLastScore = 0; EndlessTargetScore = GlobalData.ENDLESS_TARGET_EACHLEVEL; } // InitHUD foreach (UnityEngine.UI.Text txt in txtLevelLabels) { txt.text = GlobalData.GetCurrentLevel().ToString(); } // Finish InitHUD UpdateHUD(); gameStarted = false; gameEnded = false; allLoadingDone = false; _bubbleBoard.InitBubbleBoard(); InitBubbles(); _usingArrow = false; _shootArrow.CreateDots(); _shootArrow.UpdateArrow(); }