如何在Update()中编写一次调用但检查每一帧的代码

时间:2018-10-12 18:49:45

标签: c# unity3d

void Update()
{
    if (playerPointInt == 1)
    {
        pp1();
    }
}

我的代码正在执行==>如果playerPointInt == 1每帧调用pp1。

如果playerPointInt == 1一次调用pp1,我想做==>。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

您可以将代码放入初始化对象时调用的Awake()函数或启用对象时调用的Start()函数。这两个函数最多调用一次。

答案 1 :(得分:0)

这可能不是在Unity中执行此操作的最佳方法,但一个简单的解决方法是在调用true时再将一个布尔字段设置为pp1,然后再不调用pp1一旦该字段为true

bool pp1_called = false;
void Update()
{
    if (playerPointInt == 1 && !pp1_called)
    {
        pp1();
        pp1_called = true;
    }
}