【GameFramework框架】三、快速启动

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

【GameFramework框架】系列教程目录:
https://blog.csdn.net/q764424567/article/details/135831551

这篇文章就带领大家如何快速启动GameFramework框架。

二、正文

2-1、导入框架

2-1-1、下载方式
  • 官网unitypackage包
    在官网下载unitypackage然后导入到项目中。
    https://gameframework.cn/download/
    在这里插入图片描述

  • 拉取Gitee项目库
    下载Zip或者使用git进行拉取都可以。
    https://gitee.com/jiangyin/GameFramework
    在这里插入图片描述

  • 拉取Github项目库
    东西是一样的,不过一个在Gitee一个在Github
    https://github.com/EllanJiang/GameFramework
    在这里插入图片描述
    比较推荐使用git拉取的方式,防止出现莫名其妙的错误。

不熟悉 git 的用户,可以考虑尝试 GitHub Desktop(由 GitHub 官方提供的工具):
在这里插入图片描述
Clone即可。
在这里插入图片描述

2-1-2、导入

包导入:
在这里插入图片描述

2-2、运行框架

双击打开Example目录下的Example.scene场景:
在这里插入图片描述
GameFramework.prefab 预制体,用于快速创建一个游戏框架启动场景:
在这里插入图片描述
运行项目后发现Game场景有个浮动小窗口,这是框架提供的调试器窗口:
在这里插入图片描述

  • Console 选项卡在运行时(当然可以在移动设备上)默认按不同日志类型,以不同的日志颜色回显最近的日志。点击某条日志可以查看详细的日志和堆栈详请
  • Information 选项卡显示设备硬件信息、游戏版本和资源信息,输入信息,传感器等
  • Profiler 选项卡显示性能调试相关的信息,内存,对象池,网络等信息
  • Other 选项卡可以用来配置调试框窗口的大小缩放(一般不用修改)、执行内存回收操作或者执行重启游戏操作等

当然,每个选项卡,下面还有很多选项,这里不再赘述。

到这里,框架已经算是启动完成 ,但是很多功能点还没有演示。

接下里用一个使用 Game Framework 游戏框架制作的游戏演示项目,来对框架的使用方法做一些说明。

2-3、Star Force演示项目

(1)拉取版本库:
https://github.com/EllanJiang/StarForce
在这里插入图片描述
有小伙伴可能会遇到从Github下载StarForce示例工程编译报错的问题。

根据作者的反馈可能是StarForce在引入游戏框架的时候使用了Submodule:
在这里插入图片描述
直接下载了 GitHub 上提供的 zip 包不包含submodule,进而导致报错。

考虑尝试 GitHub Desktop(由 GitHub 官方提供的工具),此工具在下载工程时,会自动下载 submodule。

(2)运行示例场景
这是一个类似太空射击的游戏,是基于GameFramework框架进行开发。

我们直接打开位于Assets目录下的StarForce Launcher.scene场景,双击打开运行,推荐使用768*1024分辨率:

在这里插入图片描述
示例虽小,麻雀俱全,这个示例工程演示了资源热更新的基本流程和操作步骤,以及如何加载实体、加载UI等。

对象池、数据表、调试器、下载器、事件、FSM都有涉及。

下面就来具体看一下如何加载的吧。

(3)加载分析

加载GF模块

这个场景中的核心是Buliltin预制体,里面包含了GF所有模块:
在这里插入图片描述
Game Framework身上挂载了Game Entry脚本组件作为主入口:
在这里插入图片描述

使用了partial修饰符,标记一个类是分部类,将框架组件加载和自定义组件放到分部类里面进行:
在这里插入图片描述
两个分部类:
在这里插入图片描述
基本流程

GF框架的流程贯穿游戏的始终(包括很多框架都是流程贯穿始终),要了解这个框架也要先从流程开始分析。

首先找到流程模块Procedure,挂载了Procedure脚本组件ProcedureLauch为游戏入口流程:
在这里插入图片描述
双击打开ProcedureLaunch.cs脚本,继承自ProcedureBase,一层层深入,发现它和状态机有着不可分割的关系:
在这里插入图片描述

他们的关系用UML图大概表示一下就是这样:
在这里插入图片描述

众所周知,基层FSM状态机状态的更新会传递到底层的FSM上,一切状态都被FSM持有和维护。

流程的基层的状态切换也会传递到底层的FSM上。
比如说切换场景:
1、OnEnter进入流程,订阅了一些事件,监听切换场景的事件
2、OnUpdate当通知场景加载已经完成,就可以根据需要切换场景。
3、OnLeave离开流程,也需要取消订阅事件

一般流程都会包含这三个生命周期,也可以根据需求增加其他生命周期函数。

OK,理解了FSM生命周期,下面开始加速了。。。

ProcedureLaunch配置游戏基础信息订阅更新在这:
在这里插入图片描述
进入ProcedureSplash判断版本编辑器模式直接进入预加载,否则,检查版本并更新:
在这里插入图片描述
ProcedureCheckVesion检查版本订阅添加WebRequest任务请求的成功与失败事件:
在这里插入图片描述
ProcedurePreload加载开始加载运行游戏需要的资源,三个生命周期:
在这里插入图片描述
在这里插入图片描述
加载完资源,用ProcedureChangeScene切换场景:
在这里插入图片描述
ProcedureMenu游戏流程,ProcedureMenu游戏菜单流程。

下面就是StarForce的流程图了:
在这里插入图片描述

