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精准