小屋創作

日誌2020-05-18 20:19

【筆記】Scriptable Object 基本

作者:樂小呈

ScriptableObject

一種純數據的儲存方式,不包括GameObject和Component,沒有MonoBehaviour的負擔
修改數據時和Prefab一樣,所有引用此ScriptableObject的物件都會連動

建立方式 class 繼承: ScriptableObject
public class Data : ScriptableObject

實例方式 使用CreateAssetMenu前墜,在Project中實例化
[CreateAssetMenu(fileName = "New Data", menuName = "Data")]

------------------------------------------------------------------------------

物件池

純資料的儲存方式,能夠重複使用同一種物件顯示資料,如: 卡牌
在牌庫儲存資料,抽出後再使用顯示用的物件秀出資料
卡牌消耗後,把顯示物件的卡牌資料移除,再給下一張牌顯示使用

------------------------------------------------------------------------------

模組化
把資料拆成多個部分,並用組裝的方式組裝物件;
Boss (BasisData、VisualData、SkillA、SkillB)

組裝
BossA (基本數據A、視覺數據A、技能A、技能C)
BossB (基本數據B、視覺數據A、技能B、技能C)
BossC (基本數據C、視覺數據B、技能C、技能D)

------------------------------------------------------------------------------

繼承和覆寫
使用繼承添加額外參數,使用覆寫的方式更改Function
因為繼承自同一個 class(BasisSkill),所以引用時仍然可以調用(覆寫後的)Function

public class BasisSkill : ScriptableObject
{
    public float skillDuration;
    public virtual void Skill() { }
}

public class DamageSkill : BasisSkill
{
    public int skillDamage;
    public override void Skill() { //Damage to target }
}
public class RegionSkill : BasisSkill
{
    public int skillDamage;
    public override void Skill() { //Damage to region }
}

覆寫這部分在搭配上模組化其實就有不少運用空間了
------------------------------------------------------------------------------

保存資料
在Editor中的RunTime更改ScriptableObjectk的數據,即使離開Runtime也會保留
(所以調用的時候要特別注意)
但Build後就不會保留,關閉後會自動恢復到Build時的資料

------------------------------------------------------------------------------

基本使用的概念就這些,這個筆記是我在實際開始用之前寫的
之後再看有沒有什麼可以補充的進階用法,搭配event、coroutine之類的

至於難度嘛...感覺起來還行,運用範圍就是自己的能力範圍
有點基礎之後就可以學了,算是早學早賺的那種

筆記的資料夾
https://home.gamer.com.tw/creationCategory.php?owner=angus945&c=450267

20

7

LINE 分享

相關創作

20240407 遊戲製作進度

使用Unity,在本地端使用 New Input System,讓不同輸入設備分別控制各自的角色

【Unity】自製元祖洛克人 Demo

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】