首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity NavMesh路径反向

Unity NavMesh路径反向
EN

Stack Overflow用户
提问于 2020-06-15 21:06:49
回答 1查看 423关注 0票数 0

我需要反转这个脚本,这个脚本用来制作一个游戏对象,以便在一些转换之间进行巡逻。我需要对象从点(1,2,3,4,5)开始依次导航,当它到达数组的末尾时,它会颠倒数组本身的顺序,这样它就会向后导航(5,4,3,2 ,1)。

代码语言:javascript
复制
using UnityEngine;
using UnityEngine.AI;
public class Patrol : MonoBehaviour
{

    public Transform[] points;
    private int destPoint = 0;
    private NavMeshAgent agent;


    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        agent.autoBraking = false;
        GotoNextPoint();
    }


    void GotoNextPoint()
    {
        if (points.Length == 0)
            return;

        agent.destination = points[destPoint].position;
        destPoint = (destPoint + 1) % points.Length;
    }


    void Update()
    {
        if (!agent.pathPending && agent.remainingDistance < 0.5f)
            GotoNextPoint();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 21:28:19

您应该在到达最后一点时使用Array.Reverse,以便在您的代码上轻松实现。

文档here

将此代码添加到GoToNextPoint的末尾。

代码语言:javascript
复制
destPoint++;
if (destPoint >= points.Length)
{
    Array.Reverse(points);
    destPoint = 0;
}

然后移除。

代码语言:javascript
复制
destPoint = (destPoint + 1) % points.Length;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62388857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档