游戏开发
实习生小黄开始学习一个人开发游戏
实习生小黄
这个作者很懒,什么都没留下…
展开
-
UE C++中GetOverlappingActors正确用法,关于ClassFilter
背景:用到UE的自带函数GetOverlappingActors,检测碰撞框是否和NPC产生重叠,由于碰状框经常和许多东西重叠,直接检测会有不必要的对象被写入结果数组,浪费性能。函数中的第二个参数ClassFilter可以根据类型进行过滤,使不关注的类对象都被排除在外。//引擎中该函数的声明void UPrimitiveComponent::GetOverlappingActors(TArray<AActor*>& OutOverlappingActors, TSubclassOf原创 2020-09-28 21:57:29 · 1697 阅读 · 2 评论 -
UE C++ 把Enum枚举转成FString字符串,最简单方法3行
创建一个函数专门处理枚举到字符串的转换,方法很简单只要3行。且可以根据需求,选择用没有前缀的干净的短字符串或者有前缀枚举值限定的长字符串。性能开销可能不怎么好,不过方便。...原创 2020-09-20 13:38:58 · 3306 阅读 · 0 评论 -
UE C++两种常用又简单的位移方法
1、AddMovementInput如果是继承自APawn和ACharacter的类,可以用AddMovementInput函数,属于APawn上面的UPawnMovementComponent组件的功能AddMovementInput(FVector WorldDirection, float ScaleValue, bool bForce /*=false*/)2、SimpleMoveTo……首先要引入头文件#include "Blueprint/AIBlueprintHelperLibrary原创 2020-08-04 18:17:40 · 1691 阅读 · 0 评论 -
UE C++简单判断点击的是否是UI
最简单的是通过PlayerController里现成的函数来判断,只要两步。1、只要是继承了APlayerController 的控制器,都可以用GetHud()来获得整个Game运行状态中的常驻HUD。2、HUD里封装的GetHitBoxAtCoordinates()函数,传入一个2D坐标,如果在UI元素范围内则返回FHUDHitBox结构,其中包含了虚幻计算的中间变量的但不用去关心,如果不在UI范围则返回nullptr。那么判断是否点击的是UI,代码例子:if(GetHUD() != NULL原创 2020-08-04 15:34:54 · 1175 阅读 · 0 评论 -
UE C++获取鼠标点击的常用两种方法
1、APlayerController封装的简便方法只要是继承于ACharacter或APawn类的,都可以把Controller转换成APlayerController来用GetHitResultUnderCursor这个函数,本质上其实是射线检测GetWorld()->LineTraceSingleByChannel,只是做了很多安全判断,比如保证获得玩家屏幕,保证点击的不是UI。通过Hit传引用进去,传结果出来。Hit.bBlockingHit代表检测到了物体2、射线检测GetWorl原创 2020-08-04 15:17:34 · 2792 阅读 · 0 评论 -
UE4 C++定义接口的方法
在cpp中定义接口原创 2020-07-26 16:26:18 · 432 阅读 · 0 评论 -
UE4 C++官方AI感知组件的简单设置UAIPerceptionComponent
AI感知的基础设置其实AI感知组件可以在蓝图里创建,哪怕要代码里设置,也可以对照着蓝图里的项目一条条看。唯一要注意的是,该组件有个每帧执行检测的函数OnPerceptionUpdated,我们可以把自己的检测函数绑定在上面,要注意函数签名一致。对着官方的OnPerceptionUpdated函数追述申明,可以看到函数签名的格式。每帧会向函数中传入AActor的数组,里面是AI感知探测到的对象。...原创 2020-07-25 14:11:12 · 1257 阅读 · 2 评论 -
UE4 C++求距离的3个常用方法
判断两个物体间的距离:方法特别多,记录下来看将来是不是用得到。1、Actor类自带函数比如MyPawn->GetDistanceTo(TargetActor)获得自身与目标之间的距离。第二个是获得距离的平方,少一个开方运算,可以少点计算量,但使用是不能忘了是平方值。2、直接用向量求距离其实Actor类的自带函数,内部实现也是用的这个。3、FVector结构体中的静态函数搞了两个名字,其实是同一个Dist函数。实现方式都是很基础的运算,同样Dist比DistSquared多一个开原创 2020-07-25 10:40:20 · 3764 阅读 · 0 评论