UE5 基础应用 —— 09 - 展示类小项目

发布于:2025-09-09 ⋅ 阅读:(32) ⋅ 点赞:(0)

一、展示类小项目

1.1 基本设置
1.1.1 准备工作

因为是展示类项目,项目设置中要做如下调整。

我们可以根据需求选择是否勾选 Nanite。它的核心作用就是:

  • 能够实时渲染 极高面数的模型(数百万甚至上亿个多边形)。

  • 自动根据屏幕空间做 LOD(Level of Detail)管理,开发者不需要再手动制作多级 LOD。

  • 提高效率:即使模型面数超高,也能保证性能,因为 Nanite 只渲染屏幕上真正可见的部分。

创建后期处理体积,勾选 Infinite Extent,【全局光照】/【反射】- 勾选 Lumen。

1.1.2 GameMode 设置

1.1.3 控制角色移动(键盘)

因为 Pawn 蓝图类没有 Character Movement 组件,所以无法像之前 Character 蓝图类一样简单的使用 Add Movement Input 节点,下面只介绍最简单的方法啦。

1.1.4 控制角色移动(鼠标)

原理同上。

鼠标中键按下时,Axis Value 为 1,这里就只介绍最简单的方法啦:

1.1.5 控制镜头旋转

因为我们还想做复位功能,所以我们就不用 Add Controller *** Input 节点了。

1.1.6 控制镜头缩放

我们使用蓝图自带的 Mouse Wheel Axis 节点,鼠标滚轮向前 / 后滑动会生成不同的值,以此来控制弹簧臂的长度。

但经测试缩放效果不太平滑,所以我们使用下面的方法。

FInterp To 节点可以理解为:每帧把当前值往目标值“靠一点儿”,返回新的当前值。

其中,每帧移动的量等于 [(Target - Current) × Clamp(DeltaTime * InterpSpeed, 0,1) ]

因为每帧都按剩余差值的一定比例移动,整个过程看起来像指数衰减(越接近目标移动越慢),所以很平滑、不突兀。

1.2 UI 设计
1.2.1 按钮模板

将想要调整的属性 创建变量并设置为可编辑实例。同时,这里我把这四个变量的类别设置为 info,目的是左边变量这一栏看起来更清晰。

【重点】也就是说我们在创建按钮时,想把某个属性设置为 可编辑实例 生成时公开,没必要想那么多弯弯绕,只需要创建变量然后勾选 可编辑实例 生成时公开即可。

然后我们就可以在 MainWidget 中设计不同的按钮啦,这里我们还使用了 Spacer 控件。

1.2.2 设计顶部按钮功能

按钮一 —— 设置菜单

按钮二 —— 复位

按钮三 —— 退出游戏

按钮四 —— 功能栏

最后进行调用即可。

1.2.3 设计右部菜单

重新回顾一下我们以前的知识,这里我使用循环的方式动态创建。

同时播放我们创建的动画(创建动画过程略)。

1.2.4 设计右部按钮功能

按钮一 —— 视频播放

首先创建材质。

将材质赋予图片。

让 WBP_Media 创建时播放视频,且能控制视频播放暂停。这里我们使用的 鼠标进入/离开函数 是在 函数重载 里面的。

同时还要播放声音,Media Sound 组件添加到哪里都行,这里我添加到 BP_Pawn 中。

最后在 WBP_Button 中创建按钮点击函数,创建 WBP_Media 并添加到视口。

1.3 游戏开始前小动画

【编辑】-【项目设置】-【项目】-【影片】- 将想要播放的影片进行导入。

二、移动端(待完善)

1.1 控制 ** 旋转

经测试,虽然 Camera 是 Pawn 的子级,但 Camera 并不会随着 Pawn 的旋转而旋转(和移动不同),貌似 Camera 旋转有自己的函数。

使用 Set Actor Rotation 节点。

  • 移动端的 X 轴即左右旋转,对应 Yaw
  • 移动端的 Y 轴即上下旋转,对应 Pitch

使用 Add Actor Local Rotation 节点。

【个人理解】如果我们想让 Actor 旋转,首先我们要在角色蓝图中获取 Actor 的引用(什么时候我们应该获取呢?可以在 BP_Actor 中凭借点击事件间接赋予)。然后通过合法性判断,如果是Actor,就走物体旋转逻辑。如果不是,就走镜头旋转逻辑。PC 端和移动端我觉得大差不差。


网站公告

今日签到

点亮在社区的每一天
去签到