■ 前導:Unity的新Input System

前情提要一下,MINIS插件在性質上是基於Unity的新Input System,因此可以有兩種大方式來取得MIDI裝置的輸入。

<aside> <img src="/icons/warning_yellow.svg" alt="/icons/warning_yellow.svg" width="40px" />

注意!Input System不能新舊同在

只要使用新的Input System,舊的就會變得不能用,因此舊專案要小心安裝,往後如果有找到的話會再更新如何同時維持新舊。

</aside>

  1. 使用Input Actions Map,可以在一個介面內有效的管控各方面輸入。

    <aside> <img src="/icons/warning_yellow.svg" alt="/icons/warning_yellow.svg" width="40px" />

    但程式(C#)較難取得輸入(更細來說無法用if文去知道目前是什麼輸入),若想達到每(某)一個按鍵有特定的功能,則程式較難用這個方式抓到按鍵。

    因此在此系列我們不會示範此方法。

    ※ March 17, 2025 更新驗證:新的InputSystem 可以與舊的同在,須經由設定,在此不多做說明。

    </aside>

    スクリーンショット 2024-11-26 101710.png

    スクリーンショット 2024-11-26 101722.png

  2. 在C#內宣告Input Action,可以針對功能而去宣告輸入。

    <aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" />

    基本上會使用此方法來撰寫功能。

    基本上與上述的第一種方式有同樣的效果和類似的介面,因此會使用此方式為主。

    </aside>

    以下為範例程式碼

    using UnityEngine.InputSystem;
    
    public class MINIS_Example : MonoBehaviour
    {
    	public InputAction Pad1 = null;
    }
    

    大致可以做到下面效果

    image.png


■ 正文:插件使用基底

<aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" />

後續說明的例子中,無論要用在哪邊,基本上都會需要此章節「插件使用基底」會介紹的內容。

</aside>

以下以第二種方式說明基底的建構步驟。

■ 建立空物件

在Hierarchy(樹狀圖、階層視窗)右鍵 → Create Empty建立空物件 → 命名(以易懂為原則,在此的取名與腳本名稱相同)

image.png

■ 建立(新)腳本

建立一個新的C#腳本,在此建立了一個名為MIDI_Process的C#腳本。

<aside> <img src="/icons/warning_yellow.svg" alt="/icons/warning_yellow.svg" width="40px" />

注意!命名要小心!

Unity中,C#腳本的檔名會直接當作腳本的類別(class)名稱,換句話說,腳本的類別(class)名稱與C#腳本的檔名必須相同。

即:

image.png

image.png

此兩地方的名稱要相同,否則Unity抓取不到腳本

</aside>

並且套用在剛剛的空物件上。