为什么不更新职位?

时间:2019-12-30 00:08:13

标签: c# unityscript

所以,我有一个游戏,那里有玩家和敌人。敌人看到玩家(在范围内)时应该跟随玩家。但是只有在其附近产生的敌人(在范围内)跟随他,其余玩家即使玩家处于范围内也不会理会玩家。这是因为位置未更新。如何更新? 代码:

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;
    }

}

}

1 个答案:

答案 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