试图从变量中获取特定数字

时间:2015-07-16 08:01:50

标签: c# unity3d

所以我试着编写这个代码,让角色的被动技能在被击中时被打断。我想这样做的方法是让程序从健康变量中获取字符健康值,并在每一帧检查它是否被删除。

然而,经过研究,我似乎无法找到实际做到这一点的方法。从变量中获取一个数字,而不受新变量的影响。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在每个帧期间使用另一个变量来存储健康变量的最后已知值,然后比较变量以查看它们是否具有不同的值。例如:

int health = 100;
int lastFrameHealth;

void Start ()
{
    lastFrameHealth = health;
}

void Update ()
{
    if (health < lastFrameHealth)
    {
        StartCoroutine("InterruptPassiveSkill", 5f);
    }

    lastFramehealth = health;
}


void OnCollisionEnter(Collision collision)
{
    health -= 10;
}

IEnumerator InterruptPassiveSkill (float seconds)
{
    // insert code to deactivate passive skill here:

    yield return new WaitForSeconds(seconds); // delay for number of seconds

    // insert code to reactivate passive skill here:

}

此示例中使用的协程是一种添加延迟的简单方法。协同程序还可以更快地创建简单的状态机。协同程序是Unity功能,非C#原生。