为玩家恢复健康

Adding health back to the player

我有一款游戏,玩家有 10 点生命值。每次他失去健康,他的心脏就会下降 0.5。为了给玩家一些希望,我决定为敌人添加可掉落的心。这些心可以填充 2 生命值。

问题是我制作的健康脚本是 public Int 健康。这不允许“<、>、+、-”而且我不知道如何适应这个。

我的健康脚本

    [Header ("Max/Starting Health")]
    public int maxHealth;
    [Header ("Current Health")]
    public int health;

    void Start () {
        health = maxHealth;
    }

    public bool TakeHeal (int amount) {
        if (dead || health == maxHealth)
            return false;

        health = Mathf.Min (maxHealth, health + amount);

        if (OnTakeHealEvent != null)
            OnTakeHealEvent.Invoke();


        return true;
    }

HealthPickup 脚本


using UnityEngine;

public class HealthBoost : MonoBehaviour
{
    Health health;

    public float healthBonus = 2;

    void Awake()
    {
      health = FindObjectOfType<Health>();
    }

    void OnTriggerEnter2D(Collider2D col)
    {
      if(health < health.maxHealth)
      {
        Destroy(gameObject);
        health = health + healthBonus;
      }
    }
}

我正在考虑将 healthpickup 脚本更多地用于 takeheal。但我不知道如何使它与游戏对象发生碰撞

您可能想要修改健康对象中的健康值:

if(health.health < health.maxHealth) {
    health.health = health.health + healthBonus;
}