我有一个ShootingEnemy对象,其中包括img个对象(它上面有一个SpriteRenders).射击敌人可以通过用玩家的子弹射击而受到伤害.我希望一旦它的HP水平下降,它就会变得越来越红.这意味着当HP为5时,物体有其标准的精灵 colored颜色 ,当HP为4时,物体的 colored颜色 是有点红的,当它的1 colored颜色 几乎是完全红色的时候 我try 了这个代码(在ShootingEnemy个对象上):
void Awake() {
bullet = Resources.Load<Bullet>("Bullet");
rb = FindObjectOfType<Hero>().GetComponent<Rigidbody2D>();
sprite = GetComponentInChildren<SpriteRenderer>();
}
void Update() {
sprite.color = new Color(255, 255f/5*hp, 255f/5*hp);
}
甚至还try 在img对象上添加脚本:
public class ShootingEnemyChild : MonoBehaviour
{
private int hp;
private SpriteRenderer sprite;
private ShootingEnemy parent;
void Start()
{
sprite = GetComponent<SpriteRenderer>();
parent = transform.parent.gameObject.GetComponent<ShootingEnemy>();
}
// Update is called once per frame
void Update()
{
hp = parent.hp;
sprite.color = new Color(255, (255/5)*hp, (255/5)*hp);
}
}
对象的动画似乎不允许它更改其 colored颜色 (可能,还没有实际判断).当我在开始游戏前try 自己改变 colored颜色 时,它仍然改变到了它的自然状态,同样的事情发生在我开始游戏并在暂停时改变 colored颜色 的时候.
这个 idea 有可能实现吗?如果是,我如何将其应用到我的游戏中?