コード例 #1
0
    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>();
        }
    }
コード例 #2
0
    // 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>();
    }