轉載:http://icemark.cn/blog/?p=279
很多人都知道,Unity在移動設備上的自適應依靠的是組件本身的Anchors和Canvas上的CanvasScaler
但是很多人卻不知道應該怎麼正確的去設置CanvasScaler的各項屬性,這裏我簡單的說一下,希望大家謹記!
默認的設置:
然後在移動設備上應該選擇Scale With Screen Size:
重點說一下Reference Resolution和Match的設置:
Reference Resolution的尺寸由你拼UI時的尺寸決定,跟實際移動設備上的尺寸沒有關係,引用我在羣上一個很經典的栗子:
你在瘦身前首先得告訴醫生你是胳膊粗還是腿粗 然後醫生才能決定幫你瘦胳膊還是瘦腿。。。
然後Screen Match Mode設置爲Match Width Or Height,
所以說,這裏的尺寸只是爲了告訴Unity你原始的UI尺寸,也就是你拼UI時的尺寸,然後Unity根據實際在移動設備上的尺寸來決定是幫你拉大還是縮小
而Math的設置呢,你只要記住橫版遊戲以高度縮放,豎版遊戲按寬度縮放,所以得出以下結論:
假如我拼UI時的尺寸爲960*640的橫版遊戲,那麼我的設置就是:
有童鞋提到過Screen Match Mode可以使用Expand,但是經過測試發現,貌似在某些移動設備上會出現InputField響應區域偏離的Bug,
原因不明,所以建議使用Match Width Or Height。