1)DLL混淆問題
2)Unity主程如何做項目管理
3)將ASTC格式轉換為png格式
4)iOS 14在iPhone正常付燥,但在iPad上會卡住
這是第276篇UWA技術知識分享的推送绑雄。今天我們繼續(xù)為大家精選了若干和開發(fā)航夺、優(yōu)化相關的問題,建議閱讀時間10分鐘腥光,認真讀完必有收獲关顷。
UWA 問答社區(qū):answer.uwa4d.com
UWA QQ群2:793972859(原群已滿員)
Scripting
Q:如果不用收費軟件和加固,我們自己使用免費軟件柴我,如何對DLL進行混淆解寝。
注:之前是用Microsoft.NET/Framework64/v3.5/csc進行打DLL扩然,但是今天我回顧一下發(fā)現(xiàn)艘儒,DLL并沒有混淆。
A1:若在Unity上使用夫偶,可以參考開源的方案:Unity Obfuscator Demo
簡介
這是一款基于Mono.Cecil庫界睁,對C#編譯后程序集進行IL代碼注入實現(xiàn)的輕量Unity混淆插件,混淆發(fā)生在編譯后兵拢,開發(fā)過程無需關心翻斟。此插件已在帶Lua熱更方案的商業(yè)MMO手游項目上驗證過可行性。
主要功能
對命名空間说铃、類访惜、屬性和字段的命名混淆
插入垃圾代碼
在原代碼中插入對垃圾代碼的調(diào)用
特色功能
命名混淆支持隨機字符串或從詞庫抽取名字
支持隨機種子,可實現(xiàn)重復Build后混淆結果一致
支持黑白名單腻扇,排除部分在混淆后不能正常工作的代碼债热,確保項目正常運行
混淆后輸出混淆前后的名字對應關系文件
支持多DLL
感謝馬三小伙兒@UWA問答社區(qū)提供了回答
A2:可以看一下AssetStore上的插件,我之前有個項目也用過:
https://assetstore.unity.com/packages/tools/utilities/obfuscator-free-89420
免費版基本上可用:
https://assetstore.unity.com/packages/tools/utilities/obfuscator-48919
收費版支持IL2CPP幼苛,支持程序集定義文件窒篱。
感謝蕭小俊@UWA問答社區(qū)提供了回答,歡迎大家轉至社區(qū)交流:
https://answer.uwa4d.com/question/61922be9d8413e18eb14a43f
Unity
Q:Unity主程如何做項目管理?比如資源管理墙杯、代碼管理和工程管理配并。可以從多個維度討論下嗎高镐?
A1:資源還是比較簡單的溉旋,首先按照功能或者需求進行文件夾分類,資源的格式可以寫一些AssetPostprocessor的代碼來強制轉換嫉髓,整個工程的資源管理自動化低滩。
開發(fā)的人員比較多,又對代碼質(zhì)量有一定要求岩喷,可以考慮用Git恕沫,不要用SVN,主程負責Review所有PR的代碼纱意,然后定期進行UT和BVT婶溯。
工程管理也可以依賴于Git的Tag和Branch來管理,盡量保證每個版本都是ZBB偷霉。
主程要做的事情還是蠻多的迄委,簡單寫了一下,歡迎大家來討論类少。
感謝蕭小俊@UWA問答社區(qū)提供了回答
A2:身為一個合格的主程叙身,我覺得應該具備以下素質(zhì):
1.首先是技術方面,就當獨當一面硫狞,一馬當先信轿。
強大的技術支撐是要具備的,這里其實也可以細分残吩,一個是專業(yè)性和廣度财忽。先提升某一方面的專業(yè)度,同時了解學習新技術泣侮,在不同領域的知識要有相對的了解即彪。
2.再之就是管理方面,抓主線活尊,控支流隶校。
應該有好的項目框架∮济蹋框架是為了更好的迭代和規(guī)范項目深胳。一切都是為了開發(fā)跟成品服務的。所以不管代碼規(guī)范宁仔,資源管理稠屠,甚至是使用習慣峦睡,都要遵循簡單易用,通俗易懂為原則权埠。比如開發(fā)了一個工具榨了,功能非常強大,但是沒人會使用它攘蔽。那意義就大打折扣了龙屉。
技術上沒有捷徑,全靠努力跟積累满俗。管理上需要自己思維上變通转捕,多做嘗試。但是有一點我覺得要注意唆垃,不能什么都面面俱到五芝,主程是要把控大方向的,不能什么都要干預辕万,適當放手枢步,要培養(yǎng)人,不是帶人渐尿。這樣團隊才有創(chuàng)新力醉途,團隊成員才會有成就感。而不是個人成就砖茸。管理是門大學問隘擎,不像技術可以有固定的學習思路。需要自己不斷探索凉夯,才會有自己的風格和魅力货葬。
感謝廖武興@UWA問答社區(qū)提供了回答,歡迎大家轉至社區(qū)交流:
https://answer.uwa4d.com/question/61947fe3d8413e18eb17e003
Texture
Q:.astc類文件如何轉換為.png文件恍涂,Windows操作系統(tǒng)宝惰。
A:ARM提供了壓縮ASTC和解壓的工具。
對應命令:
壓縮:astcenc-sse2.exe -cl origin.png example.astc 6x6 -medium
解壓:astcenc-sse2.exe -dh example.astc example.png
可以參考:https://github.com/ARM-software/astc-encoder
感謝范世青@UWA問答社區(qū)提供了回答再沧,歡迎大家轉至社區(qū)交流:
https://answer.uwa4d.com/question/61925149d8413e18eb14e0cb
iOS
Q:在iOS上遇到了一個比較棘手的問題,我們的游戲在iPhone上能正常跑尊残,但是在iPad上會卡在進入主城的加載界面中炒瘸,具體的表現(xiàn)是這樣的:
1. 測試的iPad型號,2臺A12處理器寝衫,1臺M1處理器
2. iOS版本顷扩,全部都是iOS 14.8
3. 結果:
其中一臺iPad A12處理能夠正常運行,其余兩臺IPad都在加載中卡住慰毅。
4. 出錯的表現(xiàn)為:在進入加載界面之后隘截,會卡住在界面,但其實CPU邏輯是在跑,只是GPU因為渲染錯誤導致無法更新的畫面信息婶芭,主要依據(jù)是在xCode Capture的時候东臀,是能夠正常看到主界面的已經(jīng)在渲染犀农,點擊到相應的屏幕位置惰赋,Caputure也能看到UI能正常響應,只要退出Capture繼續(xù)運行呵哨,還會回到加載界面赁濒。
5. 報錯的Log:
Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)
不知道大家有沒有遇到過類似的問題,或者說有沒有什么建議孟害,謝謝拒炎!
A:可以參考梅辰寫的《解決iOS GPU報錯導致游戲卡死IOAF code 4》
感謝馬古斯@UWA問答社區(qū)提供了回答,歡迎大家轉至社區(qū)交流:
https://answer.uwa4d.com/question/6193beedd8413e18eb16cbdf
20211122
更多精彩問題等你回答~
Unity增量打包AssetBundle沒變化的資源也會被重新打包
在模型有UV2的情況下開啟Generate Lightmap UVs
封面圖來源于:Unity Obfuscator Demo
Unity代碼混淆插件使用demo挨务。
https://lab.uwa4d.com/lab/5e94d57e0f247485d923d7d2
今天的分享就到這里枝冀。當然,生有涯而知無涯耘子。在漫漫的開發(fā)周期中果漾,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網(wǎng)站上準備了更多的技術話題等你一起來探索和分享谷誓。歡迎熱愛進步的你加入绒障,也許你的方法恰能解別人的燃眉之急;而他山之“石”捍歪,也能攻你之“玉”户辱。
官網(wǎng):www.uwa4d.com
官方技術博客:blog.uwa4d.com
官方問答社區(qū):answer.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ群:793972859(原群已滿員)