FairyGUI × Cocos Creator 3.x 场景切换

前言

前文提要:
FariyGUI × Cocos Creator 入门
FairyGUI × Cocos Creator 3.x 使用方式

个人demo:https://gitcode.net/qq_36286039/fgui_cocos_demo_dust

个人demo可能会更新其他代码,还请读者阅读本文内容,自行理解并实现。

官方demo:https://github.com/fairygui/FairyGUI-cocoscreator/tree/ccc3.0

场景切换

阅读一下FairyGUI官方给的Cocos Creator 3.x 的 demo,可以看见它是怎么场景切换的。

  1. 场景里挂一个常驻节点
    在这里插入图片描述
  2. 挂上一个脚本Entry.ts
import * as cc from 'cc';
const { ccclass, property } = cc._decorator;
import * as fgui from "fairygui-cc";
import Main from './Main';


@ccclass
export default class Entry extends cc.Component {

    private _currentDemo: cc.Component = null!;

    onLoad() {
        fgui.GRoot.create();
        this.node.on("scene_replace", this._onDemoStart, this);
        this.addComponent(Main);
    }

    private _onDemoStart(demoStr: string) {
        let demo: cc.Component = this.addComponent(demoStr)!;
        this._currentDemo = demo;
    }

    start() {

    }
}

这一行代码帮助我们先切换到第一个场景:

this.addComponent(Main);
  1. 在Main.ts的onload里加载fgui界面:
	public onLoad() {
        cc.assetManager.loadBundle("UI", (err, res) => {
            fgui.UIPackage.loadPackage(res, "MainPkg", this._onUILoaded.bind(this));
        });
	}

    private _onUILoaded() {
        this._view = fgui.UIPackage.createObject("MainPkg", "Main").asCom;
        this._view.makeFullScreen();
        fgui.GRoot.inst.addChild(this._view);
        this.StartBtn = this._view.getChild("StartBtn");
        this._initBtnEvents();
    }

其中MainPkg对应fgui中的包名,Main对应包内的组件名,这些代码观察demo即可。

  1. 在Main中切换场景
private _onStartGame() {
    this.node.emit("scene_replace", "Game");
    this.destroy();
}

这段代码帮我们从Main脚本切换到Game脚本

  1. Game.ts脚本的onLoad
    public onLoad() {
        let UIBundle = null;
        cc.assetManager.loadBundle("UI", (err, res) => {
            UIBundle = res;
            fgui.UIPackage.loadPackage(UIBundle, "GamePkg", this._onUILoaded.bind(this));
        });
    }

    private _onUILoaded(err, pkg) {
        this._view = fgui.UIPackage.createObject("GamePkg", "Game").asCom;
        this._view.makeFullScreen();
        fgui.GRoot.inst.addChild(this._view);
        this.BackBtn = this._view.getChild("BackBtn");
        this.BackBtn.on(cc.Node.EventType.TOUCH_END, this._onClickBack, this);
    }
  1. 从Game返回到Main
    private _onClickBack(evt: Event): void {
        fgui.GRoot.inst.removeChildren(0, -1, true);
        this.node.emit("scene_replace", "Main");
        this.destroy();
    }

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

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

相关文章

模版(初级)

一.泛型编程 当我们要写一个交换函数时,面对不同的类型,我们可能就需要向如下这么写: void Swap(int& left, int& right) {int temp left;left right;right temp; }void Swap(double& left, double& right) {double tem…

【linux】常见指令 -通配符,数据管道,重定向,压缩打包...

目录 前言 基本指令 ls命令 常见选项 ​编辑 pwd命令 cd 指令 常见选项 touch指令 mkdir指令 常见选项 rm 指令 常见选项 man指令 cp指令 常用选项: mv指令 常用选项 nano指令 如何写入且执行文件? cat指令 常用选项 more指令…

RPA超级自动化、AIGC大模型、低代码、流程挖掘四大热门峰会火热报名中!

由企智未来科技(RPA中国、LowCode低码时代、AIGC开放社区)主办的第四届「ISIG中国产业智能大会」将于2024年3月16日在上海召开,本届主题为“与科技共赢,与产业共进”。在此次大会中,我们将设立RPA超自动化、低代码/零代…

【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示

学习《OpenCV应用开发:入门、进阶与工程化实践》一书 做真正的OpenCV开发者,从入门到入职,一步到位! OpenCV开发痛点 传统图像算法开发最好的开源解决方案是OpenCV视觉库,但是OpenCV中收录了2000的传统算法&#xf…

鸿蒙 渲染控制

前提:基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌) 1.概念 ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了…

Linux笔记--硬链接与软链接

一、硬链接 1.inode和block 文件包含两部分数据:文件属性和实际内容,属性放在inode中,实际内容放在data block中。还有个超级区块(superblock)记录整个文件系统的整体信息,包括inode和block的总量&#x…

