Beispiel #1
0
    //-----------------------------------------------------------------
    //! @summary   色の選択がされた時の処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void OnValueChangedColorDropdown()
    {
        // コンポーネントの取得
        Dropdown colorDropdown = m_colorDropdown.GetComponent <Dropdown>();

        // 入力値の応じて色を設定する
        switch (colorDropdown.value)
        {
        case 0:                     // 赤
        {
            PiarhythmDatas.Color color = new PiarhythmDatas.Color(Color.magenta.r, Color.magenta.g, Color.magenta.b, Color.magenta.a);
            m_notesManager.SetSelectNotesColor(color);
            break;
        }

        case 1:                     // 緑
        {
            PiarhythmDatas.Color color = new PiarhythmDatas.Color(Color.green.r, Color.green.g, Color.green.b, Color.green.a);
            m_notesManager.SetSelectNotesColor(color);
            break;
        }

        case 2:                     // 青
        {
            PiarhythmDatas.Color color = new PiarhythmDatas.Color(Color.cyan.r, Color.cyan.g, Color.cyan.b, Color.cyan.a);
            m_notesManager.SetSelectNotesColor(color);
            break;
        }

        default:
            break;
        }
    }
Beispiel #2
0
    //-----------------------------------------------------------------
    //! @summary   ノーツの色を設定する
    //!
    //! @parameter [color] 設定する色
    //-----------------------------------------------------------------
    public void SetNotesColor(PiarhythmDatas.Color color)
    {
        // 情報を更新する
        m_notesData.m_color = color;

        // 色を反映させる
        // #の色を変化させる
        m_glowImage.color = (m_notesData.m_scale.Contains("#"))
                        ? new UnityEngine.Color(m_notesData.m_color.r * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, m_notesData.m_color.g * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, m_notesData.m_color.b * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, 1.0f)
                        : new UnityEngine.Color(m_notesData.m_color.r, m_notesData.m_color.g, m_notesData.m_color.b, 1.0f);

        // 光彩の色を更新する
        m_glowImage.glowColor = new UnityEngine.Color(color.r, color.g, color.b, 1.0f);
    }
Beispiel #3
0
    //-----------------------------------------------------------------
    //! @summary   ノーツの色を設定する
    //!
    //! @parameter [color] 設定する色
    //-----------------------------------------------------------------
    public void SetColor(PiarhythmDatas.Color color)
    {
        // 情報を更新する
        foreach (PiarhythmDatas.NoteData noteData in m_noteList)
        {
            noteData.m_color = color;
        }

        // #の色を変化させる
        m_glowImage.color = (m_noteList[0].m_scale.Contains("#"))
                        ? new UnityEngine.Color(m_noteList[0].m_color.r * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, m_noteList[0].m_color.g * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, m_noteList[0].m_color.b * PiarhythmDatas.SHARP_COLOR_PERCENTAGE, 1.0f)
                        : new UnityEngine.Color(m_noteList[0].m_color.r, m_noteList[0].m_color.g, m_noteList[0].m_color.b, 1.0f);

        // 光彩の色を更新する
        m_glowImage.glowColor = new UnityEngine.Color(color.r, color.g, color.b, 1.0f);
    }
Beispiel #4
0
    // メンバ関数の定義 =====================================================
    #region 初期化処理
    //-----------------------------------------------------------------
    //! @summary   初期化処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void Initialize()
    {
        // コンポーネントの取得
        m_transform             = GetComponent <RectTransform>();
        m_glowImage             = GetComponent <GlowImage>();
        m_musicalScoreTransform = m_transform.parent.GetComponent <RectTransform>();
        m_audioSource           = GetComponent <AudioSource>();

        // データの初期化
        m_notesData = ScriptableObject.CreateInstance <PiarhythmDatas.NoteData>();

        // 色の初期化
        PiarhythmDatas.Color colorData = new PiarhythmDatas.Color();
        colorData.r         = Color.green.r;
        colorData.g         = Color.green.g;
        colorData.b         = Color.green.b;
        colorData.a         = Color.green.a;
        m_notesData.m_color = colorData;
        m_glowImage.color   = m_glowImage.glowColor = Color.green;

        // スケールの初期化
        m_transform.localScale = Vector3.one;

        // 音階の設定
        SetNotesScale("C4");

        // 手前に持ってくる
        Vector3 position = m_transform.localPosition;

        position.z = 0.0f;
        m_transform.localPosition = position;

        // 開始時間と長さの初期化
        PiarhythmDatas.PositionData positionData = new PiarhythmDatas.PositionData();
        positionData.m_position = m_transform.offsetMin.y;
        positionData.m_lenght   = m_transform.sizeDelta.y;
        PiarhythmDatas.NoteData notesData = m_optionSheetController.ConvertToNotesData(positionData);
        m_notesData.m_startBeat  = notesData.m_startBeat;
        m_notesData.m_noteLength = 2;
        positionData             = m_optionSheetController.ConvertToPositionData(m_notesData.m_startBeat, m_notesData.m_noteLength);
        m_transform.offsetMin    = new Vector2(m_transform.offsetMin.x, positionData.m_position);
        m_transform.offsetMax    = new Vector2(m_transform.offsetMax.x, m_transform.offsetMin.y + positionData.m_lenght);

        // 光彩を切る
        m_glowImage.glowSize = 0.0f;
    }
