跳到主要內容

[Unity]利用 Scriptable Object 製作彈性UI按鈕

什麼是Scriptable Object?

是一種存放或整理資料的方式,也是物件模型、範本,你可以把它看成在網頁內的CSS,設定完成資料範本後,我們可以拿來客製化各種資訊,例如按鈕顏色、圖示。
本例中將使用來作為修改UI皮膚的模板,例如我要修改按鈕的顏色,我只需要修改Scriptable Object Data內的顏色,他就會自動幫我套用所有相關的按鈕,或是設定預設模型,未來如果需要創建許多按鈕,就能直接拿來用。

為何要用?

如果遊戲內物件越來越多,會導致於越來越無法管控,之後想要修改大量物件,會變得很麻煩,如果採用此方式,可以很簡單的做替換的動作。
  • 建造一個可客製化UI元素
  • 建造一個使用Scriptable Object建造模板
  • 配置不同的風格到不同的UI元素

建立模板:

首先需要建立四種腳本。
  • FlexibleUIData Scriptable Object 
    • 存放基本資料,例如顏色、按鈕圖示

  • FlexibleUI Base Class 
    • 擴充和控制UI元素,可看成S.O.與物件的橋樑

  • FlexibleUIButton Class 
    •  繼承 Base Class 的資料
    • 該腳本為每個按鈕的Component
    • 提供選單選擇按鈕類型

  • FlexibleUIInstance Class (一個放置Prefabs的資料表,處理生成新的按鈕) 

FlexibleUIData Scriptable Object


FlexibleUI Base Class

FlexibleUIButton Class

FlexibleUIInstance Class



參考資料:


留言