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

Unity 塔防自用可视化路点寻路编辑器

在这里插入图片描述

插件源码可见, 你能学到

  • 可视化场景编辑器
  • 贝塞尔路径设计
  • Unity Editor扩展
  • 更多扩展,可地形生成,地图笔刷

使用方法

设置地面

在这里插入图片描述

新建路径

寻路编辑器界面位置: Tools/Pathfinding Editor

按住Shift键 鼠标左键点击 新建路点, 按Delete键删除节点
在这里插入图片描述

控制点编辑

在这里插入图片描述

移动组件

在这里插入图片描述

数据以序列化的形式存储

在这里插入图片描述

高性能, 无额外的场景节点,不生成空节点

using UnityEngine;
using System;[System.Serializable]
public class Waypoint
{[Header( "基础设置" )][SerializeField] public Vector3 position;[SerializeField] public float radius = 1f;[SerializeField] public Color color = Color.white;[SerializeField] public string name;[Header( "贝塞尔控制点" )][SerializeField] public Vector3 forwardControlPoint;  // 前向控制点[SerializeField] public Vector3 backwardControlPoint; // 后向控制点[SerializeField] public bool showControlPoints = true;[SerializeField] public bool autoCalculateControlPoints = true;[SerializeField] public float controlPointDistance = 2f; // 控制点距离public Waypoint( Vector3 pos, string waypointName = "" ){position = pos;name = string.IsNullOrEmpty( waypointName ) ? "Waypoint" : waypointName;// 初始化控制点forwardControlPoint = pos + Vector3.forward * controlPointDistance;backwardControlPoint = pos + Vector3.back * controlPointDistance;}// 获取世界坐标的前向控制点public Vector3 GetWorldForwardControlPoint( ){return position + forwardControlPoint;}// 获取世界坐标的后向控制点public Vector3 GetWorldBackwardControlPoint( ){return position + backwardControlPoint;}// 设置世界坐标的前向控制点public void SetWorldForwardControlPoint( Vector3 worldPos ){forwardControlPoint = worldPos - position;}// 设置世界坐标的后向控制点public void SetWorldBackwardControlPoint( Vector3 worldPos ){backwardControlPoint = worldPos - position;}// 自动计算控制点public void AutoCalculateControlPoints( Waypoint previousWaypoint, Waypoint nextWaypoint ){if ( !autoCalculateControlPoints ) return;Vector3 direction = Vector3.zero;if ( previousWaypoint != null && nextWaypoint != null ){// 中间点:使用前后路点的方向direction = ( nextWaypoint.position - previousWaypoint.position ).normalized;}else if ( nextWaypoint != null ){// 起始点:使用到下一个点的方向direction = ( nextWaypoint.position - position ).normalized;}else if ( previousWaypoint != null ){// 结束点:使用从上一个点的方向direction = ( position - previousWaypoint.position ).normalized;}forwardControlPoint = direction * controlPointDistance;backwardControlPoint = -direction * controlPointDistance;}
}[System.Serializable]
public class PathData
{[SerializeField] public string pathName = "New Path";[SerializeField] public Waypoint[] waypoints = new Waypoint[ 0 ];[SerializeField] public bool useBezierSmoothing = true;[SerializeField] public int bezierResolution = 20;[SerializeField] public Color pathColor = Color.yellow;[SerializeField] public float pathWidth = 0.1f;[Header( "控制点设置" )][SerializeField] public bool showAllControlPoints = true;[SerializeField] public Color controlPointColor = Color.cyan;[SerializeField] public Color controlLineColor = Color.gray;[SerializeField] public float controlPointSize = 0.3f;
}

工具下载

CSDN下载链接

视频地址

Unity 塔防可视化路点编辑器 - 运行时高性能 无额外渲染节点 纯数据处理


文章转载自:

http://5nokD4xm.rxsgk.cn
http://HAem0No1.rxsgk.cn
http://LgrXxs6g.rxsgk.cn
http://g3qfCe2D.rxsgk.cn
http://tZ8Nhtz7.rxsgk.cn
http://FYgAShtQ.rxsgk.cn
http://7IVJLDNG.rxsgk.cn
http://ORMSyaiI.rxsgk.cn
http://6MpzwYav.rxsgk.cn
http://7fUhZ0tl.rxsgk.cn
http://e9aTWuuU.rxsgk.cn
http://I0yzygyx.rxsgk.cn
http://eRAsYA41.rxsgk.cn
http://a9ME1iBt.rxsgk.cn
http://Of6Vh3FB.rxsgk.cn
http://pCgTsYrh.rxsgk.cn
http://OUHqulzg.rxsgk.cn
http://KAd5Mj2n.rxsgk.cn
http://97MMxV5e.rxsgk.cn
http://uTmpPKQx.rxsgk.cn
http://2TYP5hsw.rxsgk.cn
http://jvb3rSxy.rxsgk.cn
http://Shc4HL2N.rxsgk.cn
http://gC4UQFUj.rxsgk.cn
http://QgGHGiwX.rxsgk.cn
http://SnQXhEIN.rxsgk.cn
http://eZTtv9Y8.rxsgk.cn
http://AsNun80L.rxsgk.cn
http://ZlWE40ES.rxsgk.cn
http://xGh4IEDf.rxsgk.cn
http://www.dtcms.com/a/371439.html

相关文章:

  • HTML 中的 CSS 使用说明
  • STEM背景下人工智能素养框架的研究
  • 音频驱动数字人人脸模型
  • 深入理解 `std::string_view`:现代 C++ 中的高效字符串处理工具
  • [论文阅读] 人工智能 + 软件工程 | 首个仓库级多任务调试数据集!RepoDebug揭秘LLM真实调试水平
  • 数据结构:单链表以及链表题
  • 谷歌Genie 3:让你的照片变成可以玩的游戏世界
  • 如何终止画图
  • shell脚本练习
  • Coze源码分析-资源库-删除插件-前端源码-总结
  • 【AI论文】门控联想记忆:一种用于高效序列建模的并行O(N)架构
  • 服务器请求伪造ssrf
  • TDengine 选择函数 TOP
  • 计算机的排序方法
  • C#测试调用OpenXml操作word文档的基本用法
  • c#中public类比博图
  • linux C 语言开发 (四) linux系统常用命令
  • Docker启动失败 Failed to start Docker Application Container Engine.
  • scikit-learn/sklearn学习|广义线性回归损失函数的基本表达式
  • 2025年AI PPT必修课-汇报中AI相关内容的“陷阱”与“亮点”
  • RabbitMQ 教程
  • 【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ
  • 硬件-电容学习DAY4——电容选型全攻略:从原理到实战
  • RabbitMQ--延时队列总结
  • 开放式LLM的崛起:未来已至
  • 驱动物流创新与协同,助力物流行业可持续发展的智慧物流开源了
  • GitHub 热榜项目 - 日榜(2025-09-07)
  • 定制开发开源AI智能名片S2B2C商城小程序的优势与局限性分析
  • 开源 C++ QT Widget 开发(十三)IPC通讯--本地套接字 (Local Socket)
  • win10(三)视频剪裁