void Awake() { self = this; videoPlayer = GetComponent <VideoPlayer>() ? GetComponent <VideoPlayer>() : self.gameObject.AddComponent <VideoPlayer>(); { videoPlayer.playOnAwake = true; videoPlayer.waitForFirstFrame = true; videoPlayer.isLooping = true; videoPlayer.skipOnDrop = true; videoPlayer.renderMode = VideoRenderMode.RenderTexture; videoPlayer.aspectRatio = VideoAspectRatio.Stretch; videoPlayer.audioOutputMode = VideoAudioOutputMode.None; }; skyboxMaterial = Instantiate(skyboxMaterial); skyboxRenderTexture = Instantiate(skyboxRenderTexture); GetComponent <MeshRenderer>().material = skyboxMaterial; skyboxMeshFilter = GetComponent <MeshFilter>(); if (skyboxMeshFilter) { videoPlayer.renderMode = VideoRenderMode.MaterialOverride; videoPlayer.targetMaterialRenderer = skyboxMeshFilter.GetComponent <MeshRenderer>(); } }
// Use this for initialization void Start() { // 配列の確保 m_score = new int[ConstPlayerMax]; if (SceneSharedData.instance != null) { m_score[0] = SceneSharedData.instance.Get <int>("PlayTest", "Player1Score"); m_score[1] = SceneSharedData.instance.Get <int>("PlayTest", "Player2Score"); m_score[2] = SceneSharedData.instance.Get <int>("PlayTest", "Player3Score"); m_score[3] = SceneSharedData.instance.Get <int>("PlayTest", "Player4Score"); SceneSharedData.instance.Remove("PlayTest", "Player1Score"); SceneSharedData.instance.Remove("PlayTest", "Player2Score"); SceneSharedData.instance.Remove("PlayTest", "Player3Score"); SceneSharedData.instance.Remove("PlayTest", "Player4Score"); } else { m_score[0] = 20; m_score[1] = 25; m_score[2] = 25; m_score[3] = 20; } // オブジェクトのロード // プレイヤー m_player = new GameObject[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_player[i] = GameObject.Find("Player0" + (i + 1).ToString()); } // 会社 m_company = new GameObject[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_company[i] = GameObject.Find("Company0" + (i + 1).ToString()); } // 表彰台 m_podium = new GameObject[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_podium[i] = GameObject.Find("Podium0" + (i + 1).ToString()); } // スコアのテキスト m_scoreText = new Text[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_scoreText[i] = GameObject.Find("ScoreText0" + (i + 1).ToString()).GetComponent <Text>(); } // パーティクルのオブジェクトを探す m_confettiParticleParent = new GameObject[ConstPlayerMax]; m_confettiParticle1 = new ParticleSystem[ConstPlayerMax]; m_confettiParticle2 = new ParticleSystem[ConstPlayerMax]; m_confettiParticle3 = new ParticleSystem[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { string findObj = "ConfettiParticle" + (i + 1); m_confettiParticleParent[i] = GameObject.Find(findObj); string findObj2 = findObj + "_1"; m_confettiParticle1[i] = GameObject.Find(findObj2).GetComponent <ParticleSystem>(); m_confettiParticle2[i] = GameObject.Find(findObj + "_2").GetComponent <ParticleSystem>(); m_confettiParticle3[i] = GameObject.Find(findObj + "_3").GetComponent <ParticleSystem>(); m_confettiParticle1[i].Stop(); m_confettiParticle2[i].Stop(); m_confettiParticle3[i].Stop(); } // 王冠 m_crownGold = new GameObject[ConstPlayerMax]; m_crownSilver = new GameObject[ConstPlayerMax]; m_crownBronze = new GameObject[ConstPlayerMax]; m_saveCrownPosY = new float[(int)CrownKind.Max]; for (i = 0; i < ConstPlayerMax; i++) { // オブジェクトの生成 m_crownGold[i] = Instantiate(m_crownGoldObj); m_crownSilver[i] = Instantiate(m_crownSilverObj); m_crownBronze[i] = Instantiate(m_crownBronzeObj); // キャンバスの中に入れる m_crownGold[i].transform.SetParent(m_canvasObject.transform); m_crownSilver[i].transform.SetParent(m_canvasObject.transform); m_crownBronze[i].transform.SetParent(m_canvasObject.transform); // scale m_crownGold[i].transform.localScale = m_crownGoldObj.transform.localScale; m_crownSilver[i].transform.localScale = m_crownSilverObj.transform.localScale; m_crownBronze[i].transform.localScale = m_crownBronzeObj.transform.localScale; // 非表示 m_crownGold[i].SetActive(false); m_crownSilver[i].SetActive(false); m_crownBronze[i].SetActive(false); } // 王冠の高さ保存 m_saveCrownPosY = new float[(int)CrownKind.Max]; m_saveCrownPosY[(int)CrownKind.Gold] = m_crownGoldObj.transform.localPosition.y; m_saveCrownPosY[(int)CrownKind.Silver] = m_crownSilverObj.transform.localPosition.y; m_saveCrownPosY[(int)CrownKind.Bronze] = m_crownBronzeObj.transform.localPosition.y; // 非表示 m_crownGoldObj.SetActive(false); m_crownSilverObj.SetActive(false); m_crownBronzeObj.SetActive(false); // 花火パーティクル m_fireWorkParticleRed = GameObject.Find("FireWorkRed").GetComponent <ParticleSystem>(); m_fireWorkParticleBlue = GameObject.Find("FireWorkBlue").GetComponent <ParticleSystem>(); m_fireWorkParticleRed.Stop(); m_fireWorkParticleBlue.Stop(); // マテリアル読み込み m_podiumMaterial = new Renderer[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_podiumMaterial[i] = m_podium[i].GetComponent <Renderer>(); } // テキストは最初表示しない for (i = 0; i < ConstPlayerMax; i++) { m_scoreText[i].enabled = false; //m_rankingText[i].enabled = false; } // プレイヤーの順位を判定 m_playerRanking = new int[ConstPlayerMax]; bool same_flg = false; int same_cnt = 0; int[] tmp_score; // 一時保存用 tmp_score = new int[ConstPlayerMax]; m_score.CopyTo(tmp_score, 0); // 配列のコピー System.Array.Sort(tmp_score); // 昇順にソート System.Array.Reverse(tmp_score); // 反転して降順にする for (i = 0; i < ConstPlayerMax; i++) { // 順位の確定 m_playerRanking[i] = System.Array.IndexOf(tmp_score, m_score[i]); // 同じとき if (i >= 1) { if (m_player[i] == m_player[i - 1]) { same_flg = true; same_cnt++; continue; } } if (same_flg) { m_playerRanking[i] += same_cnt; same_flg = false; } } int max = m_score.Max(); // スコアの最大値をとる m_saveTopPlayer = System.Array.IndexOf(m_score, max); // 最大値の配列が何番目か保存 m_maxGirl = max; // スコア関係の初期化 m_scoreCount = new int[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_scoreCount[i] = 0; } // プレイヤー関係の初期化 m_playerStartPos = new Vector3[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_playerStartPos[i] = m_podium[i].transform.position; } m_playerLerpRate = 0.0f; // 女性関係の初期化 m_girl = new GameObject[ConstPlayerMax, max]; m_girlMoveFlag = new bool[ConstPlayerMax, max]; m_girlGoalPosition = new Vector3[ConstPlayerMax, max]; m_girlLerpRate = new float[ConstPlayerMax, max]; // 女性の目標地点を決める for (i = 0; i < ConstPlayerMax; i++) { int line_cnt = 1; // 行の数 int nowColumn_max = 1; // 現在の行の人数の最大 int k = 0; // 現在何番目の列か // 獲得した人数分だけ for (j = 0; j < m_score[i]; j++) { // 女性のオブジェクトを生成 m_girl[i, j] = Instantiate(m_girlPrefab); // 非アクティブ状態 m_girl[i, j].SetActive(false); // 目標地点を設定する // 整列ver //m_womenGoalPosition[i, j] = womenColumnStartMaker.position; //m_womenGoalPosition[i, j].x = m_player[i].transform.position.x - (m_player[0].transform.position.x - womenColumnStartMaker.position.x) + (j / 8 * 0.5f); //m_womenGoalPosition[i, j] += new Vector3(0.0f, 0.0f, j%8 * 0.5f); // ピラミッドver m_girlGoalPosition[i, j] = m_girlColumnStartMaker.position; //m_girlGoalPosition[i, j].x = m_player[i].transform.position.x - (m_player[0].transform.position.x - womenColumnStartMaker.position.x) - (offset_x / 2 * (column_max - 1)) + (k * offset_x); m_girlGoalPosition[i, j].y = m_player[i].transform.position.y; m_girlGoalPosition[i, j].x = m_player[i].transform.position.x - (m_girlColumnInerver / 2 * (nowColumn_max - 1)) + (k * m_girlLineInterval); m_girlGoalPosition[i, j] += new Vector3(0.0f, 0.0f, (line_cnt - 1) * m_girlLineInterval); k++; if (k + 1 > nowColumn_max) { k = 0; nowColumn_max++; if (nowColumn_max > m_girlColumnMax) { nowColumn_max = m_girlColumnMax; } line_cnt++; } // 動くフラグの初期化 m_girlMoveFlag[i, j] = false; // 線形補間用 m_girlLerpRate[i, j] = 0.0f; } } // 表彰台関係の初期化 m_savePodiumStart = new Vector3[ConstPlayerMax]; m_podiumSpeed = new float[ConstPlayerMax]; m_podiumState = new PodiumState[ConstPlayerMax]; m_podiumLerp = new float[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_podiumSpeed[i] = 0.0f; m_podiumState[i] = PodiumState.Up; m_podiumSpeed[i] = m_podiumSeedMax[i]; m_podiumLerp[i] = 0.0f; } m_savePodiumColor = m_podiumMaterial[0].material.GetColor("_EmissionColor"); m_podiumColorLerp = 0.0f; // lightShaftの初期化 for (i = 0; i < ConstPlayerMax; i++) { m_lightShaft[i].enabled = false; m_lightShaft[i].range = 0.0f; } for (i = 0; i < ConstPlayerMax; i++) { m_pointLight[i].enabled = false; } // 演出01を初期の状態に設定 m_resultState = ResultState.PutCompanyProduction; time = 0; m_girlColumnCnt = 1; m_intervalTime = 0.0f; se023_startFlag = false; se024_startFlag = false; bgm003_startFlag = false; m_fadeObject = GameObject.FindObjectOfType <Fade>(); // コンポーネント取得 m_playerAnimator = new Animator[ConstPlayerMax]; for (i = 0; i < ConstPlayerMax; i++) { m_playerAnimator[i] = GameObject.Find("Player0" + (i + 1).ToString()).GetComponent <Animator>(); } m_girlAnimator = new Animator[ConstPlayerMax, max]; for (i = 0; i < ConstPlayerMax; i++) { for (j = 0; j < m_score[i]; j++) { m_girlAnimator[i, j] = m_girl[i, j].GetComponent <Animator>(); } } m_skyboxControl = this.GetComponent <SkyboxControl>(); }