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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值