4,引擎初始化--(6)各种BeginPlay()(学习资料来自于ue4游戏框架)

文章描述了游戏实际运行前的准备工作,包括Engine的BeginPlay()、World、GameMode、GameState以及WorldSettings的初始化。接着,它详细阐述了如何遍历并激活各个Actor,同时调用Actor及其组件的BeginPlay()方法,触发蓝图的BeginPlay()逻辑,最终进入游戏循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在,让游戏实际运行的准备工作都完成了,进行各种BeginPlay()
从Engine到world,(这里是debug_Editor模式)
在这里插入图片描述

再到GameMode
在这里插入图片描述
再到GameState,
在这里插入图片描述

再到worldSettings
在这里插入图片描述
最后遍历各个Actor,
在这里插入图片描述
各个Actor调用BeginPlay()
在这里插入图片描述

如果actor有组件,则调用组件的BeginPlay()
在这里插入图片描述
对应蓝图的BeginPlay()也会触发。

然后正式进入游戏循环。

### UE4 C++ 中实现敌人攻击和追踪功能 在 Unreal Engine 4 (UE4) 的 C++ 编程环境中,为了使敌人能够执行攻击动作并跟踪玩家角色,通常会涉及到多个组件和技术的协同工作。下面提供一种基于 AI 控制器、感知组件以及行为树系统的解决方案。 #### 创建AI控制器类 首先定义一个新的 `AAIController` 类型派生自 `AController`, 并重写其中的关键方法来处理敌人的逻辑判断: ```cpp // AEnemyAIController.h 文件中的声明部分 class MYPROJECT_API AEnemyAIController : public AController { GENERATED_BODY() protected: virtual void BeginPlay() override; public: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Behavior Tree") class UBlackboardComponent* BlackBoardComp; UFUNCTION() void OnSeePawn(APawn* SeenPawn); }; ``` 接着,在 `.cpp` 文件里初始化黑板组件,并设置好相应的事件监听机制以便于检测到目标时触发特定的行为模式[^1]。 对于追踪方面,则可以利用引擎自带的感觉系统(Senses System),通过配置 Sight 或 Hearing 组件让 NPC 能够探测周围环境变化;当发现潜在威胁对象后即刻更新至关联的任务节点上供后续决策流程调用。 关于具体的攻击方式设计,这取决于游戏的具体需求。如果希望构建一套较为复杂的战斗体系,建议引入状态机的概念——允许单位根据当前所处情境动态调整自身的行动策略。例如处于巡逻状态下偶然遭遇入侵者转而进入追击姿态直至将其消灭或者被对方摆脱视线范围之外为止。 另外值得注意的是,为了让整个过程更加流畅自然,还可以考虑加入动画蓝图的支持以同步视觉效果与物理运动学参数之间的转换关系,从而达到更佳的表现力。 最后附带一段简单的代码片段用于演示如何编写一个基础版本的近战攻击函数: ```cpp void AMyCharacter::Attack() { if (!bCanAttack || !HasAuthority()) return; bIsAttacking = true; GetWorldTimerManager().SetTimer(TimerHandle_AttackDelay, this, &AMyCharacter::StopAttack, AttackCooldown); PlayAnimMontage(AttackAnim); // 播放攻击动画 // 处理伤害计算等相关业务... } void AMyCharacter::StopAttack() { bIsAttacking = false; } ``` 此段落描述了基本框架下的一次完整的进攻周期操作序列,实际项目开发过程中可能还需要额外增加诸如碰撞检测、方向判定等功能模块确保交互体验的真实性和合理性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值