UE4 C++基础回顾2
1、Set Visibility
Visible:可见,可交互
Hidden:不可见,不可交互
Collapsed:不可见,不占用空间,不可交互
Hit Test Invisible:可见,自身和child不可交互
Self Hit Test Invisible:可见,自身不可交互,child可交互
2 、SwapSlots
bool AInventoryBase::SwapSlots(int32 index1, int32 index2)
{if (Slots.IsValidIndex(index1) || Slots.IsValidIndex(index2)){Swap(Slots[index1], Slots[index2]);return true;}return false;
}
3、用不着每次都进行KeyBinding,用好Export和Import,事半功倍
4、易混淆的选中状态:一开始如果需要bSelected为true,走true分支,将bselected改为false;或者bSelect为false,走false分支(正常逻辑)
下图就是Selected默认为false
5、显示NavMesh 按 P
NAV Mesh Modify(常用的有NULL和Default两种)用来做减法
NavMesh Volume,用来做加法,需要设置cell size,agent size等参数。
NavLink,用来连接断开的navmesh
NAV Mesh Modify,可以自定义NavArea(设置好颜色),再加上NavQueryFileter来指定哪一种可以移动,哪一种不能够移动。最后AIController中使用NavQueryFilter。
agent Radius影响距离物体collision边界大小
6、第二次打开蓝图会进入到DataOnly 模式。方便参数调节。
7、画出导航路径:(这是大学来第N次画路径了(大二GIS画了一次,大三A*画了次,大四毕设Slam画了N次,实习画了n次)),总结就是,只要性能合适,直接上,别钻牛角尖。有API直接用。做游戏目的是好玩,不搞数学生的东西。
findPathToLocation会生成一条从A-B的路径点,怎么标记就是另一回事了。下图drawdebugline
FindPathToActor会生成一条从A到Actor的点,Actor移动时,会更新
8、生成Grid,比较Low的方式,看国外大神用了其他方法Procedure Mesh
1)、在Beginplay 中Spawn Actor from class,可以在ActorClass中具体指定行为,缺点就是只能在游戏运行时可见,当然也可以add child actor(Ctrl+Shift+H打开和关闭FPS)
cast shadow打开:
cast shadow关闭:
(50*50)
2)、在Construct中add static mesh component,可以有返回值,效果比上面略好。
cast shadow打开:
(15*15)
cast shadow关闭:
(30*30)
(50*50)
3)、在Construct中add instance,可以快速渲染,但是是一个整体,并不能访问某个具体的GRID。适用于模块化的建筑构建。,cast shadow打开:(20*20)
(100*100)
9、2D Grid Excution Macro的数值计算
PolyCenter:计算每个Grid的中心(x=Ox+Nx*LengthX;y=Oy+Ny*LengthY)
生成物体的中心点在中间位置
自定义for循环的话,可以从左下角开始,方便用一张Map存储。
10、ProdureMesh的简单使用:性能明显优于创建actor和add instance(修正:比添加普通actor和add static mesh component的性能好)
直接生成的ProdureMesh
cast shadow打开:
(50*50)
(15*15)
(30*30)
cast shadow关闭:
(30*30)
(50*50)
利用ProcedureMesh的Actor生成的(cast shadow关掉):
(30*30)
(50*50)
11、meta(ExposedOnspawn=true)
想法:
使用add Instance创建基板作为参照,每次动态生成 grid actor(范围约为6*6,经过上面测试,10*10以下生成actor的影响不大)。(在算法设计上由于不能够访问addInstance上单个图元的属性,麻烦些)
采用:第二种是直接生成用ProcedureMesh创建的actor。
ProceduralMesh的优点:创建和销毁的速度极快
DrawDebugBox:
(40*40)
12、AI MoveTo 比AIC->MoveToLocation精准
UE4 C++基础回顾2相关推荐
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天--JAVA基础回顾 这才学习Android的 ...
- php大牛额城战笔记,PHP语言大牛开发笔记(8)——MySQL数据库基础回顾[2]
本文主要向大家介绍了PHP语言大牛开发笔记(8)--MySQL数据库基础回顾[2],通过具体的实例向大家展示,希望对大家学习php语言有所帮助. 一.数据表 为了确保数据的完整性和一致性,在创建表时指 ...
- Javascript基础回顾 之(一) 类型
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- 【数理统计】概率论基础回顾
零.概率论基础回顾 1. 求离散型的期望
- c语言基础回顾 —— 其他知识点
参考:c语言基础回顾 -- 其他知识点 作者:丶PURSUING 发布时间: 2021-03-11 14:48:59 网址:https://blog.csdn.net/weixin_44742824/ ...
- Javascript基础回顾 之(二) 作用域
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- C#基础回顾:正则表达式
C#基础回顾:正则表达式 写在前面:本文根据笔者的学习体会结合相关书籍资料对正则表达式的语法和使用(C#)进行基本的介绍.适用于初学者. 摘要:正则表达式(Regular Expressions),相 ...
- 【车载开发系列】UDS诊断---DTC故障码基础回顾
[车载开发系列]UDS诊断-DTC故障码基础回顾 UDS诊断---DTC故障码基础回顾 [车载开发系列]UDS诊断---DTC故障码基础回顾 一.什么是DTC故障码 二.DTC故障码的作用 三.什么是 ...
- Chapter 1. OpenGL基础回顾 - Review of OpenGL Basics
Chapter 1. OpenGL基础回顾 - Review of OpenGL Basics 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循" ...
- MySQL基础回顾(六):数据查询语言DQL---select查询语句总结(篇一)
目录 先建一个数据库和若干张表 完整语法 1.基础查询 2.字段别名 3.去重 4.where子句查询 5.模糊查询 6.联表查询 7.分页和排序 8.子查询和嵌套查询 9.分组查询和having语句 ...
最新文章
- 解读Raft(二 选举和日志复制)
- Objective-C中把URL请求的参数转换为字典
- 说一说为什么gethostbyname用完后不用释放内存
- Leetcode987 二叉树的垂序遍历
- PMP之项目整合管理之变更管理计划
- Django(part10)--POST请求
- 2017-06-02 前端日报
- 利用xslt对xml进行缩进格式化处理
- IC卡读卡器在安卓(android)下的开发
- 怎么把框架栏变颜色 html,如何修改easyui框架颜色,求指点_html/css_WEB-ITnose
- bodymovin导出没有html5,AE脚本-导出json格式的Web动画工具 Bodymovin v5.7.1 + 使用教程...
- C语言实验报告(通用)
- java项目启动就调用方法_Java项目启动时执行指定方法的几种方式
- sumif计算机怎么学,SUMIF 带给Excel不一样的条件求和
- LCD笔记(7)LCD驱动程序框架_配置时钟
- 【Windows7库功能使用技巧 】
- android 本地lrc 歌词同步,android 音乐播放器-------歌词同步 lrc
- 微信小程序 后台播放,多页面播放
- java mongodb开发_Java 操作 MongoDB
- 设计模式——模板设计模式