UE4 面试基础知识(三)

1、如果要在游戏的开始和结束执行某些操作,可以在 UE4 哪儿处理?

如果你是指的一个关卡的开始和结束位置执行某些操作的话,可以创建一个 Actor 专门用于执行 这些事件。开始的操作放在 BeginPlay 中,结束的操作是在 EndPlay 中。BeginPlay 会在关卡开 始时调用,EndPlay 会在关卡切换的时候调用。注意 该 Actor 不能提前调用 Actor 的 EndPlay

  • 如果是还要开始一些的话,就是 LevelActor的Construct() 函数。
  • 如果是还要晚一些的话,就是 LevelActor的BeginPlay() 函数。
  • 再开始一些的话,就是 GameInstance 中的 Init() 函数。

Actor 生命周期
UE4 游戏模块初始化顺序

2、UE4 中,各种字符编码如何转换?

可以通过以下的五个宏来完成字符编码转换。

TCHAR_TO_ANSI(str)
TCHAR_TO_OEM(str)
ANSI_TO_TCHAR(str)
TCHAR_TO_UTF8(str) // TCHAR 转 UTF8
UTF8_TO_TCHAR(str) 
复制代码

字符编码

3、C++ 源文件中的注释在蓝图中显示为乱码,为什么?

需要将 C++ 源文件的文件编码格式改为 UTF-8 格式。

【UE4】C++蓝图节点中文注释乱码解决

4、插件中的 LoadingPhase 是什么?

LoadingPhase 主要用于控制插件在引擎启动的何时被加载。

有三个选项如下:

  • Default 为正常阶段加载该模块。
  • PreDefault 为正常阶段 来加载模块。
  • PostConfigInit 为在引擎开始加载核心的 子系统前 加载该模块。

插件
UE4 插件配置文件参数意义

5、如何切换不同的引擎版本?

  1. 直接在 Epic 商城里面找到 虚幻引擎 选项,进入后,点击启动旁边的那个 下拉符号 ,即可切换版本。
  2. 先找到项目文件夹下的 .uproject 文件,然后 鼠标右键->Switch Unreal Engine version, 切换好版本后,直接打开即可。

打开不同 UE4 版本的工程

6、对于一个团队项目,如何处理 DDC ?

DDC 为 派生数据缓存 。 如果是同一地点的团队或者是小团队,可以设置 共享 DDC 。此为所有团队成员和构建计算机均可 读取/写入的网络驱动器。 如果是大型项目,并希望分发预构建 DDC 数据,则应该生成 DDC pak

派生数据缓存

7、UFUNCTIONUPROPERTY 等宏的作用是什么?

  • UFUNCTION 宏用于将 C++ 函数设置为 UE4 反射系统 可识别的 C++ 函数。其函数说明符可以更改 UE4 解释和使用函数的方式。
  • UPROPERTY 宏则是可以通过定义 属性元数据变量说明符 ,来对属性实现一些 UE 的特定操作。如显示到细节面板。

UFUNCTION/UPROPERTY/UCLASS

8、如何给 AI 增加 playerstate ?

默认情况下,AI 并没有 playerstate ,如果需要,可以在构造函数中增加
bWantsPlayerState = true;

为 AI 增加 playerstate

9、ProjectileComponent 是否同步?若未同步,如何操作?

并不是同步的。需要通过 RPC 进行同步。

【UE4】网游开发中的RPC和OnRep(一)

10、若要更改某个 Actor 中的组件为其派生的组件,如何操作?

不知道我是否理解错误,这个 “其派生的组件” 中的 “其” 是指的 Actor 中的组件。 在一开始将 该父类组件 申明为 指针 ,当要更改时,直接指向其 派生的组件对象 即可。

怎么理解 C++ 多态的 “父类指针或引用指向子类对象” ?


作者:ShaderJoy
链接:https://juejin.cn/post/7078590743677239310
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(UE4引擎架构,ue4,面试,职场和发展)