因此,我目前正在開發一款涉及 3 種建筑型別的策略游戲:“生產”、“存盤”和“精煉”。任何建筑都可以屬于這些型別中的一種或多種,??因此存盤建筑也可以是精煉建筑,并且應該繼承這兩種型別的功能。
例子:
public class Stronghold : Building, IStorage, IRefining, IProduction
{
public RefiningOption[] RefiningOptions { get; set; }
}
public interface IRefining
{
public RefiningOption[] RefiningOptions { get; set; }
}
我開始使用介面來實作這個,但我遇到了 Unity 不允許您序列化屬性并且介面不能包含欄位的問題。
有沒有辦法解決這個問題,可以讓我以一種簡潔的方式從多種不同型別繼承,還是我處理這一切都錯了?我可以想到一個解決方案,它涉及為每種建筑型別的功能使用單獨的組件,但在我實施之前,我想知道“正確”的解決方案是什么。
提前致謝。我正在嘗試擴展我的工具集,因此歡迎提供任何反饋。
uj5u.com熱心網友回復:
就像上面的答案一樣,但以更“緊湊”的方式
[field: SerializeField] public RefiningOption[] RefiningOptions { get; set; }
這是一個自動屬性,它生成一個支持欄位,您可以通過鍵入 [field: "Your_Attribute_Here"] 直接訪問該欄位,這與具有公開它的公共屬性的 [Serialized] 私有欄位相同。
uj5u.com熱心網友回復:
像這樣 ?私下創建一個欄位。并且這個私有欄位可以被序列化
private RefiningOption[] _refiningOptions;
public RefiningOption[] RefiningOptions
{
get { return _refiningOptions; }
set { _refiningOptions = value; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462713.html
