FariyGUI × Cocos Creator 入门

news2024/12/23 8:33:48

前言

程序员向的初探Cocos Creator结和FairyGUI的使用,会比较偏向FairyGUI一点,默认各位读者都熟练掌握Cocos Creator以及js/ts脚本编写。
初探门径,欢迎大佬指教,欢迎在评论区或私信与本人交流,谢谢!

下载和安装

都不需要科学上网,非常友好。

  1. 下载fgui:https://www.fairygui.com/
    在这里插入图片描述
  2. 下载Cocos Creator并安装编辑器:https://www.cocos.com/creator-download

下下来后是一个 Cocos Dashboard,在Dashboard里面可以安装各个版本的Cocos Creator编辑器。
在这里插入图片描述

  1. fgui自带文档:https://www.fairygui.com/docs/editor
    fgui自带demo(虽然没有在文档里直接给出链接,但是在github上搜索fariygui即可搜到)https://github.com/fairygui/FairyGUI-cocoscreator
  2. Cocos Creator自带文档:https://docs.cocos.com/creator/manual/zh/

第一个fgui项目

1. 新建项目

在这里插入图片描述
在指定位置创建一个新的UI项目。

  • 项目名称: 项目名称。可以使用中文,创建后也可以随便修改。
  • 项目位置: 项目位置。注意:请不要使用带中文的路径。
  • 在此位置创建新目录: 如果勾选,将在指定的路径创建名称为项目名称的子目录。如果不勾选,则在指定的路径直接创建项目。
  • 项目类型: UI项目类型,即UI实际运行的平台。不同的平台在显示效果、发布结果上有一定的差别。不过不需要担心这里选择错了项目类型,在项目创建后可以随时调整UI项目类型,操作位置在菜单“文件->项目设置”里。

FairyGUI的项目在文件系统的结构为:

  • assets: 包内容放置目录。
  • package1: 每个包一个目录。目录名就是包名。
  • assets_xx: 分支内容放置目录,xx是分支名称。多个分支则存在多个类似名称的目录。
  • settings: 配置文件放置目录。
  • .objs: 内部数据目录。注意:不要加入版本管理,因为这里的内容是不需要共享的。
  • test.fairy: 项目标识文件。文件名就是项目名称,可以随便修改。

2. 编辑器基础

在这里插入图片描述
编辑器主界面由以下几个部分组成:

  1. 主菜单。在Mac系统里,主菜单和Mac应用程序菜单集成;在Windows系统里,主菜单显示在主界面最上方。
  2. 主工具栏。常用的功能按钮。
  3. 文档视图。包括已打开的文档的列表,侧工具栏和舞台区域。
  4. 状态栏。显示控制台输出的最后一条信息。点击可以打开控制台。
  5. 各个功能视图。用户可以按使用习惯将它们拖动到不同位置,也可以关闭。右键点击面板的标题栏,在右键菜单中选择“关闭”即可。如果要重新打开,在“主菜单->视图”里操作。

多余的描述我就不在这里赘述了,看fgui的官方文档吧,相信各位都很快能够明白每个按钮的意义,不会的查下官方文档,这篇文章只挑和Cocos比较不一样的或需要注意的地方讲。

3. 包

官方文档:https://www.fairygui.com/docs/editor/package

fgui的包的定义和Cocos Creator里的subpackage的定义类似,因此做好包内资源的管理是很重要的。

看一下fgui的demo里分的包:
在这里插入图片描述
在Cocos Creator里显示的样式:

在这里插入图片描述
在BasicsDemo.ts里调用的有关包的加载和卸载:

onLoad() {
    //......
    fgui.UIPackage.loadPackage("UI/Basics", this.onUILoaded.bind(this));
}
onUILoaded() {
    this._view = fgui.UIPackage.createObject("Basics", "Main").asCom;
    //......
}
onDestroy() {
	//......
    fgui.UIPackage.removePackage("Basics");
}

4. 制作第一个组件

新建fgui项目之后,改一下包名和组件的名字,引入一张图片。
在这里插入图片描述
将画布大小改为720*1600(也可以不改,按个人习惯来就好)
在这里插入图片描述
和Cocos Creator不同的是,fgui里锚点默认在左上角,而不是正中心,如果想要锚点在中心,需要设置一下。
同样,这里也是按照自己的习惯来就好,我还是比较习惯锚点在中心一点。
在这里插入图片描述
在这里插入图片描述

将图片放入舞台

在这里插入图片描述
在这里插入图片描述

使用九宫图片

