Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化
前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客
本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程
我只是对重要功能进行分析和做出笔记分享,并未无师自通,吃水不忘打井人
本案例的实现流程图
兵种排序
首先
在一个阵型中,我们希望远程兵可以在近战兵后面,所以就需要区分不同兵种类
枚举变量很合适
public enum SoldierType
{Hero, //英雄Warrior, //战士Archer, //猎人Magician, //魔法师Loong, //龙
}
其次
定义其在容器中的顺序,因为布局的时候是按照容器中的顺序拿出来一个一个排列的
因为士兵容器是List,所以List方法里面的Sort就很合适
soldierObjs.Sort((a, b) => {if (a < b)return -1;else if (a > b)return 1;elsereturn 0;
});
然后
现在士兵的移动行为并不完善,当整体移动的时候会出现这种情况

而我实际想要的是,这样队伍会有限寻找最近的点去匹配

所以还需要规定一个角度和距离的问题,实现起来并不难所以直接看代码吧
//判断队伍新朝向和队伍老朝向之间的夹角//新朝向:(hitInfo.point - soldierObjs[0].transform.position).normalized//老朝向:soldierObjs[0].transform.forward 我们把之前的第一个士兵的面朝向作为了 阵型老朝向//两个朝向之间的夹角大于60度 我们就对士兵列表重新进行排序if( Vector3.Angle((hitInfo.point - soldierObjs[0].transform.position).normalized, soldierObjs[0].transform.forward) > 60 ){//满足条件后 重新进行士兵的排序//优先 兵种排序//其次 才是 距离排序soldierObjs.Sort((a, b) => {//优先兵种排序if (a.type < b.type)return -1;else if (a.type == b.type){//只有兵种相同时 才会以离目标点距离进行排序if (Vector3.Distance(a.transform.position, hitInfo.point) <= Vector3.Distance(b.transform.position, hitInfo.point))return -1;elsereturn 1;}elsereturn 1;});}
相关文章:
Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化
前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客 本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享,并未无师自通&#x…...
Android compose 的基本环境搭建
1.创建项目 导入版本 1.gradle/libs.versions.toml [versions] accompanistPermissions "0.36.0" agp "8.5.0-beta01" coilCompose "2.7.0" constraintlayoutComposeVersion "1.0.1" hiltAndroid "2.51.1" hiltNavi…...
git | 合并 commit 的两种方法
比如你最近的 3 次提交分别为 A B C,你想将它们合并成 X。 方案一 使用 git rebase -i HEAD~3 进入编辑: pick 0148079 A pick 29cae72 B pick bf8572a C修改: r 0148079 A f 29cae72 B f bf8572a C:wq 保存进入 commit 编辑页面,输入 X …...
Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录
概述 公司有个项目使用到Grafana作为监控界面,因为项目方的环境极其复杂,仅物理隔离的环境就有三四个,而且每个都得部署项目,今天在某个环境测试,查看界面遇到一个比较奇怪的Grafana问题,后面针对该问题进行跟踪分析并解决,故而博文记录,用于备忘。 问题 登录项目We…...
后端Java-SpringBoot整合MyBatisPlus步骤(超详细)
1.新建项目。 2.点击完上一步的next之后,选择pom.xml文件中的依赖。 3.点击pom文件进行项目初始化。 按照下面的俩步骤刷新一下maven ,让文件生效 4.新建一个application.yml文件 5. 新建一个数据库mp,在数据库中新建一张user表 6.连接数据…...
8609 哈夫曼树
### 思路 1. **选择最小权值节点**:在哈夫曼树构建过程中,选择两个权值最小且父节点为0的节点。 2. **构建哈夫曼树**:根据权值构建哈夫曼树,确保左子树权值小于右子树权值。 3. **生成哈夫曼编码**:从叶子节点到根节点…...
docker的harbor仓库登录问题
目录 一、问题描述 二、证书信任问题 三、DNS解析问题 四、解决 参考链接:Docker login Harbor报错解决:Error response from daemon: Get https:..-阿里云开发者社区 一、问题描述 问题: 挂机或者挂机重启之后harbor登录不上 查看日…...
ENV | docker 安装使用(简单实操版)
1. 详细步骤 1.1 安装 sudo apt update sudo apt install docker.io1.2 验证(可跳过) docker -v1.3 使用 1.3.1 拉取镜像 # 镜像源,如使用腾讯云服务器,可使用 https://mirror.ccs.tencentyun.com docker pull xxx1.3.2 运行…...
【Golang】深入解读Go语言中的错误(error)与异常(panic)
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
DMDSC更换DCR和VOTE磁盘
DMDSC更换DCR和VOTE磁盘 为了提高DMDSC集群运行速度和节点之间通信协调的效率,需要将运行在机械盘上的dcr和vote磁盘替换到SSD高效磁盘上。将原来200M的dcr和vote机械磁盘,换成500M的SSD高效磁盘。 磁盘替换规划信息如下所示: 信息说明 替…...
国产化框架PaddleYOLO结合Swanlab进行作物检测
1. 项目介绍 粮食安全,作为人类生存与发展的基石,始终是全球关注的焦点。它不仅仅关乎粮食的充足供应,更涉及粮食的质量安全、营养健康以及可持续生产等多个维度。在全球化、气候变化和资源环境约束日益加剧的背景下,如何确保粮食…...
Linux编译部署PHP环境
1.准备工作 安装前我们需要设置防护墙,开放端口,更新yum源 # 1.防火墙 systemctl status firewalld 看到active(running)就意味着防火墙打开了 systemctl stop firewalld 看到inactive(dead)就意味着防火墙关闭了 systemctl start fire…...
Win11禁止搜索栏查找互联网内容
禁止任务栏和开始菜单的搜索栏查找互联网内容的方法如下: 使用组策略:WinR键,或菜单框,输入gpedit.msc回车,启动本地组策略编辑器。使用左侧的边栏导航到“计算机配置”>“管理模板”>“Windows组件”>“搜索…...
dig和nmap的区别
dig和nmap是两种在网络管理和安全领域广泛使用的工具,它们在功能、用途和原理上存在显著差异。 dig 定义与功能: dig(Domain Information Groper)是一个用于查询DNS(域名系统)信息的命令行工具。它允许用…...
无人机飞手入伍当兵技术优势分析
随着现代战争形态的不断演变,无人机技术在军事领域的应用日益广泛,成为提升军队作战能力的重要手段。对于无人机飞手而言,其专业技能和实战经验在入伍当兵后能够转化为显著的技术优势,为国防事业贡献重要力量。以下是从专业技能优…...
[Everything] 文件搜索工具的下载及详细安装使用过程(附有下载文件)
快速搜索文件名及其所在路径 下载链接在文末 下载压缩包后解压 !!安装路径不要有中文 解压后得到文件 双击exe文件得到 选择简体中文,点击OK 点击“我接受” 更改安装目录,最好不要放在C盘,点击下一步 点击下一步 点…...
HIRI-ViT:使用高分辨率输入的视觉Transformer扩展
摘要 https://arxiv.org/pdf/2403.11999 视觉Transformer( V i T \mathrm{ViT} ViT)与卷积神经网络(CNN)的混合深度模型已成为视觉任务中一类强大的骨干网络。自然地,提高此类混合骨干网络的输入分辨率会增强模型容量…...
TI DSP TMS320F280025 Note15:串口SCI的使用
TMS320F280025 串口SCI的使用 ` 文章目录 TMS320F280025 串口SCI的使用框图分析串口特点可编程数据格式SCI端口中断非FIFO/FIFO模式下SCI中断的操作/配置UartDriver.cUartDriver.h串口时钟由PCLKCR7控制使能,默认位系统时钟4分频 串口接收与发送都可以触发中断 串口使用的引脚…...
[Bandzip] 文件解压工具的下载及详细安装使用过程(附有下载文件)
文件解压工具,避免解压出错,双击即可解压文件 下载链接在文末 下载压缩包后解压 !!安装路径不要有中文 解压得到文件 双击exe文件 同意并安装 安装完成后,点击关闭, 右键点击需要解压的压缩包࿰…...
微服务MongoDB解析部署使用全流程
目录 1、什么是MongoDB 1、非关系型数据库 2、非关系型数据库分类 3、MongoDB?bson格式什么样? 2、MongoDB的优势 3、MongoDB应用场景 4、术语 5、操作 1、安装MongoDB 1、查询镜像文件【不操作】 2、拉取镜像文件 3、创建数据挂载目录 4、启…...
新手福音:利用快马平台生成你的第一个数学公式编辑器入门项目
最近在自学前端开发,一直想尝试做个数学公式编辑器来练手。作为一个完全的新手,从零开始写这种项目确实有点无从下手。不过我发现用InsCode(快马)平台可以很轻松地生成基础代码框架,再根据自己的需求调整完善,特别适合像我这样的初…...
从硬件迷宫到macOS殿堂:OpCore Simplify如何重塑黑苹果配置体验
从硬件迷宫到macOS殿堂:OpCore Simplify如何重塑黑苹果配置体验 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 对于许多技术爱好者来说&a…...
3步搞定:如何让VR视频在普通屏幕上完美播放
3步搞定:如何让VR视频在普通屏幕上完美播放 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_mirrors/vr/V…...
AD7124多通道配置实战:从寄存器映射到混合模式应用
1. AD7124多通道配置的核心价值 第一次接触AD7124时,我被它复杂的寄存器结构弄得晕头转向。这款24位Σ-Δ ADC芯片在工业测温、多路数据采集等场景表现优异,但想要充分发挥其性能,必须吃透通道与配置寄存器的映射关系。实际项目中,…...
LibreHardwareMonitor:5分钟掌握免费开源硬件监控的终极指南
LibreHardwareMonitor:5分钟掌握免费开源硬件监控的终极指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor, home of the fork of Open Hardware Monitor 项目地址: https://gitcode.com/GitHub_Trending/li/LibreHardwareMonitor 想要实时…...
asp毕业设计下载(全套源码+配套论文)——基于asp+sqlserver的WEB社区论坛设计与实现
基于aspsqlserver的WEB社区论坛设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspsqlserver的WEB社区论坛设计与实现,更多精选毕业设计项目下载见文末哦。 文章目录: 基于aspsqlserver的WEB社区论坛设计与…...
Deformable-DETR环境配置避坑:如何正确设置CUDA_HOME解决ms_deformable_im2col_cuda报错
Deformable-DETR环境配置实战:从CUDA路径排查到高效编译 当你第一次尝试运行Deformable-DETR这个强大的目标检测框架时,是否也遇到了那个令人头疼的报错:"error in ms_deformable_im2col_cuda: no kernel image is available for execut…...
LxgwWenkaiGB:合规开源字体的专业应用指南
LxgwWenkaiGB:合规开源字体的专业应用指南 【免费下载链接】LxgwWenkaiGB An open-source Simplified Chinese font derived from Klee One. 项目地址: https://gitcode.com/gh_mirrors/lx/LxgwWenkaiGB LxgwWenkaiGB(霞鹜文楷 GB)作为…...
Cursor功能增强工具使用指南
Cursor功能增强工具使用指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request limit. / Too many free t…...
终极文档处理方案:AnythingLLM如何实现PDF/TXT/DOCX全格式智能解析
终极文档处理方案:AnythingLLM如何实现PDF/TXT/DOCX全格式智能解析 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型&am…...

