繁体   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