日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

FGUI系统分析

發布時間:2023/12/9 windows 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FGUI系统分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 一、FGUI簡介
全稱FairyGUI,是一個開源的UI編輯器,支持多個游戲引擎的獨立插件。 整個插件最大 最突出的特點:所見即所得。
官方教程:https://www.fairygui.com/docs/editor/index

二、FGUI和UGUI對比后的差異

優勢
1.操作簡易,使用習慣與Adobe系列軟件保持一致,美術和策劃都可以輕松上手。能夠編輯器進行簡單的測試 。
2.界面拼接制作和界面邏輯解耦,策劃與美術參與到UI的制作中, 并且貫穿整個游戲開發的全程,實現UI脫離程序。
策劃參與UGUI制作遇到的問題:UGUI的節點是由父子關系的, 而且程序在寫邏輯代碼的時候大概率會依賴于這個UI結構。所以需要策劃先去學習Unity的UGUI的層級的概念, 而且還有一些復雜的結構,一般情況在策劃制作完成UI之后,程序可能都需要簡單的修改修改,而且策劃同時還要管理Unity的UI的UI的合理規劃,所以對于策劃來說技術門檻有點高。目前UGUI的UI邏輯是lua依靠find寫的。FGUI沒有層級的概念,通過名字索引,同名編輯器有提示。
性能方面,FGUI性能優于UGUI,UGUI的層級越多越復雜DrawCall 越高,重繪的時候性能消耗越高。
3. FGUI的資源管理比較方便。劃分好包就好規劃。

  • 多語言解決方案。
  • 瑕疵
    1.程序門檻增高
    FGUI有自己的一套寫法,已經會UGUI了,比較難接受這種全新的寫法,對UGUI再封裝的那種插件接受度會更高一點。如果使用FGUI,我們目前的UGUI框架要重新搭建。
    2.不是很適合多人開發,可以進行輕量模塊化開發。詳情可以了解包的定義。
    3.像機是投影模式。沒有透視模式。無法單獨實現3D效果。
    4.相關文檔很少,幾乎只有官方文檔。和市面上的UGUI文檔根本沒得比。

    三、FGUI編輯器核心功能簡介
    編輯器布局
    ?

    1.元件(類似于UGUI的組件)
    FGUI中最小的粒度單位。每個舞臺中的組成元素我們稱之為元件,如:圖片、動畫、裝載器、文本、組、組件、滾動條、列表等
    在舞臺上選中任意一個元件,右邊的屬性欄出現共同的屬性設置面板有:
    ?
    2.組、組件
    組:(類似于UGUI的節點)。分為普通組和高級組,普通組只起輔助管理元件的作用,程序無法通過代碼找到。高級組能導出,程序能找到。
    組件:(類似于UGUI的預制體)。組件是FairyGUI中的一個基礎容器。組件可以包含一個或多個基礎顯示對象,也可以包含組件。

    3.包
    1).FairyGUI是以包為單位組織資源的。包在文件系統中體現為一個目錄。assets目錄下每個子目錄都表示一個包。包內的每個資源都有一個是否導出的屬性,一個包只能使用其他包設置為已導出的資源,而不設置為導出的資源是不可訪問的。同時,只有設置為導出的組件才可以使用代碼動態創建。
    2).FairyGUI是不處理包之間的依賴關系的。例如,在Unity實際使用過程中,如果B包導出了一個元件B1,而A包的A1元件使用了元件B1,那么在創建A1之前,必須保證B包已經被載入,否則A1里的B1不能正確顯示(但不會影響程序正常運行)。這個載入需要由開發者手動調用,FairyGUI不會自動載入。
    3).劃分包,有一個原則,就是不要建立交叉的引用關系。例如避免A包使用B包的資源,B包使用C包的資源這類情況。一般都建立一個或多個公共包,把整個項目需要頻繁使用到的資源放在這里,把一些基礎組件,例如按鈕、滾動條等也放到這里。其他包需要使用時直接從公共包拖入就可以了。除了公共包,其他包相互之間盡量不發生引用關系。
    4).圖片資源盡量不要太分散,不同包的圖片是不能打在同一張紋理集上的
    5).每個包里都有一個package.xml文件,它是包的數據庫文件。如果這個文件被破壞,那么包的內容將無法讀取。在多人協作的情況下,如果在拉取package.xml時出現沖突,請先處理好沖突,再在編輯器內刷新包。
    有點類似于操作Unity的預制體。

    ?4.裝載器
    裝載器的用途是動態載入資源。如果圖片不加裝載器是不給修改和點擊的!
    URL指向的資源可以是圖片、動畫或者組件。
    ?
    5.關聯系統
    關聯系統是FairyGUI實現自動布局的核心技術。類似于UGUI的錨點系統。
    UGUI的錨點系統是有層級關系。
    FGUI的關聯系統是可以指定關聯任意元件
    ?
    6. 控制器
    控制器是FairyGUI核心功能之一。它為UI制作中以下類似需求提供了支持:
    1)分頁:一個組件可以由多個頁面組成。
    2)按鈕狀態:顯示隱藏等
    3)屬性變化:位移旋轉等
    ?

    ?

    還可以結合下面的分支實現一些有意思的功能:如多語言版本解決方案。
    (詳情看分支)

    7.分支
    分支功能用于實現項目的多態設計,例如多國語言版本下UI的差別,又例如多個渠道版本下UI的差別。
    分支的用途是對主干進行部分修改。我們都是首先在主干上開發,然后在項目的任何階段,都可以建立任意多個分支。注意,它和代碼倉庫中的分支概念不一樣。UI分支不包含主干的資源,它只放置與主干有差別的內容。
    在編輯器內,分支就和包里的一個普通的文件夾沒有任何區別,你可以向這個文件夾添加資源,也可以從其他地方移入或者粘貼資源,沒有任何限制。按照分支的機制,分支和主干的資源只要路徑和名稱完全一致,他們就會自動建立一個映射關系。

    UGUI多語言方案:
    1).各種語言版本建立完全獨立的工程
    2).通過代碼或者配置文件進行運行時調整
    搭配控制器一起使用實現多語言多版本解決方案。

    8.多國語言
    對UI多國語言的支持,FairyGUI提供了這樣一種方案:把界面上的所有文字導出到一個文件,然后把這個文件提交翻譯,運行時動態載入翻譯好的文件,由SDK完成界面文字的替換。
    也就是說,FairyGUI的方案是先拼界面,再翻譯;

    9.發布,導入與導出
    FGUI的包發布之后會產生兩類文件:一個描述文件(二進制文件)和一張或多張紋理集。
    可以將部分資源導出為一個資源包,也可以導入資源包。

    ?
    分支發布處理方式有兩種:
    1.合并發布
    2.只發布選中的分支。主干和分支分開。

    四、Unity 上使用FGUI
    1.手動設置,
    在Hierarchy面板,右鍵,選FairyGUI,點UIPanel,可以實例化一個UIPanel出來。
    左邊選擇的是我們的包名,右邊是包里包含的每一個資源(FGUI里面的組件)。

    ?
    ?2.代碼動態生成??

    總結

    以上是生活随笔為你收集整理的FGUI系统分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。