基于huggingface加载openai/clip-vit-large-patch14-336视觉模型demo

文章目录 引言一、模型加载二、huggingface梯度更新使用三、图像处理四、模型推理五、整体代码总结 引言 本文介绍如何使用huggingface加载视觉模型openai/clip-vit-large-patch14-336,我之所以记录此方法源于现有大模型基本采用huggingface库来加载视觉模型和大语…

【办公类-22-10】周计划系列(5-2)“周计划-02源文件docx读取5天“ (2024年调整版本)

背景需求 承接上文,继续制作周计划 【办公类-22-09】周计划系列(5-1)“周计划-01源文件统一名称“ (2024年调整版本)-CSDN博客文章浏览阅读76次。【办公类-22-09】周计划系列(5-1)“周计划-01…

LabVIEW燃料电池船舶电力推进监控系统

LabVIEW燃料电池船舶电力推进监控系统 随着全球经济一体化的推进,航运业的发展显得尤为重要,大约80%的世界贸易依靠海上运输实现。传统的船舶推进系统主要依赖于柴油机,这不仅耗能高,而且排放严重,对资源和环境的影响…

2.25 day5 QT

闹钟 .h代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTime> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJ…

【Linux操作系统】死锁 | 预防、避免死锁

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…

Codeforces Round 881 (Div. 3) F2. Omsk Metro (hard version)(倍增+最大子段和)

原题链接&#xff1a;F2. Omsk Metro (hard version) 题目大意&#xff1a; 最初开始时&#xff0c;你有一个根节点 1 1 1 且权值为 1 1 1 。 接下来会有 n n n 个操作&#xff0c;每次操作按照如下格式给出&#xff1a; 设操作开始前节点总数为 c n t cnt cnt&#xff1…

小型内衣裤洗衣机哪个牌子好?四大顶尖内衣洗衣机测评分享

要知道&#xff0c;内衣裤可能会残留我们身体分泌的尿液&#xff0c;或者是没有擦干净的便便&#xff0c;以及其他的一些分泌物&#xff0c;据科学家研究发现&#xff0c;内衣裤是含有很多细菌和病毒的地方&#xff0c;如果将内衣裤和衣服放在一起洗&#xff0c;导致这些细菌附…

golang学习1,dea的golang-1.22.0

参考&#xff1a;使用IDEA配置GO的开发环境备忘录-CSDN博客 1.下载All releases - The Go Programming Language (google.cn) 2.直接next 3.window环境变量配置 4.idea的go插件安装 5.新建go项目找不到jdk解决 https://blog.csdn.net/ouyang111222/article/details/1361657…

MySQL数据库集群技术主从复制 一主一从详细讲解

集群技术 集群概述 MySQL复制技术 集群目的 负载均衡 解决高并发 高可用HA 服务可用性 远程灾备 数据有效性 类型 一主一从 一主双从 双主双从 原理 概念 在主库上把数据更改&#xff08;DDL DML DCL&#xff09;记录到二进制日志&#xff08;Binary Log&#xff09;中…

AngularJS安装版本问题

一、安装 Angular CLI 脚手架安装命令&#xff1a; npm install -g angular/cli 在安装前请确保自己安装NodeJS环境版本为V18及以上&#xff0c;否则会因node版本问题导致项目无法正常运行。 脚手架安装后&#xff0c;已提示了当前node版本必须为18.13.0或大于20.9.0版本&…

Linux网卡安装好后自启动

Linux系统配置网卡Wifi博客 https://developer.aliyun.com/article/704878 1、插入网卡iwconfig&#xff0c;查看id是wlxec607385c827 2、创建一个脚本文件 创建一个脚本文件&#xff0c;比如 /usr/local/bin/start_wifi.sh&#xff0c;并添加以下内容&#xff0c;id请根据自…

多维时序 | Matlab实现GRU-MATT门控循环单元融合多头注意力多变量时间序列预测模型

多维时序 | Matlab实现GRU-MATT门控循环单元融合多头注意力多变量时间序列预测模型 目录 多维时序 | Matlab实现GRU-MATT门控循环单元融合多头注意力多变量时间序列预测模型预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.多维时序 | Matlab实现GRU-MATT门控循环单元融…

【Java核心能力】为什么不建议在高并发场景下使用 synchronized?

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

关注国外开源技术文档的中文版的朋友进来看一下

是否还在为技术文档全是英文而烦恼&#xff1f; 是否还在为国外网站访问慢甚至需要翻墙才能查看上面的文档而烦恼&#xff1f; 是否还在为翻译文档晦涩难懂、无法和作者交流而烦恼&#xff1f; 我创建了一个分享技术文档的网站&#xff0c;还在逐步完善&#xff0c;小伙…