我在 UnityEditor 中發現了一個關于 Scriptable 物件的有趣“問題”。下面是一個簡單的例子:
我有一個可撰寫腳本的類 ScriptableExpressionBulder,它包含一些串列和一個浮點欄位。然后我有另一個類 ScriptableExpressionCreator ,它包含前面提到的可撰寫腳本物件的串列。代碼如下所示:
public class ScriptableExpressionBuilder : ScriptableObject
{
public List<MultipleExpressionBuilder> multipleExpressionBuilder;
public float delay;
}
public class ScriptableExpressionCreator : ScriptableObject {
public List<ScriptableExpressionBuilder> List;
}
當創建 ScriptableExpressionBuilder 時,來自 (MultipleExpressionBuilder) 的欄位很好地出現,但它也在最后添加了第二個欄位“延遲”(這對這一點來說是完美的)。
現在是有趣的部分:
第二個類 ScriptableExpressionCreator 包含一個以前的腳本串列,但它不會序列化當前腳本中的“延遲”欄位。唯一被序列化的欄位是 Scriptable 類。
有沒有辦法在另一個 Scriptable 中序列化來自 ScriptableExpressionBuilder 的欄位,其中包含這些腳本的串列,所以我基本上可以設定呼叫此運算式的延遲。但是,我可以在原始腳本檢查器中填充該欄位,但由于每個延遲都不同,因此無法重復使用。
uj5u.com熱心網友回復:
您洗掉了問題,但我投票重新打開它,因為我已經開始撰寫解決方案并在您洗掉它時完成,我認為這現在可以滿足您的需求,并為您在需要時進一步擴展它提供了一個良好的起點; )
然而,這不是真正的問題,不可能是內置的。
對于ScriptableObject(以及從 繼承的任何其他內容UnityEngine.Object),Inspector 默認繪制一個物件欄位。如果你想畫別的東西,你需要一個
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324774.html
上一篇:使用C#在Unity中物件太快
