AActor, APawn, ACharacter简介

本文介绍了UE4里的AActor、APawn和ACharacter。AActor继承UObject,可放于关卡,含组件控制移动和渲染;APawn继承AActor,可被玩家或AI拥有;ACharacter继承APawn,有mesh、碰撞和移动逻辑,负责物理交互等。还给出了使用各类型需包含的头文件。

1.AActor

AActor继承UObject, 可以被放在关卡中。Actor包含一个ActorComponent集合,它可以用来控制Actor

怎样移动和渲染等等。使用Actor需要包含头文件“GameFramework/Actor.h”

2.APawn

APawn继承AActor,他可以被player 或 AI拥有。他们是关卡中玩家和其他生物的物理物理表现。

使用APawn需要包含头文件“GameFramework/Pawn.h”

3.ACharacter

ACharacter继承APawn。它是拥有mesh, collision 和内置移动逻辑的Pawn。它们负责玩家和AI和世界之间的所有物理交互,

以及负责实现基本的网络和输入模型。它们通过使用CharacterMovementComponent来实现一个垂直朝向的可以在世界中走、跑跳、的玩家。飞、游泳。

使用ACharacter需要包含头文件“GameFramework/Character.h”

> UnrealEditor-Force-Win64-DebugGame.dll!ATFAIController::RunBehaviorTree(UBehaviorTree * BTAsset) 行 84 C++ UnrealEditor-Force-Win64-DebugGame.dll!ATFAIController::OnPossess(APawn * InPawn) 行 74 C++ UnrealEditor-Engine.dll!AController::Possess(APawn * InPawn) 行 341 C++ UnrealEditor-Engine.dll!APawn::SpawnDefaultController() 行 378 C++ UnrealEditor-Engine.dll!APawn::PostInitializeComponents() 行 161 C++ UnrealEditor-Engine.dll!ACharacter::PostInitializeComponents() 行 145 C++ UnrealEditor-Force-Win64-DebugGame.dll!ATFCharacterBase::PostInitializeComponents() 行 207 C++ UnrealEditor-Force-Win64-DebugGame.dll!ATFCharacter::PostInitializeComponents() 行 111 C++ UnrealEditor-Engine.dll!AActor::PostActorConstruction() 行 4043 C++ UnrealEditor-Engine.dll!AActor::FinishSpawning(const UE::Math::TTransform<double> & UserTransform, bool bIsDefaultTransform, const FComponentInstanceDataCache * InstanceDataCache, ESpawnActorScaleMethod TransformScaleMethod) 行 3969 C++ UnrealEditor-Engine.dll!UGameplayStatics::FinishSpawningActor(AActor * Actor, const UE::Math::TTransform<double> & SpawnTransform, ESpawnActorScaleMethod TransformScaleMethod) 行 893 C++ UnrealEditor-Engine.dll!UGameplayStatics::execFinishSpawningActor(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 2707 C++ UnrealEditor-CoreUObject.dll!UObject::execCallMathFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 1079 C++ [内联框架] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) 行 482 C++ UnrealEditor-CoreUObject.dll!UObject::execLetObj(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 2907 C++ [内联框架] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) 行 482 C++ UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 1214 C++ UnrealEditor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) 行 1043 C++ UnrealEditor-CoreUObject.dll!ProcessLocalFunction::__l2::<lambda_1>::operator()() 行 1286 C++ UnrealEditor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) 行 1304 C++ [内联框架] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) 行 482 C++ UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 1214 C++ UnrealEditor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) 行 1043 C++ UnrealEditor-CoreUObject.dll!ProcessLocalFunction::__l2::<lambda_1>::operator()() 行 1286 C++ UnrealEditor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) 行 1304 C++ [内联框架] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) 行 482 C++ UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 1214 C++ UnrealEditor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) 行 1336 C++ UnrealEditor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) 行 7192 C++ UnrealEditor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) 行 2175 C++ UnrealEditor-MovieSceneTracks.dll!UMovieSceneEventSystem::TriggerEvents(TArrayView<FMovieSceneEventTriggerData const ,int> Events, TSharedRef<UE::MovieScene::FSharedPlaybackState const ,1> SharedPlaybackState) 行 208 C++ UnrealEditor-MovieSceneTracks.dll!UMovieSceneEventSystem::TriggerAllEvents() 行 129 C++ [内联框架] UnrealEditor-MovieSceneTracks.dll!Invoke(void(UMovieScenePostEvalEventSystem::*)() PtrMemFun, UMovieScenePostEvalEventSystem * &) 行 66 C++ [内联框架] UnrealEditor-MovieSceneTracks.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UMovieScenePostEvalEventSystem::*)() &) 行 317 C++ UnrealEditor-MovieSceneTracks.dll!TBaseUObjectMethodDelegateInstance<0,UMovieScenePostEvalEventSystem,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() 行 667 C++ [内联框架] UnrealEditor-MovieScene.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast() 行 257 C++ UnrealEditor-MovieScene.dll!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() 行 1079 C++ UnrealEditor-MovieScene.dll!FMovieSceneEntitySystemRunner::GameThread_EventTriggerPhase(UMovieSceneEntitySystemLinker * Linker) 行 1163 C++ UnrealEditor-MovieScene.dll!FMovieSceneEntitySystemRunner::FlushNext(UMovieSceneEntitySystemLinker * Linker) 行 392 C++ UnrealEditor-MovieScene.dll!FMovieSceneEntitySystemRunner::FlushOutstanding(double BudgetMs, UE::MovieScene::ERunnerFlushState TargetState) 行 512 C++ UnrealEditor-MovieScene.dll!UMovieSceneSequenceTickManager::TickSequenceActors(float DeltaSeconds) 行 441 C++ [内联框架] UnrealEditor-MovieScene.dll!Invoke(void(UMovieSceneSequenceTickManager::*)(float) PtrMemFun, UMovieSceneSequenceTickManager * &) 行 66 C++ [内联框架] UnrealEditor-MovieScene.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UMovieSceneSequenceTickManager::*)(float) &) 行 317 C++ UnrealEditor-MovieScene.dll!TBaseUObjectMethodDelegateInstance<0,UMovieSceneSequenceTickManager,void __cdecl(float),FDefaultDelegateUserPolicy>::ExecuteIfSafe(float <Params_0>) 行 667 C++ [内联框架] UnrealEditor-Engine.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast(float) 行 257 C++ [内联框架] UnrealEditor-Engine.dll!TMulticastDelegate<void __cdecl(float),FDefaultDelegateUserPolicy>::Broadcast(float) 行 1079 C++ UnrealEditor-Engine.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) 行 1426 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) 行 2140 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) 行 550 C++ UnrealEditor-Win64-DebugGame.exe!FEngineLoop::Tick() 行 5869 C++ [内联框架] UnrealEditor-Win64-DebugGame.exe!EngineTick() 行 69 C++ UnrealEditor-Win64-DebugGame.exe!GuardedMain(const wchar_t * CmdLine) 行 188 C++ UnrealEditor-Win64-DebugGame.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) 行 266 C++ UnrealEditor-Win64-DebugGame.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) 行 317 C++ [外部代码] 这是敌人出现时触发的断点,继续执行后不在触发,分析一下,并讲解一下行为树在这里运行后可能执行什么内容。
最新发布
10-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值