簡體   English   中英

如何從統一檢查器將值傳遞給構造函數

[英]How to pass value to constructor from unity inspector

我創建了一個基本的抽象Character類(它擴展了MonoBehaviour ),其中包含一些數據,其中之一是maxHealth 我不希望更改maxHealth ,因此我將其設為readonly並使用屬性來更改它( public float MaxHealth { get; } )。

我希望不同的角色具有不同的最大 hp 值,所以我嘗試使用構造函數並在那里傳遞最大健康值,但我無法從統一檢查器將值傳遞給構造函數。

有誰知道如何從 Unity 檢查器或任何其他方式將值傳遞給構造函數以實現我想要做的事情(為不同字符制作只讀 hp 值並能夠僅從統一檢查器編輯它們)。

MonoBehaviour 實例是使用AddComponent創建的,而不是使用new()創建的。 因為您沒有使用new關鍵字創建實例,所以沒有可訪問的構造函數。

如果您想要一個可以從檢查器設置但不是公共的變量,請在私有/受保護字段上使用[SerializeField]

[SerializeField]
private float maxHealth;
public float MaxHealth => maxHealth; // Allow others to use this value, but not change it

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM