导读:本文主要阐述了如何在团结引擎中导出鸿蒙工程,以及游戏侧与端侧通信的范例。
软件版本及环境
Tuanjie Hub:1.1.6
Tuanjie Editor:1.2.1 | 1.2.0
鸿蒙版本:HarmonyOS NEXT Beata1 (NEXT.0.0.26) | API 12
OpenHarmony:5.0.0.25(Beta1)
DevEco Studio:5.0.3.403
环境:Windows 10
团结引擎编安装辑器
选择1.2.1版本并勾选OpenHarmony Build Support
创建游戏工程
创建并绑定游戏控件
这部分我对unity是小白所以记录下,总体感觉和QT、Android原生开发差不多,抽象出来就是;创建layout > 添加控件 > 绑定控件 > 绑定事件
创建Canvas
创建GameObject
创建游戏控件
创建MyBehaviourScript
MyBehaviourScript是什么,有什么用?
使用VS Code打开UnityHarmony游戏工程,创建的MyBehaviourScript内容如下。
#Path: Assets\MyBehaviourScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBehaviourScript : MonoBehaviour
{
*// Start is called before the first frame update*
void Start()
{
}
*// Update is called once per frame*
void Update()
{
}
}
MyBehaviourScript 继承自MonoBehaviour,所以问题变成了"MonoBehaviour是什么,有什么用?"。
From Kimi: Unity中的MonoBehaviour类是Unity中所有行为脚本的基类。
MonoBehaviour是Unity中一个非常重要的类,它允许开发者编写脚本来控制游戏对象的行为。以下是MonoBehaviour的一些常见用途:
- 生命周期方法:MonoBehaviour提供了一系列的生命周期方法,如Start(), Update(), FixedUpdate(), LateUpdate(), OnEnable(), OnDisable(),
OnDestroy()等,开发者可以在这些方法中编写代码来响应游戏对象的不同生命周期事件。- 事件处理:MonoBehaviour可以用于处理各种事件,比如用户输入、碰撞检测、动画事件等。
- 游戏逻辑:开发者可以通过继承MonoBehaviour并重写其方法来实现游戏逻辑,比如移动、跳跃、攻击等。
- 组件交互:MonoBehaviour可以访问和控制附加到同一游戏对象上的其他组件,比如Renderer, Collider, Rigidbody等。
- 数据持久化:MonoBehaviour支持序列化,这意味着你可以在脚本中定义变量,Unity会在编辑器中显示这些变量,并允许你保存和加载它们的值。
- 协程支持:MonoBehaviour支持使用协程(Coroutines),这使得你可以编写非阻塞的代码来处理需要时间的操作,比如等待某个事件或动画完成。
绑定控件
在MyBehaviourScript中声明控件变量,并绑定事件。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MyBehaviourScript : MonoBehaviour
{
// 声明控件变量
public Button toastBtn, initSDKBtn, loginBtn, payBtn, doActionBtn, getDataBtn;
public InputField actionCodeInputField, actionDataInputField, actionResultInputField, getDataKeyInputField, getDataValueInputField, getDataResultInputField;
// Awake 初始化绑定控件,设置点击监听事件
void Awake()
{
Debug.Log("当前Unity版本: " + Application.unityVersion);
doActionBtn.onClick.AddListener(doAction);
getDataBtn.onClick.AddListener(getData);
toastBtn.onClick.AddListener(showToastRegister);
initSDKBtn.onClick.AddListener(initSDK);
loginBtn.onClick.AddListener(login);
payBtn.onClick.AddListener(pay);
Debug.Log("Unity 初始化游戏控件完成");
}
// Start is called before the f