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

举报
HelloWorld杰少 发表于 2022/07/30 15:31:00 2022/07/30
【摘要】 前言电子游戏对大家来说应该是熟悉的不能再熟悉的东西了,现在游戏已经慢慢的成为了大家生活中不可或缺的伙伴,而说到游戏大家聚在一起讨论的可能就是这个游戏的画质如何,游戏的故事情节如何,以及动画的效果如何等等话题,但是大家了解一款游戏它是怎么被开发出来的吗?那就必须要用到游戏引擎了,当然今天的文章不是来给大家介绍如何开发一款游戏引擎,因为毕竟我也没这个能力去开发(菜鸡一枚),所以我今天就简单用几...

前言

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

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

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

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

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

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

ARK:Survival Evolved

image

image

image

image

堡垒之夜

image

image

Dauntless

image

Phoenix Point

image

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

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

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

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

image

2. 选择 Blank 模板

image

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

image

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

image

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

image

image

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

image

image

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

image

image

image

image

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

image

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

#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();
};
#include "MyUserWidget.h"

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

10. 编译下 UE 工程

image

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

image

image

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

image

image

image

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

image

image

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

image

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

image

最后

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

请你喝杯 ☕️ 点赞 + 关注哦~

  1. 阅读完记得给我点个赞哦,有👍 有动力

  2. 关注公众号— HelloWorld杰少,第一时间推送新姿势

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。