官方文档:https://www.fairygui.com/docs/editor/image
双击图片,进入图片编辑,选择九宫格。
在这里插入图片描述
缩放图片即可看见效果。
在这里插入图片描述

添加文本

在这里插入图片描述

在按钮上添加文本

当我们需要添加一个文本在按钮上时,不能直接这么往上摆,需要让他们有父子关系。观察一下demo里的按钮都是怎么做的:
在这里插入图片描述
button被单独拎出来了,而且上面有一个title文本,我们也照做一个。
点击上方在这里插入图片描述新建一个按钮。
设置尺寸300*100
在这里插入图片描述
将原本的矩形换成我们自定义的图片
在这里插入图片描述
在这里控制显示样式
在这里插入图片描述
在这里插入图片描述
在这里切换按钮状态查看按钮样式
在这里插入图片描述
做好后应该这样
在这里插入图片描述

ctrl+s保存,回到Main
将按钮拖入,改一下位置,保存。
在这里插入图片描述

加一个简单的背景,这个场景就算做完了
在这里插入图片描述

发布

官方文档:https://www.fairygui.com/docs/editor/publish
打开demo的发布设置看一眼,照葫芦画瓢填一下
在这里插入图片描述
在这里插入图片描述
坐等发布
在这里插入图片描述
发布后可以在相应路径看到
在这里插入图片描述

在Cocos里使用

官方文档:https://www.fairygui.com/docs/sdk/creator
新建一个Cocos项目,按如下路径导入资源,并新建一个场景。
这里建议新建一个Cocos 2.4.0的项目,以保证和demo一样。
看demo知道,核心库是fairygui.js,因此我们把它复制粘贴进来。
在这里插入图片描述
新建一个常驻节点,编写一个脚本Main.ts
在这里插入图片描述

const { ccclass, property } = cc._decorator;

@ccclass
export default class Main extends cc.Component {
    private _view: fgui.GComponent;

    onLoad() {
        fgui.GRoot.create();
        fgui.UIPackage.loadPackage("UI/MainPkg", this.onUILoaded.bind(this));
    }

    onUILoaded() {
        fgui.UIPackage.addPackage("UI/MainPkg");
        this._view = fgui.UIPackage.createObject("MainPkg", "Main").asCom;
        this._view.makeFullScreen();
        fgui.GRoot.inst.addChild(this._view);
    }

    onDestroy() {
        this._view.dispose();
    }

}

运行,可以看到界面已经出来了,且没有报错,就是位置有点偏,因为我们没有设widget。
在这里插入图片描述
加了居中之后,我们的画面居中了
在这里插入图片描述
在这里插入图片描述
加了宽高关联之后,可以看到已经铺满了
在这里插入图片描述
在这里插入图片描述

结语

本教程到此结束,本人萌新一枚,由于能搜到的fgui×Cocos Creator的资料很少(大部分都是unity的),特分享学习经验。如有这方面的大佬,欢迎与我讨论技术~
至此,第一个场景以及做好,更多内容,请自行阅读官方提供的demo。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DBSCAN密度聚类介绍 样本点 样本集合 半径 邻域 核心对象 边界点 密度直达 密度可达 密度相连

