qq_43532833 2021-02-18 16:59 采纳率: 0%
浏览 60

unity2d敌人跟踪时会和玩家一起跳跃,请问如何禁止敌人的跳跃让他只在x轴上跟踪?

 追踪代码如下。这个问题真的把我难到了,希望有大佬能帮忙解答下,谢谢!

​
void Update()
    {
        //判断玩家与BOSS之间的距离并存储
        float distance = Vector2.Distance(PlayerController.player_Transform.position,transform.position);
        //如果BOSS与玩家之间的距离大于5时,Trace_keep = true
        if (distance>5)
        { 
            Trace_keep = true;
            if (Trace_keep == true)
            {
                //追踪,boss存储了刚体组件
                transform.position = Vector2.MoveTowards(boss.position, PlayerController.player_Transform.position, 0.2f);
            }
        }    
        //如果BOSS与玩家之间的距离小于或等于3时,停止追踪
        else if (distance<=3)
        {
            Trace_keep = false;
        }
    }

​
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-24 11:49
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要阻止敌人仅在水平方向(X轴)上跟随玩家,您可以使用Transform.Translate()方法将敌人移动到一个特定位置,并确保其保持与玩家相同的速度。

    首先,在Update()函数中添加以下逻辑:

    // 如果玩家与Boss的距离大于5
    if(Vector2.Distance(PlayerController.player_Transform.position,transform.position) > 5)
    {
        // 将Boss的当前位置设置为Player的位置
        transform.position = PlayerController.player_Transform.position;
    
        // 让Boss以相同的速度跟随玩家
        transform.Translate(PlayerController.player_Transform.right * Time.deltaTime, Space.World);
    }
    

    这将在Boss沿X轴向右移动的同时,使其与玩家保持相同的X轴速度。这样,即使Boss也遵循Y轴上的运动规则,它也将始终位于玩家的左侧。

    评论

报告相同问题?