//示例 1
if(hitInfo.collider.gameObject.layer == enemyMask && !lookedAtEnemy)
{
LookingAtEnemy?.Invoke();
lookedAtEnemy = true;
}
if(hitInfo.collider.gameObject.layer != enemyMask && lookedAtEnemy)
{
NotLooking?.Invoke();
lookedAtEnemy = false;
}
//----- 或者 ------
//示例 2
if(hitInfo.collider.gameObject.layer == enemyMask)
{
LookingAtEnemy?.Invoke();
} else
{
NotLooking?.Invoke();
}
无论是出于性能考虑还是只是为了方便起见。LookingAtEnemy和NotLooking激活和停用UI元素,如敌人生命条、轮廓等。示例2是最早我写的,因为它更符合我的直觉,但接着我想了想,是否我真的想重复调用?我只是想知道是否只调用一次状态变化时调用 invoke 是否更有效。性能是否会更好?我不确定。另外,我还是个初学者,所以如果这是一個傻问题,请原谅我。
噢,还有,如果检测玩家是否在看敌人的方法不优化,请告诉我更好的方法。谢谢:>
编辑:是的,我知道如果玩家没有看任何东西,状态就不会改变并被卡住。我只是想先把这个出来。
评论 (0)