Beispiel #1
0
    // メンバ関数の定義 =====================================================
    #region 初期化処理
    //-----------------------------------------------------------------
    //! @summary   初期化処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    private void Start()
    {
        // コンポーネントの取得
        m_transform = GetComponent <RectTransform>();
        m_image     = GetComponent <Image>();

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

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

        // 音階の設定
        // 座標を設定された音階の位置に移動させる
        m_transform.position = new Vector3(m_keyDictionary[m_noteData.m_scale].position.x, m_transform.position.y, m_transform.position.z);

        float width = m_keyDictionary[m_noteData.m_scale].sizeDelta.x
                      * m_keyDictionary[m_noteData.m_scale].parent.GetComponent <RectTransform>().localScale.x;

        m_transform.sizeDelta = new Vector2(width, m_transform.sizeDelta.y);

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

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

        // 開始時間と長さの初期化
        PiarhythmDatas.PositionData positionData = m_musicController.ConvertToPositionData(m_noteData.m_startBeat, m_noteData.m_noteLength);
        Vector2 offsetMin = m_transform.offsetMin;

        offsetMin.y           = positionData.m_position;
        m_transform.offsetMin = offsetMin;
        Vector2 offsetMax = m_transform.offsetMax;

        offsetMax.y           = offsetMin.y + positionData.m_lenght;
        m_transform.offsetMax = offsetMax;

        PiarhythmDatas.NoteData noteData = m_noteData.m_nextNoteData;
        while (noteData != null)
        {
            positionData          = m_musicController.ConvertToPositionData(noteData.m_startBeat, noteData.m_noteLength);
            offsetMax             = m_transform.offsetMax;
            offsetMax.y          += positionData.m_lenght;
            m_transform.offsetMax = offsetMax;

            noteData = noteData.m_nextNoteData;
        }
    }