GameFramework实战二(UI的创建与打开)

下载新的工程

为了更加方便的使用gameframework的相关功能,我们先去下载
新的工程
注意我们下载的时候不要用zip下载,用clone的方式。

假设我们已经下载完毕

我们的目录结构是这样的:
请添加图片描述
我们可以点击自带的场景先玩一玩,这个项目就是金典的飞机游戏,我们实战的最后的目标就是复现这个

新建我们的目录

我们新建一个文件夹(NewGameMain),创建一个新的场景(NewStarForce)
目录如图所示:
请添加图片描述
这一章我们只会用到ui的相关知识
我们在NewGameMain中创建两个文件夹请添加图片描述
我们打开NewStarForce场景
将GameFramework中的预制体拖入
并在UI组件中加入一个Canvas(命名为UI Instance)
目录如图所示:
请添加图片描述

点击UI组件,添加InstanceRoot请添加图片描述
添加UIGroups
请添加图片描述

下一步,我们来搭建我们的UI
我们新建一个场景Test请添加图片描述
我们就做一个最简单的开始界面
我们在Test场景中创建一个Canvas,在创建一个空物体叫做StartGameForm
请添加图片描述
我们在这个空物体创建一个背景两个按钮
目录结构如图:
请添加图片描述
效果如图:
请添加图片描述

下一步我们将StartGameForm拖进NewGameMain/UI/ 里面做成预制体

下面我们开始写脚本:
我们在NewGameMain/Scripts中创建两个脚本
ProcedureStartGame.cs
StartGameForm.cs

代码(ProcedureStartGame.cs):

using GameFramework.Procedure;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;

namespace NewStarForce
{
    public class ProcedureStartGame : ProcedureBase
    {
        

        protected override void OnEnter(ProcedureOwner procedureOwner)
        {
            base.OnEnter(procedureOwner);

            GameEntry.GetComponent<UIComponent>().OpenUIForm("Assets/NewGameMain/UI/StartGameForm.prefab", "Normal");
        }

    }
}

代码(StartGameForm.cs):

//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------

using UnityEngine;
using UnityGameFramework.Runtime;

namespace NewStarForce
{
    public class StartGameForm : UIFormLogic
    {
        protected override void OnInit(object userData)
        {
            RectTransform transform = GetComponent<RectTransform>();
            transform.anchorMin = Vector2.zero;
            transform.anchorMax = Vector2.one;
            transform.anchoredPosition = Vector2.zero;
            transform.sizeDelta = Vector2.zero;
        }


        protected override void OnRecycle()
        {
            
        }

        protected override void OnOpen(object userData)
        {
            
        }

        protected override void OnClose(bool isShutdown, object userData)
        {
            
        }

        protected override void OnPause()
        {
            
        }

        protected override void OnResume()
        {
            
        }

        protected override void OnCover()
        {
            
        }

        protected override void OnReveal()
        {
            
        }

        protected override void OnRefocus(object userData)
        {
            
        }

        protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
        {
            
        }

        protected override void OnDepthChanged(int uiGroupDepth, int depthInUIGroup)
        {
            
        }
    }
}

代码写完我们开始配置一些东西;
首先我们将StartGameForm.cs脚本挂载到StartGameForm上(注意挂载到预制体上,不要挂载到Test场景的那个)
然后我们切换切换到NewStarForce场景
点击Procedure,配置如图所示:
请添加图片描述

点击UI,配置如图所示:
请添加图片描述
调试完毕时候我们即可运行:
运行结果:
请添加图片描述

一个UI的打开流程大概就这么多

我们来总结一下(对于一个空项目):
1.首先创建创建游戏场景,设置UI配置(UIGroup,UIGroupHelper),
2.创建测试场景,搭建UI界面,保存成预制体
3.创建流程用来打开UI界面(GameEntry.GetComponent().OpenUIForm(“Assets/NewGameMain/UI/StartGameForm.prefab”, “Normal”);)
4.调整Procedure配置
5.运行成功。

如果我们还想继续创建更多的UI界面
1.利用测试场景,搭建UI界面,保存成预制体
2.GameEntry.GetComponent().OpenUIForm(“Assets/NewGameMain/UI/StartGameForm.prefab”, “Normal”);//用这个函数打开ui
3.修改流程
4.运行

UI的关闭

我会在实战三中和Event一起使用

下期预告

GameFramework实战三(UI的关闭与Event事件系统)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值