1)使用后處理Alpha通道丟失的問題
2)ParticleSystem的Trail Material為空時(shí)運(yùn)行會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)材質(zhì)
3)C#使用中文進(jìn)行枚舉時(shí), 是否會(huì)產(chǎn)生性能相關(guān)的問題
4)C#腳本存在未引用的命名空間,打包報(bào)錯(cuò)提示命名空間不存在UnityEditor
這是第275篇UWA技術(shù)知識(shí)分享的推送潜沦。今天我們繼續(xù)為大家精選了若干和開發(fā)歹河、優(yōu)化相關(guān)的問題重窟,建議閱讀時(shí)間10分鐘施绎,認(rèn)真讀完必有收獲酝静。
UWA 問答社區(qū):answer.uwa4d.com
UWA QQ群2:793972859(原群已滿員)
Rendering
Q:我們項(xiàng)目有一個(gè)模型相機(jī)投射到RT上辩棒,然后放在RawImage上狼忱,現(xiàn)在這個(gè)相機(jī)需要開啟后處理Post Processing。只針對角色添加的Tone Mapping和Bloom效果一睁,問題是開啟后钻弄,RawImage背景變黑了,把UI背景圖遮住了者吁,應(yīng)該是需要讓持有RT的RawImage做混合窘俺,網(wǎng)上看了一堆混合的公式,都無法完成混合砚偶,背景混合對了批销,模型混合就不對,整個(gè)模型被混合的發(fā)黑染坯。請問有相關(guān)的解決方案嗎均芽?
應(yīng)該是開啟Post Processing后模型相機(jī)的SolidColor的Alpha值就無效了。把相機(jī)的背景色也加到了RenderTexture里单鹿。
A1:解決方法:UberPost: //return half4(color, 1.0); return half4(color, SAMPLE_TEXTURE2D_X(_SourceTex, sampler_LinearClamp, uv).a);
感謝題主ZJS@UWA問答社區(qū)提供了回答
A2:我在非URP項(xiàng)目試了一下掀宋,也存在上述的SolidColor的透明通道會(huì)無效的問題。從下圖FrameDebugger中,可以看到:Copystd.shader的輸入是一張Alpha不全為1的圖(除了模型處的a為1劲妙,其它背景處a都為0)湃鹊,但是輸出圖的Alpha全部為1,通過查詢源碼镣奋,確定不是Shader的問題币呵,而是輸出的targetRT(_TargetPool0)的格式(B10G11R11)決定了它不包含Alpha信息,所以輸出圖永遠(yuǎn)不會(huì)有透明通道的信息侨颈。
我的解決方法很簡單余赢,就是用自己寫的Shader。效果如下哈垢,其中紅棕色是UIImage背景妻柒,膠囊體是目標(biāo)模型≡欧郑總結(jié)一點(diǎn)就是举塔,一個(gè)后處理Shader只要在確保原有功能的基礎(chǔ)上仍能保持原圖的Alpha信息不變,理論上就是可以的求泰。
感謝孟@UWA問答社區(qū)提供了回答央渣,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/6189ef43d8413e18eb09b3b5
Rendering
Q:Particle的Trail Material為空時(shí)運(yùn)行會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)材質(zhì),請問有什么方法解決拜秧?
A1:可以排查下有沒有類似操作痹屹,有Material的get操作就會(huì)變成實(shí)例化的材質(zhì)球。
感謝小ben@UWA問答社區(qū)提供了回答
A2:在2020.3.16版本沒有發(fā)現(xiàn)這個(gè)問題枉氮,不知道用的是什么Unity版本志衍?在2020.3.16版本不勾選Trails模塊,就不會(huì)有Trail Material聊替。
感謝范世青@UWA問答社區(qū)提供了回答楼肪,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/618b8a48d8413e18eb0bef92
Scripting
Q:項(xiàng)目使用C#語言開發(fā),戰(zhàn)斗模塊使用了大量的中文枚舉惹悄,不知道是否會(huì)產(chǎn)生什么風(fēng)險(xiǎn)問題春叫,查閱了部分資料也沒有結(jié)果。
A1:雨松之前提過一個(gè)方案加屬性來實(shí)現(xiàn)可以編輯器上顯示中文泣港,代碼中仍然用英文暂殖,網(wǎng)上能搜到。
感謝Knight-132872@UWA問答社區(qū)提供了回答
A2:可參考:《Unity3D研究院之多語言用中文做KEY(七十五)》
感謝Xuan@UWA問答社區(qū)提供了回答当纱,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/618a6ca6d8413e18eb0a75d2
Scripting
Q:【打包】C#腳本存在未引用的命名空間呛每,打包報(bào)錯(cuò)了提示命名空間不存在UnityEditor。引用到Editor命名空間的腳本(即使未使用)坡氯,也未放到Editor文件夾下時(shí)晨横,會(huì)引發(fā)打包報(bào)錯(cuò)問題洋腮。
A1:UnityEditor這個(gè)庫只能在Editor下運(yùn)行,是打包不出去的手形。我看你也沒有引用到啥供,直接刪除即可。
感謝蕭小俊@UWA問答社區(qū)提供了回答
A2:如果是Editor上專用的建議放到Editor文件夾里库糠,如果運(yùn)行時(shí)也需要可以加UNITY_EDITOR宏來隔絕伙狐。
感謝Knight-132872@UWA問答社區(qū)提供了回答,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/618c82e5d8413e18eb0d29e2
20211115
更多精彩問題等你回答~
Unity增量打包AssetBundle沒變化的資源也會(huì)被重新打包
在模型有UV2的情況下開啟Generate Lightmap UVs
封面圖來源于:Awesome Unity Shader
關(guān)于炫酷的Unity3D Shader曼玩。
https://lab.uwa4d.com/lab/5b563be1d7f10a201fd8beeb
今天的分享就到這里鳞骤。當(dāng)然,生有涯而知無涯黍判。在漫漫的開發(fā)周期中,您看到的這些問題也許都只是冰山一角篙梢,我們早已在UWA問答網(wǎng)站上準(zhǔn)備了更多的技術(shù)話題等你一起來探索和分享顷帖。歡迎熱愛進(jìn)步的你加入,也許你的方法恰能解別人的燃眉之急渤滞;而他山之“石”贬墩,也能攻你之“玉”。
官網(wǎng):www.uwa4d.com
官方技術(shù)博客:blog.uwa4d.com
官方問答社區(qū):answer.uwa4d.com
UWA學(xué)堂:edu.uwa4d.com
官方技術(shù)QQ群:793972859(原群已滿員)