在运行时以编程方式更改Unity Sprite

时间:2015-08-09 15:35:47

标签: c# unity3d

我是Unity的新手,所以这看起来像是一个非常基本的问题,但我已经有一段时间了,谷歌和Unity Docs并没有多大帮助:

我想更改此处显示的Health sprite:

enter image description here

当屏幕底部的LoseCollider被触发时。精灵将变为2个生命值和1个健康精灵:

enter image description here

在代码中我想:

if (health == 3) {
 // Switch to 3 hearts sprite.
 }
 else if (health == 2) {
 // Switch to 2 hearts sprite.
 }
 else if (health == 1) {
 // Switch to 1 heart sprite.
 }

根据我目前的代码:

enter image description here

enter image description here

如何更改我的精灵?

enter image description here

2 个答案:

答案 0 :(得分:0)

嗯,我想我看到了这个问题。 请改用此代码:

    HealthManager hManager;
void OnTriggerEnter2D (Collider2D trigger)
{
    if (hManager.totalHealth >= 3)
    {
        hManager.LoadHealthSprites();
        hManager.totalHealth--;
    }
    else
    {
        levelManager = GameObject.FindObjectOfType<LevelManager>();
        levelManager.LoadLevel("Lose");
    }
}

void Start()
{
    hManager = hpManager.GetComponent<HealthManager>();
}

答案 1 :(得分:0)

if(HealthManager.totalHealth>=3) 
{

}

我认为存在逻辑错误。如果totalHealth小于3,它将永远不会调用LoadHealthSprite函数。将此部分更改为:

if(HealthManager.totalHealth>0)
{

}