Beispiel #5
0
    //-----------------------------------------------------------------
    //! @summary   選択されているノーツに色を設定する
    //!
    //! @parameter [color] 設定する色
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void SetSelectNotesColor(PiarhythmDatas.Color color)
    {
        // 1つのノーツが選択されていなければ、処理を終了する
        if (m_selectNotes.Count != 1)
        {
            return;
        }

        // ノーツへ設定する
        if (m_selectNotes[0].GetComponent <EditNotesController>() != null)
        {
            // 通常のノーツの設定
            m_selectNotes[0].GetComponent <EditNotesController>().SetNotesColor(color);
        }
        else
        {
            // 連結ノーツの設定
            m_selectNotes[0].GetComponent <ConnectNoteController>().SetColor(color);
        }
    }
Beispiel #6
0
    //-----------------------------------------------------------------
    //! @summary   連結可能か調べる
    //!
    //! @parameter [void] なし
    //!
    //! @return    true :連結可能
    //! @return    false:連結不可
    //-----------------------------------------------------------------
    private bool CheckConnectNote()
    {
        // 二つ以上ノーツが選択されていない
        if (m_selectNotes.Count <= 1)
        {
            return(false);
        }

        PiarhythmDatas.NoteData notesData = m_selectNotes[0].GetComponent <EditNotesController>().GetNotesData();
        string scale = notesData.m_scale;

        PiarhythmDatas.Color color = notesData.m_color;
        float nextStart            = notesData.m_startBeat;

        switch (notesData.m_noteLength)
        {
        case 0:
            nextStart += PiarhythmDatas.NoteTime.WHOLE_NOTE_SEMIBREVE;
            break;

        case 1:
            nextStart += PiarhythmDatas.NoteTime.HALF_NOTE_MININ;
            break;

        case 2:
            nextStart += PiarhythmDatas.NoteTime.QUARTER_NOTE_CROCHET;
            break;

        case 3:
            nextStart += PiarhythmDatas.NoteTime.EIGHTH_NOTE_QUAVER;
            break;

        case 4:
            nextStart += PiarhythmDatas.NoteTime.SIXTEENTH_NOTE_SEMIQUAVER;
            break;

        case 5:
            nextStart += PiarhythmDatas.NoteTime.WHOLE_DOTTED_NOTE_SEMIBREVE;
            break;

        case 6:
            nextStart += PiarhythmDatas.NoteTime.HALF_DOTTED_NOTE_MININ;
            break;

        case 7:
            nextStart += PiarhythmDatas.NoteTime.QUARTER_DOTTED_NOTE_CROCHET;
            break;

        case 8:
            nextStart += PiarhythmDatas.NoteTime.EIGHTH_DOTTED_NOTE_QUAVER;
            break;
        }

        for (int i = 1; i < m_selectNotes.Count; ++i)
        {
            // データを取得する
            notesData = m_selectNotes[i].GetComponent <EditNotesController>().GetNotesData();

            // 音階が一致するか調べる
            if (notesData.m_scale != scale)
            {
                return(false);
            }

            // 次の開始位置を調べる
            if (!Mathf.Approximately(notesData.m_startBeat, nextStart))
            {
                return(false);
            }

            // 色を調べる
            if ((!Mathf.Approximately(notesData.m_color.r, color.r)) &&
                (!Mathf.Approximately(notesData.m_color.g, color.g)) &&
                (!Mathf.Approximately(notesData.m_color.b, color.b)))
            {
                return(false);
            }

            // データを更新する
            switch (notesData.m_noteLength)
            {
            case 0:
                nextStart += PiarhythmDatas.NoteTime.WHOLE_NOTE_SEMIBREVE;
                break;

            case 1:
                nextStart += PiarhythmDatas.NoteTime.HALF_NOTE_MININ;
                break;

            case 2:
                nextStart += PiarhythmDatas.NoteTime.QUARTER_NOTE_CROCHET;
                break;

            case 3:
                nextStart += PiarhythmDatas.NoteTime.EIGHTH_NOTE_QUAVER;
                break;

            case 4:
                nextStart += PiarhythmDatas.NoteTime.SIXTEENTH_NOTE_SEMIQUAVER;
                break;

            case 5:
                nextStart += PiarhythmDatas.NoteTime.WHOLE_DOTTED_NOTE_SEMIBREVE;
                break;

            case 6:
                nextStart += PiarhythmDatas.NoteTime.HALF_DOTTED_NOTE_MININ;
                break;

            case 7:
                nextStart += PiarhythmDatas.NoteTime.QUARTER_DOTTED_NOTE_CROCHET;
                break;

            case 8:
                nextStart += PiarhythmDatas.NoteTime.EIGHTH_DOTTED_NOTE_QUAVER;
                break;
            }
        }

        return(true);
    }