UE4 开发之实现按钮事件响应

2022-08-04 13:56:35 浏览数 (1)

前言

电子游戏对大家来说应该是熟悉的不能再熟悉的东西了,现在游戏已经慢慢的成为了大家生活中不可或缺的伙伴,而说到游戏大家聚在一起讨论的可能就是这个游戏的画质如何,游戏的故事情节如何,以及动画的效果如何等等话题,但是大家了解一款游戏它是怎么被开发出来的吗?

那就必须要用到游戏引擎了,当然今天的文章不是来给大家介绍如何开发一款游戏引擎,因为毕竟我也没这个能力去开发(菜鸡一枚),所以我今天就简单用几句话来聊一下。

我记得上大学那会,流行网页游戏,那时候游戏公司都是用 AS 来开发游戏,用 Flash 来渲染游戏;后来等到我大学毕业, 手游行业开始兴起,各大游戏公司都开始用 Cocos2d-x 开发移动端手游,但是没过多久 Unity3D 异军突起,大家又开始投奔到 U3D 的怀抱;现在,UE4 又凭借其强大的功能在游戏开发者界大出风头,吸引了大量游戏开发者的目光。

所以本篇文章主要是围绕 UE4 来展开的,先简单的了解一下它吧!

虚幻引擎是什么?我简单的摘抄了一段来自维基百科得介绍:虚幻引擎(英语:Unreal Engine)是一款由Epic Games开发的游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计,但现在已经被成功地应用于开发潜行类游戏、格斗游戏、角色扮演游戏等多种不同类型的游戏。

先瞥一眼使用虚幻4开发得热门游戏(Epic Games 首页上得图,并不是广告):

ARK:Survival Evolved

堡垒之夜

Dauntless

Phoenix Point

从游戏截图得效果来看,使用 UE4 开发得游戏,游戏画面都非常得精美,这也使得很多得游戏开发团队转向使用 UE4 来开发,其原因也是得力于 UE4 它自身提供给开发者强大而且上手方便的开发工具。虽然使用 UE4 开发的游戏都是些大型的游戏,但 UE4 也跟 Unity3D 一样支持跨平台,相信在不久的以后,更多的手游会使用 UE4 来制作。

好了,简单的废话了几句,接下来我们开始进入正题。如何用 UE4 去实现一个界面上按钮的响应事件。

先说下我的开发环境:我的引擎版本为 4.24.1,开发环境为 MacOSX

1. 新建一个 UE4 工程,选择游戏

2. 选择 Blank 模板

3. 选择 C 项目(推荐),输入项目名称,创建项目

4. 创建成功后, 会自动创建一个 Xcode 工程,后面我们会讲到

5. 在 UE 工程中,打开"内容浏览器",新增一个 C 类 "MyUserWidget", Xcode 工程也会同步到这个类

6. 在 "选择父类" 面板中, 勾选"显示所有类", 并通过搜索找到 UserWidget 并创建

控件蓝图"-名称自定义为-"HelloUE",创建好后在左侧选择-Button-和-Text-控件,拖动到面板上,选中按钮控件,并将右侧面板滚动到最下面,找到事件中的-"On-Clicked"-点击绿色的加号为该按钮添加事件">7. 在 "内容浏览器" 中新建 "用户界面-->控件蓝图" 名称自定义为 "HelloUE",创建好后在左侧选择 Button 和 Text 控件,拖动到面板上,选中按钮控件,并将右侧面板滚动到最下面,找到事件中的 "On Clicked" 点击绿色的加号为该按钮添加事件

8. 在 控件蓝图 面板中选中 "类设置",在左侧的父类下拉列表中选择我们刚才创建的 C 类 "MyUserWidget"

9. 打开 Xcode 工程,在 "MyUserWidget" 类中声明并实现我们要在 UE4 中调用的函数 "callStartFunction()"

代码语言:javascript复制
#pragma once

#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "MyUserWidget.generated.h"

/**
 * 
 */
UCLASS()
class HELLOUE_API UMyUserWidget : public UUserWidget
{
    GENERATED_BODY()

    UFUNCTION(BlueprintCallable)
    void callStartFunction();
};
代码语言:javascript复制
#include "MyUserWidget.h"

void UMyUserWidget::callStartFunction()
{
    FPlatformMisc::MessageBoxExt(EAppMsgType::Ok, TEXT("start"), TEXT("callStartFunction"));
}

10. 编译下 UE 工程

11. 回到我们的蓝图控件中,选择 "图表", 拖动箭头,通过搜索找到我们的函数 "callStartFunction"

创建控件",">12. 打开关卡蓝图,拖动 "事件BeginPlay" 的箭头,在弹出的框中找到 "用户界面-->创建控件",

13. 选择之前创建的用户界面类 "HelloUE", 并将之 "Add to Viewport"

14. 点击 "播放" 按钮, 我们带按钮控件的用户界面就创建出来了

15. 点击按钮,并弹出对话框,表示按钮事件响应成功

最后

本篇的文章比较简单,大家按照我的流程操作,就能简单的实现按钮的事件响应。 此篇的内容到这里就结束了,下篇文章的内容我会带来 UE4 如何与 iOS 原生系统进行数据交互。

0 人点赞