[Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(ãã®2)
2013/5/4 è¿½è¨ : ã¹ã¯ãªãã㯠[Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(NGUI2.3.0対å¿ç) ãææ°ã§ã。
NGUI ã§ã®è¤æ°è§£å度対å¿ã®ããã®ç»é¢å ¨ä½ã®æ¡å¤§ç¸®å°ã¯ä»¥å [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã ã«æ¸ããæ¹æ³ãããã¾ãã、ä»åã¯å¥ã®、ãã NGUI ã®æ çµã¿ãæ´»ç¨ããããæ¹ã§ãã£ã¦ã¿ã¾ã。
å®ã¯ NGUI èªä½ã«ãç»é¢ãµã¤ãºã«åããã¦æ¡å¤§ç¸®å°ããæ©è½ã¯ä¸å¿ãã£ã¦、UIRoot ã® manualHeight ãããã«å½ããã¾ã。manualHeight ã¯、ãã®é«ããç»é¢ã®é«ãã«ã¡ããã©åã¾ãããã«ããã¨ããæå³ãããã¾ã。(å°ãªãã¨ãããããæåããã¾ã。å ¬å¼ããã¥ã¡ã³ãã«ã¯ç¹ã«èª¬æã¯ãªãã®ã§ãã)
ããã©ã«ãã§ã¯ Automatic=true ã«ãªã£ã¦ãããã、ç»é¢ãµã¤ãºã®å¤æ´ã«åããã¦ãã® manualHeight ãèªåã§å¤ãå¤ããããã«ãªã£ã¦ãã¾ãã、Automatic=false ã«ãããã¨ã§å¤ãåºå®ã§ãã¾ã。ãã㧠240 ã«ããã¨、ä¸å³ã®ããã« 320x240 ã®ã¹ãã©ã¤ããã¡ããã©åã¾ãããã«ãªãã¾ã。
ããã、å·¦å³ãä½ãå ´åã¯ããã®ã§ãã、ä¸ä¸ãä½ã£ã¦ã»ããå ´åã§ãä¸å³ã®ãããªè¡¨ç¤ºã«ãªã£ã¦ãã¾ãã¾ã。
ã¨ããããã§、次ã®ã¹ã¯ãªããã UIRoot ã«è¿½å ãã¦、ä¸ä¸ãä½ã£ã¦ã»ããå ´åã« manualHeight ãå¶å¾¡ããããã«ãã¦ã¿ã¾ã。
ããã§、ä¸ä¸å·¦å³ã©ã¡ããä½ãå ´åã§ãæå¾ ã®è¡¨ç¤ºãå¾ããã¨ãã§ãã¾ã。
ãã®æ¹æ³ã¯、以åç´¹ä»ãã Anchor çã® Scale ãæä½ããæ¹æ³ã¨æ¯è¼ãã¦、Anchor ãè¤æ°ã«ãªã£ãå ´åã§ã対å¿ããããªãã¨ãã£ãå©ç¹ãããã¾ã。
ã¡ãªã¿ã«、ä½ã£ãé¨åã¯ã«ã¡ã©ã® Clear Flags ã Solid Color ã«ãã¦é»ã«ãã¦ãã¾ã。ãã®ãããã¯ä»ã«ãã«ã¡ã©ããããªãé©å®èª¿æ´ã¨ãããã¨ã§。
2012/10/10 è¿½è¨ : UIRoot ãå°æåã«ãªã£ã¦ããã®ãä¿®æ£。
2012/10/24 è¿½è¨ : [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(NGUI2.2.2対å¿ç) ãæ¸ãã¾ãã。
2013/5/4 è¿½è¨ : [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(NGUI2.3.0対å¿ç) ãæ¸ãã¾ãã。
NGUI ã§ã®è¤æ°è§£å度対å¿ã®ããã®ç»é¢å ¨ä½ã®æ¡å¤§ç¸®å°ã¯ä»¥å [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã ã«æ¸ããæ¹æ³ãããã¾ãã、ä»åã¯å¥ã®、ãã NGUI ã®æ çµã¿ãæ´»ç¨ããããæ¹ã§ãã£ã¦ã¿ã¾ã。
å®ã¯ NGUI èªä½ã«ãç»é¢ãµã¤ãºã«åããã¦æ¡å¤§ç¸®å°ããæ©è½ã¯ä¸å¿ãã£ã¦、UIRoot ã® manualHeight ãããã«å½ããã¾ã。manualHeight ã¯、ãã®é«ããç»é¢ã®é«ãã«ã¡ããã©åã¾ãããã«ããã¨ããæå³ãããã¾ã。(å°ãªãã¨ãããããæåããã¾ã。å ¬å¼ããã¥ã¡ã³ãã«ã¯ç¹ã«èª¬æã¯ãªãã®ã§ãã)
ããã©ã«ãã§ã¯ Automatic=true ã«ãªã£ã¦ãããã、ç»é¢ãµã¤ãºã®å¤æ´ã«åããã¦ãã® manualHeight ãèªåã§å¤ãå¤ããããã«ãªã£ã¦ãã¾ãã、Automatic=false ã«ãããã¨ã§å¤ãåºå®ã§ãã¾ã。ãã㧠240 ã«ããã¨、ä¸å³ã®ããã« 320x240 ã®ã¹ãã©ã¤ããã¡ããã©åã¾ãããã«ãªãã¾ã。
ããã、å·¦å³ãä½ãå ´åã¯ããã®ã§ãã、ä¸ä¸ãä½ã£ã¦ã»ããå ´åã§ãä¸å³ã®ãããªè¡¨ç¤ºã«ãªã£ã¦ãã¾ãã¾ã。
ã¨ããããã§、次ã®ã¹ã¯ãªããã UIRoot ã«è¿½å ãã¦、ä¸ä¸ãä½ã£ã¦ã»ããå ´åã« manualHeight ãå¶å¾¡ããããã«ãã¦ã¿ã¾ã。
using UnityEngine; using System.Collections; [ExecuteInEditMode] public class NGUIUtilScalableUIRoot : MonoBehaviour { public int manualWidth = 320; public int manualHeight = 240; UIRoot uiRoot_; void Awake() { uiRoot_ = GetComponent<UIRoot>(); } void Update () { if(!uiRoot_ || manualWidth <= 0 || manualHeight <= 0){ return; } int h = manualHeight; float r = (float)(Screen.height * manualWidth) / (Screen.width * manualHeight); // (Screen.height / manualHeight) / (Screen.width / manualWidth) if(r > 1){ h = (int)(h * r); } // to pretend target height is more high, because screen width is too smaller to show all UI if(uiRoot_.automatic){ uiRoot_.automatic = false; } if(uiRoot_.manualHeight != h){ uiRoot_.manualHeight = h; } } }
ããã§、ä¸ä¸å·¦å³ã©ã¡ããä½ãå ´åã§ãæå¾ ã®è¡¨ç¤ºãå¾ããã¨ãã§ãã¾ã。
ãã®æ¹æ³ã¯、以åç´¹ä»ãã Anchor çã® Scale ãæä½ããæ¹æ³ã¨æ¯è¼ãã¦、Anchor ãè¤æ°ã«ãªã£ãå ´åã§ã対å¿ããããªãã¨ãã£ãå©ç¹ãããã¾ã。
ã¡ãªã¿ã«、ä½ã£ãé¨åã¯ã«ã¡ã©ã® Clear Flags ã Solid Color ã«ãã¦é»ã«ãã¦ãã¾ã。ãã®ãããã¯ä»ã«ãã«ã¡ã©ããããªãé©å®èª¿æ´ã¨ãããã¨ã§。
2012/10/10 è¿½è¨ : UIRoot ãå°æåã«ãªã£ã¦ããã®ãä¿®æ£。
2012/10/24 è¿½è¨ : [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(NGUI2.2.2対å¿ç) ãæ¸ãã¾ãã。
2013/5/4 è¿½è¨ : [Unity]NGUIã§ç»é¢ãµã¤ãºã«åããã(NGUI2.3.0対å¿ç) ãæ¸ãã¾ãã。
ã³ã¡ã³ã
ã³ã¡ã³ããæ稿