UEC++学习
文章平均质量分 66
记录UEC++的学习笔记
爆米花煮鸡蛋
自我学习笔记,仅供参考
展开
-
UEC++学习(十五)创建、查找、加入会话
基于上篇配置steam在线子系统之后,在Character.h中声明一个会话创建完成时的委托以及回调函数。在Character.cpp的构造函数中绑定委托添加创建会话逻辑,将结果打印到屏幕OnlineSessionInterface->GetNamedSession(NAME_GameSession):获取会话OnlineSessionInterface->DestroySession(NAME_GameSession):销毁会话。原创 2024-05-15 11:10:34 · 530 阅读 · 0 评论 -
UEC++学习(十四)新项目配置Steam为在线子系统
在Character.cpp的构造函数中,配置为使用steam作为在线子系统,并通过AddOnScreenDebugMessage打印名字在屏幕上。在项目的配置文件中添加需要使用的模块,OnlineSubsystemSteam和OnlineSubsystem 用于链接steam子系统。新建一个第三人称的项目,启用插件OnlineSubsystemSteam。在项目的DefaultEngin.ini文件中添加下面设置。在Character.h中添加一个指向在线会话界面的指针。这个设置在官方文档中。原创 2024-05-06 11:27:19 · 166 阅读 · 0 评论 -
UEC++学习(十三)Ai服务AI Service / AI装饰 AI Decorator
服务是可以添加到行为树节点的特殊类,具有自己的Tick功能,可以在里面写游戏逻辑,并且还能够更改黑板上的键这里主要是对UEC++学习(十一)和(十二)中的AI随机移动和追击玩家逻辑进行优化。如果不感兴趣的话可以直接跳转到第二步创建BTService类,命名为STUFindEnemyService。原创 2024-02-02 11:32:49 · 424 阅读 · 0 评论 -
UEC++学习(十二)AI感知组件AIPerceptionComponent
创建AIPerceptionComponent类,命名为STUAIPerceptionComponent在AIController.h中创建感知组件变量在构造函数中对其初始化,SetPerceptionComponet:自带函数,对组件赋值在蓝图中 AI Sight Config用于视野感知。原创 2024-02-01 13:55:26 · 442 阅读 · 1 评论 -
UEC++学习(十一)AI行为树
首先创建AI类和AIController类,这里的Ai是直接继承的Character类,在AI类中添加一个行为树变量上面操作在蓝图中,因为这里的ai暂时是直接放置在level的然后创建一个行为树蓝图和黑板将C++中创建的BehaviorTreeAsset变量赋值然后在AIController,h中重载OnPossess函数,这个函数用于AI被拥有时调用在AIController.cpp对应蓝图函数;原创 2024-01-31 14:52:33 · 475 阅读 · 0 评论 -
UEC++学习(十)武器添加开火特效
在武器类中添加NiagaraSystem和NiagaraComponent组件两个变量,在Cpp中。原创 2024-01-30 11:35:17 · 397 阅读 · 1 评论 -
UEC++学习(九)相机抖动
在蓝图中创建一个抖动相机蓝图类MatineeCameraShake。StartCameraShake():播放抖动函数。GetController():获取控制器。GetOwner():获取组件的owner。在蓝图中设置相机对应的抖动参数。添加一个相机抖动变量。原创 2024-01-26 17:33:59 · 263 阅读 · 1 评论 -
UEC++学习(八)Actor添加球形碰撞体
在.h文件中定义一个USphereComponent组件 ,NotifyActorBeginOverlap是用于重载。SetCollisionResponseToAllChannels:设置所有通道的碰撞响应类型。SetCollisionEnabled:设置碰撞启用类型。SetRootComponent:设置根组件。InitSphereRadius:初始范围。原创 2024-01-16 15:09:48 · 411 阅读 · 1 评论 -
UEC++学习(七)之动画通知
获取到动画的所有通知Notifies,这是一个AnimNotifyEvent数组类型,NotifyEvent.Notufy获取通知,强制转换为需要的类,然后绑定委托。在需要播放动画的类中,这里创建了一个动画蒙太奇,用于在蓝图中修改。在父类中有个Notify函数用于执行,创建一个委托用于触发。创建一个基于AnimNotify的类。Broadcast:执行委托。在蓝图中添加这个通知就行。原创 2023-12-25 16:37:16 · 490 阅读 · 0 评论 -
UEC++学习(六)之 武器发射射线,发射子弹,造成伤害
在武器类中GetSocketTransform(socketname):通过插槽名获取transformSocketTransform.GetLocation():获取变换的locationSocketTransform.GetRotation().GetForwardVector():获取向前向量DrawDebugLine:调试射线:参数;World,开始位置,结束位置,颜色,判断射线是否永久绘制(默认false),存在时间,绘制深度的顺序,粗细FHitResult:用于接收检测信息的结构体。原创 2023-12-19 15:49:51 · 519 阅读 · 0 评论 -
UEC++学习(五)之 绘制十字准星,组件拥有者不可见等
创建HUD类,需要重载DrawHUD()函数;DrawHUD():负责渲染,每一帧执行,可以在此函数中绘制线条TInterval:模板函数,用于表示一个区间,包含了最小和最大值,可以用于判断两个区间是否重叠,合并两个区间等,比如Center.Contains(X),检查X是否在区间FLinearColor::Green 绿色DrawLine:用于绘制线,参数:起始X,起始Y,终点X,终点Y,线颜色,线粗细GameMode覆盖新的HUD类。原创 2023-12-18 13:46:50 · 522 阅读 · 0 评论 -
UEC++学习(四)之 角色添加武器
AttachToComponent:添加到组件,参数:要附加到的父类,旋转,插槽名。可以在插槽中添加武器资产用于预览:这一步是用于自己调整武器相对于插槽的旋转值。GetWorld()->SpawnActor():生成actor。在角色类中创建一个武器类:TSubclassof()在角色骨骼网格体中创建一个插槽Socket用于绑定武器。在WeaponClass中创建骨骼网格体。GetMesh():获取骨骼网格体。原创 2023-12-15 17:22:23 · 463 阅读 · 0 评论 -
UEC++学习(三)之 角色死亡,切换旁观者类,高处掉血Landed等
使用的是非动态多播声明两个仅供C++使用的委托:委托要用F开头创建这两个委托变量在血量减少时执行委托:Broadcast()在角色类中订阅绑定这两个委托创建蒙太奇动画:UAnimMontage播放蒙太奇:PlayAnimMontage()关闭蒙太奇的自动混出,不然播放结束后会回到初始状态。原创 2023-12-14 18:15:50 · 474 阅读 · 0 评论 -
UE C++学习(二)之 委托,Gamemode基础类,不同Pawn切换,映射,伤害TakeDamage等
(3)DECLARE_DYNAMIC_MULTICAST_DELEGATE:多播,分别用蓝图的形式编写,可以编写多个客户端,也可以使用C++(1)DELARE_DELEGATE:是最简单的版本,带有一个参数DelegateName 是我们可以分配给委托的名称,只能在C++中使用。(2)DECLARE_DYNAMIC_DELEGATE:这个委托的不同之处在于,可以做蓝图中使用。委托可以存储对 具有任意类的特定签名的方法 的引用,并在必要时调用此方法。原创 2023-09-01 15:17:41 · 70 阅读 · 0 评论 -
UE C++学习(一)之 Log,创建,定时器,UFUNCTION等
使用DEFINE_LOG_STATIC//自定义一个log分类:LogCustom。原创 2023-08-18 16:03:09 · 471 阅读 · 0 评论