还是那句话,流程贯穿始终,其他模块也是为流程服务的,比如说Web Request、Download、Object Pool

理解了流程,这个框架也算是入门了,接着就是熟悉更多具体的实现模块,完成框架的使用。

三、后记

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏方向简介
Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372028.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python常用pandas函数nlargest / nsmallest及其手动实现

目录 pandas库 Series和DataFrame nlargest和nsmallest 用法示例 代替方法 手动实现 模拟代码 pandas库 是Python中一个非常强大的数据处理库,提供了高效的数据分析方法和数据结构。它特别适用于处理具有关系型数据或带标签数据的情况,同时在时间…

动态库是怎么被加载的?

目录 1.动态库是如何被加载的? 2.那么虚拟地址和物理地址是如何映射的呢? 3.那么动态库的地址怎么来? 1.动态库是如何被加载的? 下面这个就是正常的进程是如何从磁盘中读取信息编译的: 而动态库就存储在共享区段&am…

Android简单支持项目符号的EditText

一、背景及样式效果 因项目需要,需要文本编辑时,支持项目符号(无序列表)尝试了BulletSpan,但不是很理想,并且考虑到影响老版本回显等因素,最终决定自定义一个BulletEditText。 先看效果&…

新春营销不间断,AI 整活更省心

新年、春节历来都是营销的大热节点,各种好物集、年货节、送礼清单比比皆是。这些新鲜玩法的背后是大量的品牌内容「弹药库」。 然而,品牌想在竞争激烈的新春季刷满存在感,并非易事。一方面,节日期间,消费者对于内容的审…

交叉验证之KFold和StratifiedKFold的使用(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

云计算、Docker、K8S问题

1 云计算 云计算作为一种新兴技术,已经在现代社会中得到了广泛应用。它以其高效、灵活和可扩展特性,成为了许多企业和组织在数据处理和存储方面的首选方案。 1.1 什么是云计算?它有哪些特点? 云计算是一种通过网络提供计算资源…

项目02《游戏-06-开发》Unity3D

基于 项目02《游戏-05-开发》Unity3D , 接下来做 背包系统的 存储框架 , 首先了解静态数据 与 动态数据,静态代表不变的数据,比如下图武器Icon, 其中,武器的名称,描述&#xff…

全网第一篇把Nacos配置中心客户端讲明白的

入口 我们依旧拿ConfigExample作为入口 public class ConfigExample {public static void main(String[] args) throws NacosException, InterruptedException {String serverAddr "localhost";String dataId "test";String group "DEFAULT_GROU…

搭建frp

1.frp 是什么? frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网…

解决nvrtc: error: invalid value for --gpu-architecture (-arch)

问题描述 在使用pytorch3d的时候,可以正常的import,但是在执行错误的使用就会报,nvrtc: error: invalid value for --gpu-architecture (-arch),的错误,图片如下: 我的环境是: 显卡&#xff1…

精细管理药厂设备,制药机械设备管理平台系统助力生产提效

制药行业的复杂性要求对药品的品质和安全性进行严格控制,而这离不开高效管理各类机械设备。然而,随着制药企业规模的不断扩大和技术的迅猛进步,如何有效管理这些设备成为一个亟待解决的问题。在这一挑战面前,PreMaint制药机械设备…

Antd+React+react-resizable实现表格拖拽功能

1、先看效果 2、环境准备 "dependencies": {"antd": "^5.4.0","react-resizable": "^3.0.4",},"devDependencies": {"types/react": "^18.0.33","types/react-resizable": "^…

前端面试题——Vue的双向绑定

前言 双向绑定机制是Vue中最重要的机制之一,甚至可以说是Vue框架的根基,它将数据与视图模板相分离,使得数据处理和页面渲染更为高效,同时它也是前端面试题中的常客,接下来让我们来了解什么是双向绑定以及其实现原理。…

Python的包安装工具——pip命令大全

对于大多数使用Python的人来说,一定知道pip这个包安装工具,但是对pip可能还不是很了解,今天作者给大家介绍一下pip的命令,以方便灵活使用pip。 一、pip工具使用方法 pip的语法如下: pip [options] 式中&#xff1a…

InverseMatrix3D

InverseMatrixVT3D: An Efficient Projection Matrix-Based Approach for 3D Occupancy Prediction https://github.com/DanielMing123/InverseMatrixVT3D InverseMatrix3D过程总结如下: 1. 用2D backbone提取N个视角的多尺度图像特征,表示如下&#xf…

机器学习聚类算法

聚类算法是一种无监督学习方法,用于将数据集中的样本划分为多个簇,使得同一簇内的样本相似度较高,而不同簇之间的样本相似度较低。在数据分析中,聚类算法可以帮助我们发现数据的内在结构和规律,从而为进一步的数据分析…

Centos 内存和硬盘占用情况以及top作用

目录 只查看内存使用情况: 内存使用排序取前5个: 硬盘占用情况 定位占用空间最大目录 top查看cpu及内存使用信息 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&…

Python 潮流周刊#38:Django + Next.js 构建全栈项目

△△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,…

protoc结合go完成protocol buffers协议的序列化与反序列化

下载protoc编译器 下载 https://github.com/protocolbuffers/protobuf/releases ps: 根据平台选择需要的编译器,这里选择windows 解压 加入环境变量 安装go专用protoc生成器 https://blog.csdn.net/qq_36940806/article/details/135017748?spm1001.2014.3001.…

canvas图片上设置镂空文字效果

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…