<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Architecture on DaVinci-13's Blog</title><link>https://davinci-13.github.io/tags/architecture/</link><description>Recent content in Architecture on DaVinci-13's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 22:00:00 +0800</lastBuildDate><atom:link href="https://davinci-13.github.io/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>UE5 C++ 脚本常用父类：生命周期、常用属性/函数/委托速览</title><link>https://davinci-13.github.io/posts/ue5-cpp-common-base-classes-lifecycle/</link><pubDate>Sun, 05 Apr 2026 22:00:00 +0800</pubDate><guid>https://davinci-13.github.io/posts/ue5-cpp-common-base-classes-lifecycle/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;在 UE5 C++ 开发里，“选对父类”几乎决定了脚本的生命周期、可放置位置、初始化时机，以及你能用到哪些系统能力（输入、碰撞、网络复制、UI、动画等）。&lt;/p&gt;
&lt;p&gt;这篇文章按“实战常用频率”整理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;常见父类分别适合做什么。&lt;/li&gt;
&lt;li&gt;每类对象的核心生命周期顺序。&lt;/li&gt;
&lt;li&gt;常用属性、函数和委托（含高频回调）。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：本文聚焦入门和日常开发高频内容，细节会因引擎版本和项目架构（单机/联机）略有差异。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="1-uobject一切反射对象的基础"&gt;1. UObject：一切反射对象的基础&lt;/h2&gt;
&lt;h3 id="适用场景"&gt;适用场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;纯数据对象&lt;/li&gt;
&lt;li&gt;工具类对象&lt;/li&gt;
&lt;li&gt;不需要直接出现在场景中的逻辑对象&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="生命周期要点"&gt;生命周期要点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Constructor&lt;/code&gt;：构造默认值。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PostInitProperties&lt;/code&gt;：属性初始化后调用。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BeginDestroy&lt;/code&gt; / &lt;code&gt;FinishDestroy&lt;/code&gt;：销毁流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用属性函数"&gt;常用属性/函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GetWorld()&lt;/code&gt;：部分上下文可用，不是所有 &lt;code&gt;UObject&lt;/code&gt; 都有有效世界。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GetOuter()&lt;/code&gt;：获取所属外部对象。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IsValid()&lt;/code&gt;（配合对象指针检查）：避免访问失效对象。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常见委托"&gt;常见委托&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;UObject&lt;/code&gt; 本身没有像 Actor 那样丰富的生命周期委托，但可以参与你自定义的动态委托系统。&lt;/p&gt;
&lt;h2 id="2-aactor关卡中最核心的可放置对象"&gt;2. AActor：关卡中最核心的可放置对象&lt;/h2&gt;
&lt;h3 id="适用场景-1"&gt;适用场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;场景实体（可见或不可见）&lt;/li&gt;
&lt;li&gt;可复制的游戏逻辑载体&lt;/li&gt;
&lt;li&gt;挂组件、处理交互、触发器、机关等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="生命周期常见顺序"&gt;生命周期（常见顺序）&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Constructor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OnConstruction&lt;/code&gt;（编辑器放置或属性变更后触发）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PreInitializeComponents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PostInitializeComponents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BeginPlay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tick&lt;/code&gt;（启用时每帧）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;EndPlay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Destroyed&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="常用属性"&gt;常用属性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PrimaryActorTick.bCanEverTick&lt;/code&gt;：是否允许 Tick。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bReplicates&lt;/code&gt;：是否参与网络复制。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NetUpdateFrequency&lt;/code&gt;：网络更新频率。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tags&lt;/code&gt;：对象标签，快速分类检索。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用函数"&gt;常用函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;BeginPlay()&lt;/code&gt; / &lt;code&gt;Tick(float DeltaSeconds)&lt;/code&gt; / &lt;code&gt;EndPlay()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SetActorLocation()&lt;/code&gt; / &lt;code&gt;SetActorRotation()&lt;/code&gt; / &lt;code&gt;SetActorTransform()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Destroy()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HasAuthority()&lt;/code&gt;：联机场景判断服务器权限。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GetComponentsByClass()&lt;/code&gt;：运行时检索组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常见委托-1"&gt;常见委托&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OnActorBeginOverlap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OnActorEndOverlap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OnTakeAnyDamage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OnDestroyed&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-apawn-与-acharacter可控制角色核心"&gt;3. APawn 与 ACharacter：可控制角色核心&lt;/h2&gt;
&lt;h2 id="31-apawn"&gt;3.1 APawn&lt;/h2&gt;
&lt;h3 id="适用场景-2"&gt;适用场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;可被 Controller 控制的对象&lt;/li&gt;
&lt;li&gt;载具、飞行器、棋子等不一定是“人形角色”的可控实体&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="生命周期要点-1"&gt;生命周期要点&lt;/h3&gt;
&lt;p&gt;继承 &lt;code&gt;AActor&lt;/code&gt; 生命周期，同时常见控制链路是：&lt;/p&gt;</description></item></channel></rss>