信创国产化替换如何推动企业自主创新与市场竞争力提升
753
2022-08-24
iOS 手游开发之实现 UE4 按钮事件响应
前言
电子游戏对大家来说应该是熟悉的不能再熟悉的东西了,现在游戏已经慢慢的成为了大家生活中不可或缺的伙伴,而说到游戏大家聚在一起讨论的可能就是这个游戏的画质如何,游戏的故事情节如何,以及动画的效果如何等等话题,但是大家了解一款游戏它是怎么被开发出来的吗?
那就必须要用到游戏引擎了,当然今天的文章不是来给大家介绍如何开发一款游戏引擎,因为毕竟我也没这个能力去开发(菜鸡一枚),所以我今天就简单用几句话来聊一下。
我记得我大学那会,流行网页游戏,那时候外面的公司都是用 AS 来开发游戏,用的是 Flash 来渲染游戏;后来等到我大学毕业, 手游行业开始兴起,各大游戏公司都开始用 Cocos2d-x 开发移动端手游,但是没过多久 Unity3D 异军突起,大家又开始投奔到 U3D 的怀抱;现在,UE4 又凭借其强大的功能在游戏开发者界大出风头,吸引了大量游戏开发者的目光。
所以本篇文章主要是围绕 UE4 来展开的,先简单的了解一下它吧!
虚幻引擎是什么?我简单的摘抄了一段来自维基百科得介绍: 虚幻引擎(英语:Unreal Engine)是一款由Epic Games开发的游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计,但现在已经被成功地应用于开发潜行类游戏、格斗游戏、角色扮演游戏等多种不同类型的游戏。
先瞥一眼使用虚幻4开发得热门游戏(Epic Games 首页上得图,并不是广告):
ARK:Survival Evolved
堡垒之夜
Dauntless
Phoenix Point
从游戏截图得效果来看,使用 UE4 开发得游戏,游戏画面都非常得精美,这也使得很多得游戏开发团队转向使用 UE4 来开发,其原因也是得力于 UE 它自身提供给开发者功能强大而且上手方便的开发工具。虽然使用 UE 开发的游戏都是些大型的游戏,但 UE 也跟 unity3D 一样支持跨平台,相信在不久的以后,更多的手游会使用 UE 来制作。
好了,简单的废话了几句,接下来我们开始进入正题。如何去实现一个界面上按钮的响应事件。
先说下我的开发环境:我的引擎版本为 4.24.1,开发环境为 MacOSX
1. 新建一个 UE4 工程,选择游戏
2. 选择 Blank 模板
3. 选择 C++ 项目(推荐),输入项目名称,创建项目
4. 创建成功后, 会自动创建一个 Xcode 工程,后面我们会讲到
5. 在 UE 工程中,打开"内容浏览器",新增一个 C++ 类 "MyUserWidget", Xcode 工程也会同步到这个类
6. 在 "选择父类" 面板中, 勾选"显示所有类", 并通过搜索找到 UserWidget 并创建
8. 在 控件蓝图 面板中选中 "类设置",在左侧的父类下拉列表中选择我们刚才创建的 C++ 类 "MyUserWidget"
#pragma#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 工程
11. 回到我们的蓝图控件中,选择 "图表", 拖动箭头,通过搜索找到我们的函数 "callStartFunction"
12. 打开关卡蓝图,拖动 "事件BeginPlay" 的箭头,在弹出的框中找到 "用户界面-->创建控件",
13. 选择之前创建的用户界面类 "HelloUE", 并将之 "Add to Viewport"
最后
本篇的文章比较简单,大家按照我的流程操作,就能简单的实现按钮的事件响应。 本篇的内容到这里就结束了,下篇文章的内容我会带来 UE4 如何与 iOS 原生系统进行数据交互。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~