0
A
回答
4
爲了優化渲染,當兩個相同的對象使用相同的材料或網狀物,它實際上是所使用的相同的實例。簡單來說,你的兩隻鯨魚正在使用相同的材料。這是爲了保存繪製調用。
所以當你改變它時,它都會改變。
解決方案是複製材料並將其分配給其中的一個。現在你可以改變一個而不影響另一個。你還添加了一個額外的平局。
3
作爲複製材料的另一種解決方案(可以防止兩個鯨魚的配料!),您可以使用MaterialPropertyBlock
s。
它們通常很容易使用。在新腳本中,您創建一個MaterialPropertyBlock,將顏色設置爲您想要對象的顏色,並將MaterialPropertyBlock分配給對象的渲染器。
MaterialPropertyBlock.SetColor()有一個工作示例,雖然不需要繪製調用(這是一個過度設計的示例)。這足以:
Start() {
MaterialPropertyBlock mpb = new MaterialPropertyBlock();
mpb.SetColor("_MainColor", new Color(1,0,0));
gameObject.GetComponent<MeshRenderer>().SetPropertyBlock(mpb);
}
結果:
這最終被從長遠來看更有效率,因爲你可以做一些與着色器很複雜的事情,有充分的對象使用相同的單一材質,但它們都有各自獨特的外觀,並且渲染速度不會受到影響。 硬件部分正在找出你想調整的着色器中的屬性名稱。
當然,結果只有在播放模式下運行時纔會顯示(除非您使用[ExecuteInEditMode]
標記類別)。
相關問題
- 1. 負載的.FBX使用Unity
- 2. 從Blender導出Fbx到Unity
- 3. XNA 4:導入FBX問題
- 4. XNA和FBX着色問題
- 5. FBX的Unity 5 Assetbundle - 模型縮減
- 6. 如何在Unity中碰撞.fbx動畫
- 7. 3D FBX文件導入到Unity預期
- 8. Unity FBX遍歷每個對象
- 9. Unity新手問題
- 10. Unity預製問題
- 11. Unity - Android問題JAR包含問題
- 12. Facebook Unity SDK登錄問題
- 13. Unity中WaitForSeconds()的問題
- 14. Unity容器配置問題
- 15. Unity滑動功能問題
- 16. LogCat with Unity Android問題
- 17. Unity中的繼承問題
- 18. ubuntu/unity焦點問題
- 19. Unity中的縮放問題
- 20. Unity的像素問題
- 21. Unity 5.3 onClick參數問題
- 22. Unity Render.TransparentGeometry性能問題
- 23. Facebook UNITY SDK登錄問題
- 24. Unity android 2d運動問題
- 25. Unity - 無限生成問題
- 26. Microsoft Unity-解決問題
- 27. c#Unity跳轉問題
- 28. Unity - Gui按鈕問題(Android)
- 29. Unity Framework內存問題
- 30. Unity,加電碰撞問題
這是一個非常簡潔的方式,我沒有遇到過。 – Everts
@Everts哦,是的,它超級整潔。 – Draco18s