class AController :
public AActor ,
public INavAgentInterface
Remarks
Controller 是非物理 Actor,可以掌管一个 Pawn 来控制它的行为。
PlayerController 被人类玩家使用以控制 Pawn 。同时 AIController 为其控制的 Pawn 实现了人工智能。
Controller 使用 Process() 方法来掌管 Pawn ,也可以使用 UnProcess() 来放弃对当前 Pawn 的掌管。
Controller 为其掌管的 Pawn 中的很多事件获取通知,使得其有机会实现响应事件的行为,拦截事件并代换 Pawn 的默认行为。
ControlRotation(通过 GetControlRotation() 访问)决定被控制的Pawn 的指定方向,并且受到输入的影响。
Variables
unit32:1 | bAttachToPawn | 如果为 true 控制器位置将匹配所掌管的 Pawn 的位置 | |
unit32:1 | bIsPlayerController | 是否该控制器是一个PlayerController | |
FRotator | ControlRotation | 此控制器的控制旋转,参阅 GetControlRotation | |
unit8 | IgnoreLookInput | 忽略查找输入, | |
unit8 | IgnoreMoveInput | 忽略运动输入,使用访问者函数 IgnoreMoveInput() 堆叠状态存储。 | |
FInstigatedAnyDamageSignature | OnInstigatedAnyDamage | ?当此控制器有任何方式的煽动伤害时被调用 | |
FPawnChangedSignature | OnNewPawn | ||
APlayerState * | PlayerState | 包含关于使用此控制器的玩家的复制信息,不包括NPC玩家 | |
TWeakObjectPtr <class AActor > | StartSpot | Actor标记此控制器产生的位置。 | |
FName | StateName | 当前控制器处于的GameState名称 |
Constructors
AController | 默认构造函数 |
Functions
virtual void AddPawnTickDependency | 增加依赖,使得我们在给定Pawn之前开始tick。这使得输入处理和Pawn移动之间的等待时间最小化。 | |
virtual void AttachToPawn | 将控制器物理地连接到具体指定的Pawn上,以至我们的位置反应Pawn的位置。控制器的旋转继续和ControlRotation匹配。尝试附加到一个是nullptr的Pawn上时,调用DetachFromPawn()替代上述动作。 | |
virtual void BeginInactiveState ( ) | 子类重写覆盖:APlayerController::BeginInactiveState() 在未激活状态下State进入(没有被掌管的Pawn,没有处于观看状态,etc) | |
CastToPlayerController ( ) | 反对使用!使用“标准转型”结点替换。如果可能的话将Controller转型成PlayerController | |
virtual void ChangeState | 子类重写覆盖:APlayerController::ChangeState() 将当前状态改为新命名的状态 | |
virtual void CleanupPlayerState ( ) | 子类重写覆盖:APlayerController::CleanupPlayerState() 被Destory()调用,清除PlayerState | |
void ClientSetLocation | 可复制的函数,用来设置Pawn位置和旋转,允许服务器强制传送 | |
void ClientSetRotation | 可复制的函数,用来设置Pawn位置,允许服务器强制传送 | |
virtual void CurrentLevelUnloaded ( ) | 当这个控制器处于的关卡正在通过流卸载时被调用 | |
virtual void DetachFromPawn ( ) | 将RootComponent从其父体分离,但前提是bAttachToPawn是true,并且它已经被附加到一个Pawn上。 | |
virtual void DisplayDebug | 子类重写覆盖: APlayerController::DisplayDebug()
| |
virtual void EndInactiveState ( ) | 重写:APlayerController 当离开非激活状态时被调用 | |
virtual void FailedToSpawnPawn ( ) | 重写:APlayerController 当GameMode为我生产Pawn失败时调用 | |
virtual void GameHasEnded | 重写:1 游戏结束后从GameMode调用,用于过渡到合适的状态 | |
GetCharacter ( ) | 获取Character的指针 | |
virtual FRotator GetControlRotation ( ) | 获取ControlRotation的副本 这是全瞄准的旋转。其可以不同于相机的取向(比如第三人称中),并且可以不同于被控制的Pawn的旋转(比如Pawn选择不显示地旋转) | |
virtual FRotator GetDesiredRotation ( ) | 获取期望的Pawn目标旋转的副本 | |
GetOnNewPawnNotifier ( ) | ||
APawn * GetPawn ( ) | 获取Pawn的指针 | |
template<class T> GetPlayerState ( ) | 控制器的PlayerState被强制转化成模板类型,如果没有指定模板类型则返回NULL,如果强制转化失败也会返回NULL | |
virtual void GetPlayerViewPoint | 重写1 返回玩家的观察点,对于AI意味着Pawn的眼睛的ViewPoint。对于认类玩家意味着摄像机ViewPoint。通过引用参数传递。 | |
GetStateName ( ) | 获取当前State的名字的副本 | |
GetTransformComponent ( ) | 获取TransformComponent的指针 | |
virtual AActor * GetViewTarget ( ) | 重写1 获取当前Controller正在监视的Actor的指针 | |
virtual void InitNavigationControl | 初始化路径跟踪组件 | |
virtual void InitPlayerState ( ) | 生成并初始化该控制器的PlayerState | |
virtual void InstigatedAnyDamage | 当控制器引起任何损害的时候被调用 | |
bool IsInState | 如果当前状态是状态名,返回true | |
virtual bool IsLocalController ( ) | 当该控制器是本地控制器时返回true | |
virtual bool IsLookInputIgnored ( ) | 如果查找输入被忽略,则返回true | |
virtual bool IsMoveInputIgnored ( ) | 如果运动输入被忽略,则返回true | |
bool IsPlayerController ( ) | 内联函数 如果该控制器是PlayerController返回true | |
APawn * K2_GetPawn ( ) | 返回被当前被PlayerController控制的Pawn的指针 | |
virtual bool LineOfSightTo | 检查线到其他的Actor的中心和顶部,如果控制器的Pawn可以看到其他Actor返回true | |
virtual void OnRep_Pawn ( ) | 复制通知回调 | |
virtual void OnRep_PlayerState ( ) | ||
virtual void PawnPendingDestroy | 被调用来解除掌控Pawn应为Pawn将被销毁,其他解除掌控的处理由UnProcess()处理 | |
virtual void Possess | 重写12 将该Controller附加指定的Pawn上,只在网络权限上运行 (当HasAuthority()返回true时) | |
void ReceiveInstigatedAnyDamage | 当该控制器引起任何损坏时发生 | |
virtual void RemovePawnTickDependency | 移除依赖以至于我们在指定Pawn之前tick | |
virtual void ResetIgnoreInputFlags ( ) | 重置运动和查找输入的忽略标志 | |
virtual void ResetIgnoreLookInput ( ) | 停止忽略查找输入 | |
virtual void ResetIgnoreMoveInput ( ) | 停止忽略运动输入 | |
virtual void SetControlRotation | 设置control rotation。RootComponent的旋转也将被更新至和它匹配 如果RootComponent->bAbsoluteRotation 是true | |
virtual void SetIgnoreLookInput | 锁定或解锁查找输入,连续调用堆栈并需求相同数目的调用撤销或者都可以使用ResetIgnoreLookInput.撤销 | |
virtual void SetIgnoreMoveInput | 锁定或解锁移动输入,连续调用堆栈并需求相同数目的调用撤销或者都可以使用撤销ResetIgnoreMoveInput. | |
virtual void SetInitialLocationAndRotation | 重写1 设置控制器的初始位置和旋转以及控制旋转。 通常在控制器首次创建时调用
| |
virtual void SetPawn | 重写12 通常只有在掌管或不掌管一个Pawn在内部调用
| |
void SetPawnFromRep | ||
virtual void StopMovement ( ) | 重写2 中止控制器当前正在执行的移动 | |
virtual void UnPossess ( ) | 重写12 因为任何理由需要解除掌管,除了Pawn被销毁时 那时用PawnDestroyed()处理
| |
virtual void UpdateNavigationComponents ( ) | 如果控制器具有任何与导航相关的组件,那么这个函数使它们更新缓存的数据
声明:这个功能已经被 PathFollowingComponent通过观察新被掌管的Pawn 接管 通过OnNewPawn |
Overrideen from AActor
virtual void Destroyed ( ) | 一旦该actor被删除时调用 | |
virtual void GetActorEyesViewPoint | ||
virtual FString GetHumanReadableName ( ) | 返回代表该对象的字符串(人类可读) | |
virtual void K2_DestroyActor ( ) | 销毁该actor | |
virtual void PostInitializeComponents ( ) | 重写以创建玩家的复制信息并执行其他常规初始化任务 | |
virtual void Reset ( ) | 重置actor到初始化状态,当重启关卡而不重新加载时使用该函数 | |
virtual void TickActor ( float DeltaTime, enum ELevelTick TickType, FActorTickFunction & ThisTickFunction ) | Controller Tick Controllers are never animated, and do not look for an owner to be ticked before them Non-player controllers don't support being an autonomous proxy TickController永远不是动画的,而且不要在非玩家控制器不支持成为一个自治代理 |
Overriden from UObject
virtual void GetLifetimeReplicatedProps | 返回用于网络复制的属性 |
Overriden from INavAgentInterface
virtual void GetMoveGoalReachTest | 获取圆柱体来检查actor是否已经就位 | |
virtual FVector GetNavAgentLocation ( ) | 检索代理的坐标 | |
virtual const FNavAgentProperties & GetNavAgentPropertiesRef ( ) | ||
virtual IPathFollowingAgentInterface * GetPathFollowingAgent ( ) | 检索该NavAgent的代理跟踪路径 | |
virtual bool IsFollowingAPath ( ) | 检查代理是否主动跟踪导航路径 | |
virtual bool ShouldPostponePathUpdates ( ) | 允许延迟重路由请求 |