当前位置: 首页 > article >正文

unity航点寻径

一、游戏框架:设置了六个路标,角色会在这六个路标之间一次移动,当移动到第六个路标后又会返回第一个路标,继续依次移动。

      

road: 道路,由五个立方体组成

sign:路标,由六个胶囊组成

enemy:寻路的角色

二、游戏实现:

1、创建一个平面,赋予图案使界面美观

2、创建一个空物体命名为road,创建五个立方体用来摆放成路的形状,要注意把立方体的y轴调小一点

3、创建一个空物体命名为sign,创建六个胶囊用来作为路标,并以此给他们的tag改为sign0-sign5

4、创建一个球命名为enemy,赋予颜色,添加组件Nav Mesh Agent,编写代码赋予enemy

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class Enemyfindway : MonoBehaviour
{
    NavMeshAgent pathfinder;
    Transform target;
    private int num;
    private string playername;
    void Start()
    {
        num = 0;
        playername = "sign" + num;
        pathfinder = GetComponent<NavMeshAgent>();
        target = GameObject.FindGameObjectWithTag(playername).transform;
    }
    void FixedUpdate()
    {
        move();
    }

    private void move()
    {
        Debug.Log("num: " + num);
        Debug.Log("sign:" + playername);
        target = GameObject.FindGameObjectWithTag(playername).transform;
        pathfinder.SetDestination(target.position);
        num = (num + 1) % 6;
        playername = "sign" + num;
    }
}

5、网格烘焙,设置plane和road中的五个立方体为可行走区域Windows->AI->navigation,选中plane进行设置,具体可烘焙方法可参照下面这个链接敌人追逐玩家、路径烘焙

 6、设置FixedUpdate的间隔时间,默认的时间使0.02秒,不足以让enemy从一个路标移动到另一个路标,所以需要把间隔时间加大,edit->project settings,找到Time,把Fixed Timestep改为5

7、点击运行后可以看到小球从第一个路标移动一次移动到第五个路标然后又回到第一个路标一次循环。


http://www.kler.cn/a/17805.html

相关文章:

  • 马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察
  • 比ChatGPT更酷的AI工具
  • UDP协议和TCP协议之间有什么具体区别?
  • Linux 函数在多个地方被同时调用时,函数中的变量如何管理,确保互不影响
  • Jmeter性能测试 -3数据驱动实战
  • 【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
  • js中对象和数组的都是如何解构的
  • 二挡起步——pythonweb开发Django框架,前端原生+Django后端框架+python网络抓包(代替数据库数据)(附带小案例)
  • Java学习之Swing图形界面
  • 关于面试官问Qt Connect的链接方式和类型问题
  • jQuery -- 常用API(下)
  • 《Netty》从零开始学netty源码(五十二)之PoolThreadCache
  • SpringBoot整合FreeMarker
  • 使用zabbix监控Windows指定服务| zabbix Windows service filter
  • 【网络】4万字细品TCP协议
  • yolov8 OpenCV DNN 部署 推理报错
  • 科大版中国版ChatGPT来啦!抢先体验
  • 还能这么玩?清华给 ChatGPT 做逆向,发现了 ChatGPT 的进化轨迹!
  • 记一次产线打印json导致的redis连接超时
  • 【算法】Check If Word Is Valid After Substitutions 检查替换后的词是否有效
  • MySQL高频面试题
  • 多通道振弦传感器无线采集仪通过短信和FTP文件修改参数
  • 设计原则之【接口隔离原则】
  • 22.Java多线程
  • SpreadJS 16.1 EN + SpreadJS 16.1 CN Crack
  • 【Linux】linux进程间通信netlink socket(用户与内核通信)