有一个父实体类,其中包含 Health 和 Damage 字段,以及 GetDamage 和 Die 方法。有一个子类 Hero 继承了这些参数。
现在重点是:有一个物体可以在碰撞时增加玩家的生命值。如何从该对象访问继承的 Health 字段? (在父类中该字段被标记为公共)
家长班级:
public class Entity : MonoBehaviour
{
[SerializeField] public int Health;
[SerializeField] public int Damage;
public virtual void GetDamage(int Damage)
{
Health = Health-Damage;
Debug.Log($"{gameObject.name}\nЗдоровье: {Health}");
if (Health < 0)
{
Health = 0;
if (Health < 1)
Die();
}
}
public virtual void Die()
{
Destroy(this.gameObject);
}
}
孩子的班级太大了。如果您需要其中的代码片段,我稍后会发布。
问题的本质还不清楚;
Hero它肯定已经包含了父类所有可以访问的字段。创建一种Heal()可以治愈玩家的方法。为什么该字段Damage不清楚。而在继承人中
这样你就完全隔离了类中的健康管理逻辑
Entity。好吧,在与急救箱发生碰撞时