为什么不更新位置?

问题描述 投票:0回答:1

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

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

}

}

c# unityscript
1个回答
0
投票

这应该可以解决问题

通过在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

© www.soinside.com 2019 - 2024. All rights reserved.