コード例 #1
0
    //----------------------------------------------------------
    // アップデート
    //
    private void Update()
    {
        var level = AudioEffectsManager.GetEffectLevel(type);

        // ノブレベルUIの表示切替
        if (0.0f < level && level <= 1.0f)
        {
            if (0.66f < level)
            {
                KnobLevel_1.SetActive(true);
                KnobLevel_2.SetActive(true);
                KnobLevel_3.SetActive(true);
            }
            else if (0.33f < level)
            {
                KnobLevel_1.SetActive(true);
                KnobLevel_2.SetActive(true);
                KnobLevel_3.SetActive(false);
            }
            else
            {
                KnobLevel_1.SetActive(true);
                KnobLevel_2.SetActive(false);
                KnobLevel_3.SetActive(false);
            }
        }
        else
        {
            KnobLevel_1.SetActive(false);
            KnobLevel_2.SetActive(false);
            KnobLevel_3.SetActive(false);
        }
    }
コード例 #2
0
    private void Update()
    {
        // 曲リセット
        if (Input.GetKeyDown("1"))
        {
            InstanceReset();
        }

        // エフェクトのタイミングをチェック
        foreach (var timing in AudioEffectInstanceTiming)
        {
            // まだ生成してない場合
            if (!timing.isInstance && (Music.Just.Bar < timing.Bar))
            {
                // 2Bar前からインスタンス
                if (Music.IsJustChangedAt(timing.Bar - instanceBar))
                {
                    // 選択中を示すノブのインスタンス
                    timing.knobClone = Instantiate(spotKnob, timing.targetKnob.transform.position, timing.targetKnob.transform.rotation, GameObject.Find("Player Root").transform);
                    timing.knobClone.transform.localEulerAngles = new Vector3(timing.knobClone.transform.localEulerAngles.x, timing.knobClone.transform.localEulerAngles.y, 0.0f);
                    timing.knobClone.GetComponent <SpotKnobLevel>().SetEffectType(timing.type);

                    //スケールリセット
                    Vector3 knobScale = spotKnob.transform.localScale;
                    timing.knobClone.transform.localScale = Vector3.zero;

                    // スケールアニメーション
                    iTween.ScaleTo(timing.knobClone, knobScale, 1.0f);

                    timing.isInstance = true;
                }
            }

            // 1Bar前からジャスト直前までカウント
            else if ((timing.Bar - countdownStartBar) == Music.Just.Bar && (Music.Just.Beat < 3))
            {
                // TODO: カウントから、アルファフェードに。
                // テキスト更新。BarがJutの1つ前になったらカウント開始。
                timing.knobClone.GetComponentInChildren <TextMesh>().text = (countdownValue - Music.Just.Beat).ToString();
            }

            // ジャストの処理
            else if (Music.IsJustChangedAt(timing.Bar))
            {
                // エフェクトの適用度を取得
                var value = AudioEffectsManager.GetEffectLevel(timing.type);

                // テキスト更新
                if (timing.lowerLimit < value && value < timing.upperLimit)
                {
                    timing.knobClone.GetComponentInChildren <ParticleSystem>().Play();
                    timing.knobClone.GetComponentInChildren <TextMesh>().color = Color.yellow;
                    timing.knobClone.GetComponentInChildren <TextMesh>().text  = "Success!!";
                }
                else
                {
                    timing.knobClone.GetComponentInChildren <TextMesh>().color = Color.red;
                    timing.knobClone.GetComponentInChildren <TextMesh>().text  = "Failed!";
                }

                Destroy(timing.knobClone.gameObject, 2.0f);
            }
        }
    }