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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【工具向】分析FGUI依赖关系工具

發(fā)布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【工具向】分析FGUI依赖关系工具 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

資源地址?

核心思路

代碼邏輯核心

后續(xù)擴展


正確拿到真實的依賴啦,因為所有都有一個唯一id,包含package和所有組件 圖片 字體等資源都有唯一id,應(yīng)該用package.xml得到所有包體的依賴關(guān)系后,去遍歷全部xxx.xml里的所有節(jié)點 是否有 ui://xxxx這種 或 src=xxx 這種去知道它的依賴包。?

資源地址?

鏈接: https://pan.baidu.com/s/145as33i0KQ9f6HAfxuEUYw?pwd=pty8

提取碼: pty8
2022年8月6日更新:
在FGUI工程里輸出一個excel文件,內(nèi)容類似

?以下是舊的已經(jīng)沒有了 但是可以看看 就是這種的擴展板

處理依賴關(guān)系錯亂問題(比如公共資源引用其他非公共資源)

輸出包名 資源xml 依賴url? 依賴包名

上圖就是ModalWaiting包 有一個資源叫GlobalModelWaiting的家伙 去依賴了另一個叫Model的包里面的ui://qef31w6wujncf(這是一個資源唯一ID碼 能直接用這個字符串去搜索出對應(yīng)的資源)

你可以新增邏輯,比如忽略公共包的輸出,Common 只需要判斷依賴包是"Common" 就不要寫入allStr輸出字符串就行了。

比如:

核心思路

FGUI概念:
包ID:packageId 每一個Package的唯一ID
組件ID:comId? FGUI每一個組件(UI、Button..)的唯一ID
資源ID:url 第一種形式:包ID(8位長度字符串)+組件ID第二種形式:包名/資源名
FGUI都是以"ui://資源ID"來準(zhǔn)確搜索出資源。

代碼邏輯核心

1、分析每一個包的package.xml,它內(nèi)部有包id和所有組件id,獲取到<packageId, packageName>字典,主要用來通過包ID來獲取包名。【里面還有個字典沒用到】

2、分析每一個包里面的資源xml文件(排除package.xml),使用遞歸形式分析xml每一個標(biāo)簽【<xxx id='xx' src='xx' pkg='xxx' icon='ui://xxx'>】
2.1 獲取標(biāo)簽內(nèi)兩個特殊的屬性,src屬性和pkg屬性,src屬性是依賴資源的組件ID,pkg屬性是依賴資源的所在包ID。pkg屬性是只有依賴其他包(非自身)才會存在。
2.2 獲取標(biāo)簽內(nèi)全部屬性,遍歷每一個屬性,以'|'符號進行分割屬性內(nèi)容,再分析分割出來的string[],判斷string的內(nèi)容存在"ui://"以這5個字符為前綴的,若有取出"ui://"字符后續(xù)的字符串【即content.SubString(5, content.Length-5)這個截取到的字符串就是資源ID(url)。
因為資源ID分兩種形式,首先第一種形式:? 包ID+組件ID的,我們要取它的前8位獲取到packageId(包ID),關(guān)鍵點來了,因為第一步驟里我們拿到了<packageId, packageName>字典,所以我們這里要判斷下是不是拿到的是第一種形式的包ID,而不是第二種形式的【包名/資源名】,判斷方法是直接判斷截取到的packageId是否存在字典中,如果存在則說明是第一種形式,否則第二種,代碼會對第二種形式做相應(yīng)的處理。
總之,我們會處理url得到一個字符串【資源包名|資源xml名稱|依賴資源url|依賴資源所在包名】,每一個標(biāo)簽如果都有上面2.1和2.2的情況都會誕生出一個這樣的字符串,放入到一個sumStr里以\n換行。
后續(xù)則是簡單的輸出到Excel表(sample.xlsx)

代碼要改的只有前面的地方,把fgui工程和輸出excel路徑修改成你的。

后續(xù)擴展:

因為分析工具基本都可以拿到資源ID(url)、組件ID、包ID,而每一個包的package.xml文件里也會記錄有包ID、組件ID(資源ID是由包ID+組件ID構(gòu)成的),并且package.xml里還有很多內(nèi)容,比如:資源相對路徑,后續(xù)可以弄出來<url, 資源相對路徑>字典,通過上面2.1和2.2得到的資源ID(url) 去獲取到資源的相對路徑,從而去拿到依賴資源的xml文件信息,去進一步分析依賴資源本身的情況(比如,資源大小、紋理尺寸等等)

總結(jié)

以上是生活随笔為你收集整理的【工具向】分析FGUI依赖关系工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。