我有一个游戏,玩家拥有10点生命值。每当他失去健康,他的心脏就会下降0.5。为了给玩家一些希望,我决定为敌人增加一颗掉落的心。这些心脏可以填补2点生命值。
问题在于我编写的运行状况脚本与公共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脚本更适合于治疗。但我不知道该如何使其与gameObject冲突
答案 0 :(得分:2)
您可能要修改运行状况对象内部的运行状况值:
if(health.health < health.maxHealth) {
health.health = health.health + healthBonus;
}