FariyGUI × Cocos Creator 入門

前言

程序員向的初探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/
  3. 本文對應demo:https://gitcode.net/qq_36286039/fgui_cocos_240 (這是我的個人倉庫,還是推薦看官方的)

第一個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.pswp.cn/news/696660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696660.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統安裝zookeeper

Linux安裝zookeeper 安裝zookeeper之前需要安裝jdk,確認jdk環境沒問題之后再開始安裝zookeeper 下載zookeeper壓縮包,官方下載地址:Apache Download Mirrors 將zookeeper壓縮包拷貝到Linux并解壓 # (-C 路徑)可以解壓到指定路徑 tar -zxv…

dubbo源碼中設計模式——負載均衡中模版模式的應用

模版模式介紹 在模板模式(Template Pattern)中,一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但調用將以抽象類中定義的方式進行。這種類型的設計模式屬于行為型模式。 使用場景:定…

Lua內存管理策略

傳統的內存管理策略主要分為兩種:引用計數,和垃圾回收。相比后者每一段時間執行一次回收周期,前者是對于每一個變量都維護被引用數的策略。對于Lua這種輕量化語言而言,占據大內存的開銷是極力避免的,而前者的方式顯然是…

singularity build用法詳解,及實例

singularity build 命令是 Singularity 中非常重要的一個功能,它允許用戶從定義文件、現有的 Singularity 容器或者其他容器平臺(如 Docker)的鏡像來構建一個新的 Singularity 容器。這個命令主要用于創建定制化的容器環境,以適應特定的應用和需求。 命令格式 singularit…

JDBC的DBUtil 和 xxxDAO 示例

DBUtil package common;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class DBUtil {// 需要封裝…

C語言運用中斷子系統用驅動控制led實驗,c語言串口led點燈實驗(驅動+應用層)

中斷子系統用驅動控制led實驗 驅動代碼 #include <linux/init.h> #include <linux/module.h>#include<linux/interrupt.h> #include<linux/gpio.h> #include<linux/timer.h>#include<linux/of.h> #include<linux/of_irq.h> #inclu…

GB/T 17640-2023 長絲機織土工布檢測

長絲機織土工布是指以合成纖維長絲為原料織制而成的土工布&#xff0c;按纖維品種分為滌綸、丙綸、錦綸 等長絲機織土工布&#xff1b;按用途分為反濾布、復合用基布、管袋布、模袋布等。 GB/T 17640-2023 長絲機織土工布測試項目&#xff1a; 測試要求 測試標準 經向抗拉強…

實現律所高質量發展-Alpha法律智能操作系統

律師行業本質上屬于服務行業&#xff0c;而律師團隊作為一個獨立的服務單位&#xff0c;應當包含研發、市場、銷售、服務等單位發展的基礎工作環節。但現實中&#xff0c;很多律師團隊其實并沒有區分這些工作。鑒于此&#xff0c;上海市錦天城律師事務所醫藥大健康行業資本市場…

【備忘】幾個特殊的注冊表路徑

記錄幾個有用的注冊表路徑。防止用到忘記了。&#xff08;非教程篇&#xff09; 計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start 計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\WindowsLogon\HideFastUserSwitching 虛擬桌…

【SQL注入】靶場SQLI DUMB SERIES-26空格和注釋被過濾

26題提示所有的空格和注釋都會被過濾掉 輸入?id0判斷閉合方式&#xff0c;回顯報錯可以確定閉合方式為單引號 正常思路是需要通過注釋符將后面的語句注釋掉&#xff0c;但是這一關的注釋符被過濾了&#xff0c;可以考慮使用將后面的語句也閉合的思路來避免引號帶來的報錯。輸…

【區塊鏈技術——智能合約——以太坊平臺——金融交易】

引言 在如今這個高度數字化的世界中&#xff0c;金融交易趨向于使用更加先進的技術來減少交易成本&#xff0c;提高效率。區塊鏈技術的出現作為一場革命&#xff0c;尤其是其衍生技術——智能合約&#xff0c;為金融交易帶來諸多新機遇。本文將以最廣泛使用的區塊鏈平臺——以…

【leetcode】記憶化搜索

記憶化搜索 一、斐波那契數1、題目描述2、代碼3、解析 二、不同路徑1、題目描述2、代碼3、解析 三、最長遞增子序列1、題目描述2、代碼3、解析 四、猜數字大小II1、題目描述2、代碼3、解析 五、矩陣中的最長遞增路徑1、題目描述2、代碼3、解析 一、斐波那契數 1、題目描述 le…

【java】小學生數學練習題目生成系統

本文章主要是CSDN-問答板塊&#xff0c;有題主提出的問題&#xff0c;我這邊將完整代碼提供出來&#xff0c;僅供大家參考學習&#xff01; 一、效果截圖 二、直接上代碼 package com.example.dingtalk.question;import javax.script.ScriptEngine; import javax.script.Scrip…

PHP實踐:Laravel中事件使用講解

&#x1f3c6;作者簡介&#xff0c;黑夜開發者&#xff0c;CSDN領軍人物&#xff0c;全棧領域優質創作者?&#xff0c;CSDN博客專家&#xff0c;阿里云社區專家博主&#xff0c;2023年6月CSDN上海賽道top4。 &#x1f3c6;數年電商行業從業經驗&#xff0c;歷任核心研發工程師…

kafka生產者

1.原理 2.普通異步發送 引入pom&#xff1a; <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.0.0</version></dependency><dependency><g…

“errcode“:40163,“errmsg“:“code been used

{"errcode":40163,"errmsg":"code been used, rid: 65d6fa01-6ae8fecc-3a2f4bf8"} 通過微信靜默授權方式&#xff0c;獲得當前微信用戶 openid 時&#xff0c;重復使用 code 造成的。 不是騰訊的問題&#xff0c;自己的代碼邏輯沒有遵循騰訊請…

2024022202-查詢優化

查詢優化 概述 關系系統和關系模型是兩個密切相關而有不同的概念。支持關系模型的數據庫管理系統稱為關系系統。但是關系模型中并非每一部分都是同等重要的&#xff0c;所以我們不苛求完全支持關系模型的系統才能稱為關系系統。因此&#xff0c;我們給出一個關系系統的最小要求…

excel數據處理——一列數據轉換為n列多行

按行抽取 如果只希望保留第一行的標題&#xff0c;然后將其他奇數行刪除&#xff0c;可以選擇一個空白列&#xff0c;為不同的行賦值&#xff0c;函數為“mod(row(),2)”&#xff1b; 這個是0,1 數列&#xff0c;如果是0,1&#xff0c;2就是“mod(row(),3)”。 行列轉換 復制…

【學習總結】慢SQL治理經驗總結

一、慢SQL定義 執行超過1s的SQL為慢SQL 三、慢SQl的風險 系統的響應時間延遲&#xff0c;影響用戶體驗 資源占用增加&#xff0c;增高了系統的負載&#xff0c;其他請求響應時間也可能會收到影響。 慢SQL占用數據庫連接的時間長,如果有大量慢SQL查詢同時執行&#xff0c;可能…

Waline評論服務端轉移至Deta

舊文首發地址 問題 前陣子評論系統又掛了&#xff0c;原因是*.vercel.app域名被污染。 解決方法 法一&#xff1a;服務端換個域名 法二&#xff1a;換個服務端部署 我選法二。 步驟 DETA官網&#xff1a;https://www.deta.sh/ Deta is free for ever. 這句話很不錯有木有…