所以,我有一个游戏,那里有玩家和敌人。敌人看到玩家(在范围内)时应该跟随玩家。但是只有在其附近产生的敌人(在范围内)跟随他,其余玩家即使玩家处于范围内也不会理会玩家。这是因为位置未更新。如何更新? 代码:
void FixedUpdate()
{
if (Vector2.Distance(player.position, transform.position) <= 40f)
{
Vector2 dir = player.position - transform.position;
transform.Translate(dir.normalized * enemyspeed * Time.fixedDeltaTime, Space.World);
if (Vector2.Distance(transform.position, player.position) <= 0.4f)
{
Destroy(gameObject);
}
}
else
{
return;
}
}
}
答案 0 :(得分:1)
这应该可以解决问题
通过在if子句中执行这两行,您只能将其应用于靠近玩家的敌人:
Vector2 dir = player.position - transform.position;
transform.Translate(dir.normalized * enemyspeed * Time.fixedDeltaTime, Space.World);
所以,只要将它们移到外面,就可以了
void FixedUpdate()
{
Vector2 dir = player.position - transform.position;
transform.Translate(dir.normalized * enemyspeed * Time.fixedDeltaTime, Space.World);
if (Vector2.Distance(transform.position, player.position) <= 0.4f)
{
Destroy(gameObject);
}
}
更新:
关于玩家位置,您可能需要看看以下内容:
https://answers.unity.com/questions/451000/blocks-wont-render-in-realtime.html