hi,all。最近比較忙,所以更新也比較慢了。
今天就來和大家分享一個小Tip,它是關于UGUI的坑的。
使用過UGUI的朋友們都知道,Canvas的渲染方式有三種:
- Screen Space Overlay
- Screen Space Camera
- World Space
其中后兩者都需要指定一個Camera,Screen Space Camera對應的是Render Camera;
World Space對應的是Event Camera。
(這里要吐槽的一點就是,Screen Space Camera模式下如果沒有分配Render Camera的話至少還會有一個警告。但是到了World Space這里竟然沒有。)
如果查看UGUI的代碼的話,各位就會發現如果在World Space模式下沒有給EventCamera賦值,Canvas并不會因此而接收不到消息,相反它會訪問Camera.Main指定的相機。
而Camera.Main并非對主相機的引用,它只是使用Object.FindObjectWithTag("MainCamera")方法來尋找MainCamera,這是開銷很大事情,尤其是每一個World Space Canvas每幀都要訪問7-10次Camera.main時,開銷顯然更大。
因此各位在使用World Space時的時候,一定要設置Event Camera啊!