DBSCAN密度聚类介绍 样本点 样本集合 半径 邻域 核心对象 边界点 密度直达 密度可达 密度相连 简介概念定义原理DBSCAN的优点DBSCAN的缺点小尝试制作不易,感谢三连,谢谢啦 简介 DBSCAN(Density-Based Spatial Clustering of Applications wi…

Codeforces Round 927 (Div. 3)(A,B,C,D,E,F,G)

这场简单些,E题是个推结论的数学题,沾点高精的思想。F是个需要些预处理的DP,G题是用exgcd算边权的堆优化dijkstra。C题有点骗,硬啃很难做。 A Thorns and Coins 题意: 在你的电脑宇宙之旅中,你偶然发现了…

LeetCode 0105.从前序与中序遍历序列构造二叉树:分治(递归)——五彩斑斓的题解(若不是彩色的可以点击原文链接查看)

【LetMeFly】105.从前序与中序遍历序列构造二叉树:分治(递归)——五彩斑斓的题解(若不是彩色的可以点击原文链接查看) 力扣题目链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-a…

java数据类型、运算符

一、数据的表示详解 1.1 整数在计算机中的存储原理 任何数据在计算机中都是以二进制表示的。那这里肯定有人问,什么是二进制啊?所谓二进制其实就是一种数据的表示形式,它的特点是逢2进1。 数据的表示形式除了二进制(逢2进1&…

Https证书续签-acme.sh-腾讯云之DnsPod

ename 域名切换到 DnsPod 上面解析 可以先看下之前的 acme.sh 介绍文章然后再来次补充更多。 之前说过了 acme.sh 在阿里云下的使用。 这里做个后续补充 之前的域名是在 ename 上的 ,为了自动续签切换到 DnsPod 上面解析 注意事项 可以把原来 ename 上的解析先导出…

Android全新UI框架之Jetpack Compose入门基础

Jetpack Compose是什么 如果有跨端开发经验的同学,理解和学习compose可能没有那么大的压力。简单地说,compose可以让Android的原生开发也可以使用类似rn的jsx的语法来开发UI界面。以往,我们开发Android原生页面的时候,通常是在xml…

【八股文面试】Java基础常见面试题总结(上)

Java基础常见面试题总结(上) Java有哪些特性 简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);支持多线程( C 语言没有内置的多…

Springcloud:LiteFlow

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、LiteFlow简介 二、规则编排关键字及语法 1、THEN: 2、WHEN: 3、AND: 4、OR: 5、IF: 6、ELSE&…

手动代码实现神经网络

网络结构 第一层有13个神经元,第二层8个神经元,第三层是输出层;其中第一层的激活函数是relu,第二层是sigmoid 代码实现 # 导入库 import torch import torch.nn as nn from torch.nn import functional as F # 确定数据 torch…

使用IntelliJ IDEA查看接口的全部实现方法

在大型Java项目中,经常会使用接口和抽象类进行代码设计。为了更好地了解代码结构和功能,我们需要快速查看一个接口的所有实现类。IntelliJ IDEA提供了一些方便的方法来实现这一目标。 1. 点击查看接口的实现子类 在IDEA中,你可以轻松地查看…

swagger 内容信息与代码不一致,已解决

ApiModel是Swagger中的常用到的注解,检查下信息错误的实体类的ApiModel的value值是否一致,应该是写错了,是不是张冠李戴了

STM32 TIM2重映射

STM32定时器 文章目录 STM32定时器[TOC](文章目录) 前言一、问题分析二、代码 前言 最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jt…

博途PLC PID仿真(单容水箱液位高度控制)

单容水箱和双荣水箱的微分方程和数值求解,可以参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/131139432https://rxxw-control.blog.csdn.net/article/details/131139432这篇博客我们利用欧拉求解器在PLC里完成单容水箱的数学建模。PLC也可以和MATL…

【笔记】【算法设计与分析 - 北航童咏昕教授】绪论

算法设计与分析 - 北航童咏昕教授 文章目录 算法的定义定义性质 算法的表示自然语言编程语言伪代码 算法的分析算法分析的原则渐近分析 算法的定义 定义 给定计算问题,算法是一系列良定义的计算步骤,逐一执行计算步骤即可得预期的输出。 性质 有穷性确…

运维07:堡垒机

什么是跳板机 跳板机就是一台服务器而已,运维人员在使用管理服务器的时候,必须先连接上跳板机,然后才能去操控内网中的服务器,才能登录到目标设备上进行维护和操作 开发小张 ---> 登录跳板机 ---> 再登录开发服务器 测试…

vue3 用xlsx 解决 excel 低版本office无法打开问题

需求背景解决思路解决效果将json导出为excel将table导为excel导出样式 需求背景 原使用 vue3-json-excel &#xff0c;导致在笔记本office环境下&#xff0c;出现兼容性问题 <vue3-json-excel class"export-btn" :fetch"excelGetList" :fields"js…

Aster实现一台电脑当两台使——副屏搭配键鼠

前言&#xff1a;笔者每年回家&#xff0c;都面临着想要和小伙伴一起玩游戏&#xff0c;但小伙伴没有电脑/只有低配电脑的问题。与此同时&#xff0c;笔者自身的电脑是高配置的电脑&#xff0c;因此笔者想到&#xff0c;能否在自己的电脑上运行游戏&#xff0c;在小伙伴的电脑上…

Code-Audit(代码审计)习题记录

介绍&#xff1a; 自己懒得搭建靶场了&#xff0c;靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习&#xff0c;可以随地访问&#xff0c;本文所有的题目均来源于网站HSCSEC-Code Audit 1、习题一 题目内容如下&#xff1a; 1…

2024pytest自动化测试框架学习(三)

在自动化测试中我们经常会针对某些测试方法编写前置测试数据&#xff0c;当测试方法执行完毕后再清理这些测试数据。之前我们接触的unittest框架中&#xff0c;使用setUp、tearDown方法来解决前置数据、后置数据销毁的问题。pytest为我们提供了更加强大灵活的fixtrue来完成该实…