/// <summary> /// Called on Awake after the singleton has been setup. /// </summary> protected override void GameSetup() { #if GOOGLE_ADS if (!GameManager.Instance.IsUnlocked && !string.IsNullOrEmpty(AdmobUnitIdAndroid) && !string.IsNullOrEmpty(AdmobUnitIdIos)) { Adverts = new AdMob(AdmobUnitIdAndroid, AdmobUnitIdIos); Adverts.HideBanner(); Adverts.RequestBanner(); } #endif }
protected void Start() { audioSource = GetComponent <AudioSource>(); admob = GameObject.Find("AdMob").GetComponent <AdMob>(); videoPlayer = GameObject.Find("Video Player").GetComponent <VideoPlayer>(); BGM = GameObject.Find("BGM").GetComponent <AudioSource>(); courseButtons = new GameObject[theNumberOfCourses]; admobBannerExist = false; canClick = true; //初めはボタンをクリックできる状態にしておく /*バナー広告を最初の1回だけリクエストする*/ if (!admobBannerExist) { admob.RequestBanner(); admobBannerExist = true; } /*アプリ起動時のみオープニング動画を再生する*/ if (moviePlay) { lastScreen = Screen.title; PlayOpeningMovie(); moviePlay = false; /*デバッグ用*/ //PlayerPrefs.SetInt("Course1".ToString(), 0); //for (int i = 1; i <= 15; i++) { // /*15コースをクリア済みにしておく*/ // PlayerPrefs.SetInt("Course" + (i + 1).ToString(), 1); //} } else { BGM.mute = false; //BGM.Play(); videoPlayer.Pause(); initialMovieBackground.gameObject.SetActive(false); } Initialize(); }
/// <summary> /// 開始処理 /// </summary> public void Start() { //AdMob表示 adMob.RequestBanner(); //保存データ初期化(デバッグ時使用) // PlayerPrefs.DeleteAll (); gameController.ClearScore(); //ハイスコア表示 highScoreLabel.text = "High Score : " + PlayerPrefs.GetFloat("HighScore").ToString("F1") + "m"; //ステージ1をクリアしていたらステージ2を表示 if (PlayerPrefs.GetInt("Stage") < 2) { Stage2Button.SetActive(false); } //ステージ2をクリアしていたらステージ3を表示 if (PlayerPrefs.GetInt("Stage") < 3) { Stage3Button.SetActive(false); } }
/// <summary> /// ゲームオーバー /// </summary> void GameOver() { //衝撃音ストップ audioSource.Stop(); //Shareボタン表示 ShareButton.gameObject.SetActive(true); //AdMob広告表示 adMob.RequestBanner(); //PauseButton非表示 PauseButton.gameObject.SetActive(false); //ライフ減少 life--; //ライフが残っている場合 if (life >= 0) { //ステータス更新 state = State.Ready; //ライフ表示更新 lifePanel.UpdateLife(life); //blockタグが付いたObject(障害物)の情報を取得 GameObject[] blocks = GameObject.FindGameObjectsWithTag("block"); //FishObjectのX座標を取得 int fishX = Mathf.RoundToInt(fish.transform.position.x); //障害物のXY座標を初期化 int blockX; int blockY; foreach (GameObject block in blocks) { //障害物のX位置を取得 blockX = Mathf.RoundToInt(block.transform.position.x); //FishObjectが死亡したX座標と、その1つ先にある障害物オブジェクトのX座標が同じ場合 if ((fishX + 1) == blockX) { //障害物のY座標を格納 Obstacles1.Add(Mathf.RoundToInt(block.transform.position.y)); } //FishObjectが死亡したX座標と、その2つ先にある障害物オブジェクトのX座標が同じ場合 if ((fishX + 2) == blockX) { //障害物のY座標を格納 Obstacles2.Add(Mathf.RoundToInt(block.transform.position.y)); } } //障害物のX座標を昇順で並び替え Obstacles1.Sort(); Obstacles2.Sort(); //FishObjectの位置を初期化 int setY = 0; int setY2 = 0; //障害物がない位置の取得フラグ bool isEmptyBlock = false; //一番下のY座標 int i = -5; //最初に取得した障害物のY座標 int originalObstacles = 0; //FishObjectが死亡したY座標の1つ先にある障害物オブジェクトのY座標を繰り返し、障害物が存在しないY座標を取得 foreach (int list in Obstacles1) { if (i != -5) { int differencePosition = Mathf.Abs(originalObstacles - list); if (differencePosition > 3) { //1つ前に取得したY座標と今回取得したY座標が3つ以上空いている場合、空いている真ん中の座標をセット setY = Mathf.FloorToInt((differencePosition) / 2) + originalObstacles; isEmptyBlock = true; break; } else if (differencePosition > 2) { //1つ前に取得したY座標と今回取得したY座標が2つ以上空いている場合、空いている真ん中の座標をセット setY2 = Mathf.FloorToInt((differencePosition) / 2) + originalObstacles; } } originalObstacles = list; i++; } //3つ以上空いているY座標が取得できなかった場合 if (!isEmptyBlock) { if (originalObstacles != 5) { //Y座標がMaxの5でない場合、Maxと最初に取得した障害物のY座標を足したものの真ん中の座標をセット setY = Mathf.FloorToInt((5 + originalObstacles) / 2); } else { //Y座標がMaxの5の場合、2つ以上空いているY座標をセット setY = setY2; } } foreach (int list in Obstacles2) { //2つ先のY座標の1つ下に障害物がある場合、セットしたY座標を加算 if (list == (setY - 1)) { setY++; } //2つ先のY座標に障害物がある場合、セットしたY座標を加算 if (list == setY) { setY++; } } //セットしたY座標がMaxの5を超える場合、2つ以上空いているY座標をセット if (setY > 5) { setY = setY2; } //取得した障害物座標を初期化 Obstacles1 = new List <int> (); Obstacles2 = new List <int> (); //ラベル更新 StartButton.gameObject.SetActive(true); //スタートした際、障害物にすぐ当たらない(埋まらない)位置にFishObjectをセット fish.transform.position = new Vector3(fishX + 1, setY, 0); //動作OFF fish.InitParam(false); camera.SetIsPlay(false); fish.isDead = false; //時間停止 Time.timeScale = 0; fish.Start(); } else { //クリア音再生 audioSource.clip = gameover; audioSource.Play(); //ゲームオーバー //ステータス更新 state = State.GameOver; //ラベル更新 statusLabel.gameObject.SetActive(true); statusLabel.text = "GameOver..."; ReStartButton.gameObject.SetActive(true); //ハイスコア更新 if (PlayerPrefs.GetFloat("HighScore") < score) { UpdateHighScore(); } } BackToTitleButton.gameObject.SetActive(true); }