Unityã§ã²ãŒã å
ã¡ãã¥ãŒãäœæããæ¹æ³
Unityã§ã¯ãã²ãŒã ãéå§ããåã«å質ãšè§£å床ã®èšå®ã®ãã€ã¢ãã°ãçµã¿èŸŒãŸããŠãããããèšå®ã¡ãã¥ãŒãäœæããããšã¯ã§ããŸããã ãã ããã²ãŒã ããŠããŒã¯ã«ãããã¶ã€ããŒãšããŠã®èœåãçºæ®ãããå Žåã¯ããã®èšäºã圹ç«ã¡ãŸãã ãã®ãã¥ãŒããªã¢ã«ãå®äºãããšãããªã¥ãŒã ãè§£å床ãç»è³ªããã«ã¹ã¯ãªãŒã³ã¢ãŒããšãŠã£ã³ããŠã¢ãŒãã®åãæ¿ããªã©ã®æ©èœãåããç¬èªã®ã¡ãã¥ãŒãäœæã§ããŸãã é¢çœãïŒ æ¬¡ã«ãUnityãå®è¡ããŠã¿ãŸãããã
ã¡ã€ã³ã¡ãã¥ãŒãšèšå®ã¡ãã¥ãŒã®äœæãšèšèš
1.ã¡ãã¥ãŒãšã²ãŒã ã®2ã€ã®ã·ãŒã³ãäœæããŸã
2. [ãã¡ã€ã«]-> [ãã«ãèšå®]ãéããäœæããã·ãŒã³ããã«ãã®ã·ãŒã³ã«ãã©ãã°ããŸãã
ããã§ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äœæãéå§ã§ããŸãã ã¡ãã¥ãŒã·ãŒã³ãéããããã«ã远å ããŸãã ãã£ã³ãã¹ãããã«è¿œå ãããåãããã«ãšãšãã«è¿œå ãããŸãã
Canvasã®ã€ã³ã¹ãã¯ã¿ãŒã«æ³šæããŠãã ããã ã€ãŸããCanvasã³ã³ããŒãã³ãäžã
ã¬ã³ããªã³ã°ã¢ãŒãã¯ãç»é¢ã¹ããŒã¹-ãªãŒããŒã¬ã€ã«èªåçã«èšå®ãããŸãã
ããã€ãã®æ
å ±ïŒ
ç»é¢ã¹ããŒã¹-ãªãŒããŒã¬ã€ïŒCanvasãç»é¢ã«çŽæ¥æ¥ç¶ãããŠããã¬ã³ããªã³ã°æ¹æ³ã ç»é¢ã®è§£å床ãŸãã¯ãµã€ãºã倿Žãããšããã®èšå®ã®Canvasãé©åãªçž®å°ºã«å€æŽãããŸãã ãã®å Žåã®UIã¯ãä»ã®ãªããžã§ã¯ãã®äžã«æç»ãããŸãã
éå±€ã«ãªããžã§ã¯ããé
眮ããé åºã¯éèŠã§ãã ç»é¢ã¹ããŒã¹-ãªãŒããŒã¬ã€ãã£ã³ãã¹ã¯éå±€ã®æäžéšã«ããå¿
èŠããããŸããããã§ãªãå ŽåãèŠããªããªãå¯èœæ§ããããŸãã
ç»é¢ã¹ããŒã¹-ã«ã¡ã©ïŒãã®å Žåããã£ã³ãã¹ã¯ã«ã¡ã©ã«ã¢ã¿ãããããŠããŸãã ãã®èšå®ã§ã¯ããã£ã³ãã¹ã«å¯Ÿå¿ããã«ã¡ã©ãæå®ããå¿
èŠããããŸãã åã®æ®µèœãšåæ§ã«ããã£ã³ãã¹ã¯ç»é¢ã®è§£å床ãšãµã€ãºãããã³ã«ã¡ã©ã®ã¹ã³ãŒãã«å¿ããŠã¹ã±ãŒã«ã倿ŽããŸãã
ãŸãããã®ãããªèšå®ã®ãã£ã³ãã¹ã§ã¯ãä»ã®ãªããžã§ã¯ãã«å¯Ÿããçžå¯Ÿçãªé
眮ãéèŠã§ãã ãã©ã¢ã°ã©ãŠã³ãã§ã¯ãUIã§ãããä»ã®GameObjectã§ãããã«é¢ä¿ãªããã«ã¡ã©ã«è¿ããªããžã§ã¯ãããããŸãã
ã¯ãŒã«ãã¹ããŒã¹ïŒãã£ã³ãã¹ã¯ãã«ã¡ã©ãç»é¢ãåç
§ããã«ä»ã®ãªããžã§ã¯ããšåãããã«é
眮ããã奜ããªããã«åããå€ããããšãã§ãããã£ã³ãã¹ã®ãµã€ãºã¯RectTransformã䜿çšããŠèšå®ãããŸãããã²ãŒã äžã®è¡šç€ºæ¹æ³ã¯ã«ã¡ã©ã®äœçœ®ã«äŸåããŸãã
ãã®å²ãåœãŠã§ã¯ãç»é¢ã¹ããŒã¹-ãªãŒããŒã¬ã€ã䜿çšããŸãã
ããã«ã®è²ã調æŽããŸãããã èæ¯ã«ç»åã远å ããããšãã§ããŸãã ãããè¡ãã«ã¯ãããã«ã€ã³ã¹ãã¯ã¿ãŒã®ç»åã³ã³ããŒãã³ãã«æ³šæããŠãã ããã
ã芧ã®ãšãããç»åã[ãœãŒã¹ç»å]ãã£ãŒã«ãã«è¿œå ãããŸãã ãããžã§ã¯ããã¡ã€ã«ããç»åããã©ãã°ãããããã£ãŒã«ãã®å³åŽã«ããåãã¯ãªãã¯ããŸãã
è²ã¯ã[è²]ãã£ãŒã«ãã§éžæããããã¹ãã€ãããŒã«ã䜿çšããŠéžæããŸãã
ã¹ãã€ãããŒã«ã䜿çšãããšãUnity以å€ã®è²ãéžæã§ããããšãç¥ã£ãŠããããšãéèŠã§ãã
è²ãŸãã¯ç»åãéžæããããããã¹ãã ãã§ãªããã¹ãŠãå¶åŸ¡ãããã¿ã³ãé
眮ããå¿
èŠããããŸãã ã¿ã¹ã¯ãç°¡çŽ åããããã«ãPanelã«ã¯Vertical Layout GroupãšåŒã°ããå¥ã®ã³ã³ããŒãã³ãã远å ããŸãã ãããŠããã«èšå®ããŸãã
ãã¹ãŠã®ãã¿ã³ãšããã¹ããç»é¢ã®äžå€®ã«é
眮ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãVertical Layout Groupã³ã³ããŒãã³ãã§Child Alignmentã¢ã€ãã ãèŠã€ããŠãMiddle CenterãéžæããŸãã ããã§ããã¿ã³ã§ãããã¹ãã§ããç»é¢ã®è§£å床ã«é¢ä¿ãªããã¹ãŠã®èŠçŽ ãäžå€®ã«é
眮ãããŸãã
ãŸããChildForceExpandã®ãã§ãã¯ãå€ããŸãã æ¬¡ã®ããã«ãªããŸãã
ãã®ã³ã³ããŒãã³ãã¯ãååŸããçš®é¡ã«å¿ããŠã«ã¹ã¿ãã€ãºã§ããŸãã
ã¡ãã¥ãŒã«ã¯æ¬¡ã®ãã¿ã³ããããŸãã
1.ã²ãŒã ãéå§
2.èšå®
3.çµäº
次ã«ãTextãPanelã®åãšããŠè¿œå ããŸãã äžå€®ã«ã©ã®ããã«åãä»ããããŠãããã確èªã§ããŸãã å Žåã«ãã£ãŠã¯ãã·ãŒã³ãŠã£ã³ããŠã§äœæãããèŠçŽ ãåçŽã«ããã«ã«ç§»åããŠããäœçœ®åããããå¿
èŠããããŸãã ã€ã³ã¹ãã¯ã¿ãŒã®ããã¹ãïŒã¹ã¯ãªããïŒã³ã³ããŒãã³ãã䜿çšããŠãå¿
èŠã«å¿ããŠããã¹ããã«ã¹ã¿ãã€ãºããŸãã
Buttonã远å ããåŸã ãã¿ã³ãããã¹ãã®äžã«è¿œå ãããŸãã
ãã¿ã³ã®Buttonã³ã³ããŒãã³ããåæããŸãããã é·ç§»ã«èå³ããããŸã-ãã¿ã³ãããŠã¹æäœã«ã©ã®ããã«åå¿ãããã§ãã Unityã¯ããã€ãã®ã¡ãœãããå®è£
ããŠããŸãã ä»ã®ãšãããããªãã·ã³ãã«ãªè²åããèããŠã¿ãŸãããã ããã¯ãç¹å®ã®æ¡ä»¶äžã§ãã¿ã³ã®è²ãå€ããããšãæå³ããŸãã èšå®çšã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯éåžžã«äŸ¿å©ã§ãã 奜ããªããã«ã«ã¹ã¿ãã€ãºããŸãã
Buttonãªããžã§ã¯ãã«ã¯ãåTextãªããžã§ã¯ãããããŸããããã¯ããã¿ã³ã«è¡šç€ºãããããã¹ãã§ãã æ¬æã§ã¯ãPlayãèŠå®ããŠããŸãã
ããã¹ããšãã¿ã³ãè¿ãããŸãã
ããã¹ãã¡ãã¥ãŒã®ãããä¿®æ£ããã«ã¯ãã¬ã€ã¢ãŠãèŠçŽ ãšåŒã°ããå¥ã®ã³ã³ããŒãã³ãã远å ããŸãã [ã¬ã€ã¢ãŠããç¡èŠ]ã®æšªã«ãããã§ãã¯ããã¯ã¹ããªã³ã«ããŸãã
ãã®åŸãMiddle-Centerã§ã¢ã³ã«ãŒãå
¬éããŸãã
次ã«ãããã«3ã€ã®ãã¿ã³ã远å ããŠãèšå®ãã¯ã¬ãžãããçµäºãšåŒã³ãŸãã
ãã¿ã³ã®ãµã€ãºã倿Žã§ããŸãã ãã®æç¹ã§ãã¡ãã¥ãŒã¯æ¬¡ã®ããã«ãªããŸãã
ã¡ã€ã³ã¡ãã¥ãŒãšèšå®éã®ç§»è¡
æ°ããã·ãŒã³ãäœæããããã«ãªãã·ã§ã³ã¡ãã¥ãŒã«åãæ¿ããå¿
èŠã¯ãããŸããã
æåã«ãCanvasã®åãšããŠç©ºã®GameObjectãäœæããŸãïŒç©ºãäœæïŒã ã¡ã€ã³ã¡ãã¥ãŒãšåŒã³ãŸãããã æ¬¡ã«ããã®ãªããžã§ã¯ãã®åã§ãããã¹ãŠã®ããŒã«ã䜿çšããŠãããã«ãäœæããŸãã æ¬¡ã®ããã«ãªããŸãã
MainMenuãªããžã§ã¯ããéžæããŠè€è£œããŸãã éžæããã¢ã€ãã ã§ãCtrl + Dã®ããŒã®çµã¿åãããæŒããŸãã æ°ãããªããžã§ã¯ããäœæãããŸãã
æ°ãããªããžã§ã¯ãã®ååãSettingsã«å€æŽããŸãã 管çã容æã«ããããã«ãMainMenuãéã¢ã¯ãã£ãåããŸãã
ããã«èšå®ããã«ã§ãèšå®ã®ããã¹ããæžãæãããã¹ãŠã®ãã¿ã³ãåé€ããŸãã
èšå®ã§ã¯ã次ã®ããšãè¡ããŸã-ãã«ã¹ã¯ãªãŒã³ãé³éèšå®ãç»è³ªãç»é¢è§£å床ã
ãã«ã¹ã¯ãªãŒã³ã®å¶åŸ¡ã«ã¯ããã°ã«èŠçŽ ã責任ãè² ããŸãã
ããªã¥ãŒã çš-ã¹ã©ã€ããŒã
ç»è³ªãšè§£å床ã«ã€ããŠ-ããããããŠã³ã
åèŠçŽ ã®éã«ãåèšå®ã®ååã瀺ãããã¹ããé
眮ããå¿
èŠããããŸãã ãŸããã¡ã€ã³ã¡ãã¥ãŒã«æ»ããã¿ã³ã远å ããå¿
èŠããããŸãã
èŠçŽ éã«ã¹ããŒã¹ãã»ãšãã©ãªãããã«ãåçŽã¬ã€ã¢ãŠãã°ã«ãŒãã§ééãæ§æã§ããŸãã ããã«ã«ç»åã远å ããæ¬¡ã®çµæãååŸããŸãã
ãã¿ã³ããã°ã©ãã³ã°
ã¡ãã¥ãŒã¹ã¯ãªããã®äœæã«ç§»ããŸãããã
Playãã¿ã³ãæŒããŠã²ãŒã ã®å¥ã®ã·ãŒã³ãéå§ããExitãã¿ã³ãæŒããŠã²ãŒã ãéããŸãã
ããã¯ãã¹ã¯ãªããã§èšè¿°ãããã®ã§ãã
MainMenuã®å Žåãæ°ããã³ã³ããŒãã³ãMenuControls.csã远å ãããããåãé¢ããŸãã
æåã«è¡ãããšã¯ãæ¢åã®StartïŒïŒããã³UpdateïŒïŒã¡ãœãããåé€ããããšã§ã-ããã§ã¯å¿
èŠãããŸããã
次ã«ã以äžãæ¥ç¶ããå¿
èŠããããŸãã
using UnityEngine.SceneManagement;
ãã®åŸãåçãã¿ã³ãæŒãç¬èªã®ã¡ãœãããèšè¿°ããŸãã ã¡ãœããã¯ãããªãã¯ã§ããå¿
èŠããããŸã-ã¹ã¯ãªããã®å€ã§ãããèŠãããšãã§ããå¿
èŠããããŸãã
SceneManagerã¯ã·ãŒã³ã®èªã¿èŸŒã¿ãæ
åœããLoadSceneã¡ãœããããããŸãã ã¡ãœããã®ãªãŒããŒããŒããããã€ããããŸãã ããŒããããã·ãŒã³ã®ååãæž¡ãããšãã§ããŸãã ç§ãã¡ã®å Žåãããã¯ãã²ãŒã ãã·ãŒã³ã§ãã
ãã®çµæã颿°ã¯æ¬¡ã®ããã«ãªããŸãã
public void PlayPressed() { SceneManager.LoadScene("Game"); }
ãŸããã²ãŒã ãçµäºããã¡ãœãããäœæããŸãã
public void ExitPressed() { Application.Quit(); }
ãã ããUnityã§ã¯ããã«ãã§ã®ã¿æ©èœããããããã®ã¡ãœããã®çµæã¯è¡šç€ºãããŸããã ãã¹ãŠãæ£ããæ©èœããããšã確èªããããã«ãã¡ãœããã«è¡ã远å ããŸã
Debug.Log("Exit pressed!");
次ã«ããã¿ã³ã€ãã³ãããããã®ã¡ãœããã«ã¢ã¿ããããå¿
èŠããããŸãã [åç]ãã¿ã³ãéžæããã€ã³ã¹ãã¯ã¿ãŒã§æ¬¡ãèŠã€ããŸãã
ããã¯ãã¯ãªãã¯ããããšãã€ãã³ãã«ãµãã¹ã¯ã©ã€ããããã¡ãœãããåŒã³åºããã¿ã³ã€ãã³ãã§ãã [+]ãã¯ãªãã¯ããŠã¡ãœããã远å ããŸãã
衚瀺ããããŠã£ã³ããŠã§ãç®çã®ã¹ã¯ãªãããå«ããªããžã§ã¯ãããã©ãã°ããŸãã ç§ãã¡ã®å Žåãããã¯ã¡ã€ã³ã¡ãã¥ãŒã§ãã
ãã®åŸãMenuControlsã¹ã¯ãªãããéžæããPlayPressedïŒïŒã¡ãœãããèŠã€ããŸãã
åæ§ã«ãExitãã¿ã³ã«ã€ããŠãåæ§ã§ãã ããã§ã®ã¿ãExitPressedïŒïŒã¡ãœãããéžæããŸãã
[èšå®]ãã¿ã³ã«ã€ããŠã¯ãäžéšã®æ©èœãæ¢ã«çµã¿èŸŒãŸããŠãããããã³ãŒããèšè¿°ããå¿
èŠã¯ãããŸããã
äžçªäžã®è¡ã¯ãGameObjectãã¢ã¯ãã£ãã«ããããšã§ãã ãã®æç¹ã§ãMainMenuãã¢ã¯ãã£ãã«ãªããèšå®ã衚瀺ãããªããªããŸãã ãŸããèšå®ãã¢ã¯ãã£ãã«ãããšãã¡ãã¥ãŒãšå®å
šã«éãªãããšãããããŸãã äžçªäžã®è¡ã¯ãCanvasã®åãªããžã§ã¯ãã®å Žæã®é åºã圹å²ãæãããŠãããšããããšã§ããã€ãŸããããããæç»ãããé åºã§éå±€ã«é
眮ãããé åºã§ãã ã¡ã€ã³ã¡ãã¥ãŒã®äžã«ããèšå®ãªã®ã§ãã¡ãã¥ãŒãšéãªã£ãŠããŸãã
ããã䜿çšãããã®ã§ãã
[èšå®]ãã¿ã³ãéžæããèšå®ãªããžã§ã¯ããOnClickïŒïŒã«ãã©ãã°ã¢ã³ãããããããŸãã 颿°ã§ãGameObject-> SetActiveïŒïŒãéžæããŸãã ããã眮ããŸãã ãã®ããã«ïŒ
ãªãã·ã§ã³ã¡ãã¥ãŒã«ãã[æ»ã]ãã¿ã³ã§ã¯ãåãæ¹æ³ã§èšå®ãªããžã§ã¯ãã®SetActiveã€ãã³ããæ¥ç¶ã§ããŸãããä»åã¯ãªããžã§ã¯ããéã¢ã¯ãã£ãåããå¿
èŠãããããããã§ãã¯ã¯ããŸããã
以äžã§ãã¡ãã¥ãŒã®äœæãçµäºããŸãããæ¬¡ã®ããŒãã§ã¯ãèšå®ã®å€æŽã«ã²ãŒã ãå¿çãããŸãã
èšå®
å
šç»é¢èšå®
æåã«æžãçããã®ã¯ããã«ã¹ã¯ãªãŒã³ã¢ãŒããšãŠã£ã³ããŠã¢ãŒãã®åãæ¿ãã§ãã
ToggleèŠçŽ ã®Is Onã¢ã€ãã ã®ãã§ãã¯ãå€ãå¿
èŠããããŸãã
Settingsãªããžã§ã¯ãã®ã¹ã¯ãªãããäœæããŸãã ãããSettings.csãšåŒã³ãŸãããã
ãŸããçŸåšã®ç¶æ
ã衚瀺ããboolåã®å€æ°ãä¿åããå¿
èŠããããŸã-å
šç»é¢ã¢ãŒããã©ããã ãããŠããã°ã«ã倿Žããããšã«ããããã®å€æ°ã¯å察ã®å€ã«åãæ¿ãããŸãã
ç»é¢ã«ã¯ãboolåã®Screen.fullScreenããããã£ããããŸãã 倿°isFullScreenã®å€ããã®ããããã£ã«åçŽã«å²ãåœãŠãããšãã§ããŸãã
ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
public void FullScreenToggle() { isFullScreen = !isFullScreen; Screen.fullScreen = isFullScreen; }
ãã«ãã§ã®ã¿çµæãèŠãããšãã§ããŸãã ããããã£ãŠã¿ãŸãããã ãã«ããæ£ããè¡ãã«ã¯ãMainMenuãªããžã§ã¯ãã®ã¿ãã¢ã¯ãã£ãã«ããŠãèšå®ãç¡å¹ã«ããå¿
èŠãããããšã«æ³šæããŠãã ããã ãããå®äºããããFile-> BuildSettingsã§ãã«ããå®è¡ããBuildãã¿ã³ãã¯ãªãã¯ããŸãã
ãã®åŸãããã°ã©ã ã確èªã§ããŸãã ãã¹ãŠãæ£ããå Žåããã§ãã¯ããŒã¯ãæŒããšãã¢ãŒããããã«å€æŽãããŸãã
ã²ãŒã é³éã®å€æŽ
ãµãŠã³ãèšå®ãæäœããã«ã¯ãæåã«AudioMixerãšãèšå®ã®åäœã確èªããããçš®ã®ãã©ãã¯ãå¿
èŠã§ãã
ãããã®2ã€ã®èŠçŽ ã远å ããŸãã ãŸãAudioMixerã远å ããŸãã ãŠã£ã³ããŠã®ãããžã§ã¯ã->äœæ-> AudioMixerãå³ã¯ãªãã¯ããŸãã
GameSettingsãšåŒã³ãŸãã ãã®åŸãAudioMixerãŠã£ã³ããŠãéããŸãïŒWindow-> Audio MixerïŒCtrl + 8ïŒã
ã¹ã¯ãªãããä»ããŠãããµãŒãã©ã¡ãŒã¿ãŒãå¶åŸ¡ããã«ã¯ããã®ã¹ã¯ãªããã§ãã©ã¡ãŒã¿ãŒã衚瀺ããå¿
èŠããããŸãã ãã®æé ã¯ExposeParametersãšåŒã°ããŸãã ãããè¡ãã«ã¯ããããµãŒãã¯ãªãã¯ããã€ã³ã¹ãã¯ã¿ãŒã§ããªã¥ãŒã ãèŠã€ããŠå³ã¯ãªãã¯ããŸãã ã¹ã¯ãªããã«å
¬éãéžæããŸãã
[ãªãŒãã£ãªãããµãŒ]ãŠã£ã³ããŠã§ãå·Šäžã®[é²åºããããã©ã¡ãŒã¿ãŒ]é
ç®ã«æ³šæããŠãã ããã
ãã©ã¡ãŒã¿ããããŸãã ãããã¯ãªãã¯ããŠããã©ã¡ãŒã¿masterVolumeãåŒã³åºããŸãã å²ãåœãŠãååãèŠããŠããå¿
èŠããããŸããã³ãŒãã§æå®ããå¿
èŠããããŸãã
Settings.csã«ç§»åããAudioMixerãã£ãŒã«ããäœæããŠã³ãŒãå
ã®ãªã³ã¯ãååŸããŸãã
public AudioMixer am;
次ã«ãã¡ãœãããäœæããŸã
public void AudioVolume(float sliderValue) { am.SetFloat("masterVolume", sliderValue); }
SetFloatã¡ãœããã¯ãã¹ã©ã€ããŒã®å€ãååŸãããã®å€ããmasterVolumeããã©ã¡ãŒã¿ãŒã«å²ãåœãŠãŸãã
ã¹ã©ã€ããŒã®ã€ãã³ãã«ã¡ãœãããã¢ã¿ããããããšã¯æ®ã£ãŠããŸãã ã¹ã©ã€ããŒã€ã³ã¹ãã¯ã¿ãŒã§[å€ã倿ŽãããŸãã]ãã£ãŒã«ããèŠã€ããåãæ¹æ³ã§ãªããžã§ã¯ããã¢ã¿ããããŸãã ãã ãããªã¹ãããã¡ãœãããéžæããã ãã§ãªããDynamic floatãã£ãŒã«ãã䜿çšããå¿
èŠããããŸãã ã芧ã®ãšãããã¡ãœããã¯æ¢ã«ååšããã¹ã©ã€ããŒèªäœãã倿°ãåãåããŸãã ãŸããAudioMixerãSettings.csã³ã³ããŒãã³ãã®å¯Ÿå¿ãããã£ãŒã«ãã«ãã©ãã°ã¢ã³ãããããããããšãå¿ããªãã§ãã ããã

ã¹ã©ã€ããŒã®å€ããªãŒãã£ãªãããµãŒã®å€ã«çŽæ¥ãã€ã³ãããããšã«æ³šæããŠãã ããã ãªãŒãã£ãªãããµãŒã§ã¯ãé³éã-80ãã20ã«å€ãããŸãã-80ïŒé³ãªãïŒãã0ïŒéåžžã®é³ïŒã«å€ããã ãã§ååã§ãã ã¹ã©ã€ããŒã®èšå®ã§ãæå°å€ã-80ãæå€§å€ã0ã«èšå®ããŸãã
次ã«ãã²ãŒã ã«ãµãŠã³ãã远å ããŠãã¹ã¯ãªããããã¹ãããŸãã
ãã£ã³ãã¹ã§ããªãŒãã£ãªãœãŒã¹ã³ã³ããŒãã³ãã远å ããŸãã
次ã®ããã«èšå®ããŸãã
ãªãŒãã£ãªã¯ãªãã-ãµãŠã³ããã©ãã¯
åºå-ãããµãŒã®ãã¹ã¿ãŒïŒåãªããžã§ã¯ãïŒ
ã«ãŒã-ãã§ãã¯ããã¯ã¹ããªã³ã«ãããšãæ²ãã«ãŒãããŠãåžžã«åçãããŸãã
ç»è³ª
Unityã«ã¯æ¢ã«ç»åå質èšå®ãçµã¿èŸŒãŸããŠããŸãã ç·šé->ãããžã§ã¯ãèšå®->å質ã ã€ã³ã¹ãã¯ã¿ãŒã«ã¯ãå質èšå®ã衚瀺ãããŸãã ãããã¯è¿œå ããã³æ§æã§ããŸãã
å質èšå®ãæäœããæ©èœã¯æ¬¡ã®ãšããã§ãã
åèšå®ã¯ãããããããŠã³ããååŸã§ããã€ã³ããã¯ã¹ã«å¯Ÿå¿ããŠããŸãã å¿
èŠãªããšã¯ãUIèŠçŽ ã®ç®çã®ã€ã³ããã¯ã¹å
ã®å¯Ÿå¿ããã¢ã€ãã ãæžãæããããšã ãã§ãã ãããéããšãã€ã³ã¹ãã¯ã¿ãŒã«ããããããŠã³ïŒã¹ã¯ãªããïŒãããããã®äžã«ãªãã·ã§ã³é
ç®ããããŸãã æ¬¡ã«ãåžæããé åºã§èšå®ãå
¥åããŸãã æ¬¡ã®ããã«ãªããŸããã
次ã«ãã³ãŒããç»é²ããå¿
èŠããããŸãã Settings.csã¹ã¯ãªããã«ã¡ãœããã远å ãç¶ããŸã
éžæããã¢ã€ãã ã®int-ã€ã³ããã¯ã¹ãåãå
¥ããã¡ãœãããäœæããŸãã
public void Quality(int q) { QualitySettings.SetQualityLevel(q); }
ã¹ã¯ãªãããä¿åããã¡ãã¥ãŒã®ã¡ãœãããã€ãã³ãã«æ¥ç¶ããŸãã ä»åã¯ããã®ã€ãã³ãã¯Dropdown-On Value Changedã§ãã
ã¡ãœããã¯UIèŠçŽ èªäœããå€ãåãåããããDymanic intã°ã«ãŒãããã¡ãœããåãéžæããŸãã åã®æ®µèœãšã®é¡æšã«ãã£ãŠã
ç»é¢è§£å床
ç»é¢ã¯ãã¹ãŠã®äººã§ç°ãªããã©ã®æš©éããµããŒããããããæšæž¬ããããšã¯ã§ããŸããã ãããã£ãŠãç»é¢ã®è§£å床ã調æŽããã«ã¯ããŸããã¹ãŠã®å¯èœãªè§£å床ãååŸããŠããããããã®å€ã§è§£å床ã®ãªã¹ãã«å
¥åããå¿
èŠããããŸãã
æåã«å¿
èŠãªã®ã¯ãè§£å床[]åã®é
åã§ãããã«ç»é¢è§£å床ã®å€ãä¿åããŸãã
ãã ããããããããŠã³ãªã¹ãã®ã¢ã€ãã ã®å Žåãã¿ã€ãã¯æååã§ãã ãããã£ãŠãå¯èœãªã¢ã¯ã»ã¹èš±å¯ã®å€ãä¿åãããªã¹ã<>ãäœæããŸãã ãªã¹ããæäœããã«ã¯ãæ¥ç¶ããå¿
èŠããããŸãïŒ
using System.Collections.Generic;
ãŸãã察å¿ããããããããŠã³ãžã®ãªã³ã¯ãå¿
èŠã§ãã UIèŠçŽ ã䜿çšããã«ã¯ã次ã®ããšãèšè¿°ããå¿
èŠããããŸãã
using UnityEngine.UI;
ã¹ã¯ãªããã§ã¯ã次ã®ãã£ãŒã«ããååŸããŸãã
Resolution[] rsl; List<string> resolutions; public Dropdown dropdown;
Awakeã¡ãœãããåæåããŠå
¥åããŸãã ãã®ã¡ãœããã¯ããªããžã§ã¯ãã®èµ·åæã«åŒã³åºããããããä»ã®ãã¹ãŠã®ã¡ãœãããããæ©ãå®è¡ãããŸãã
å€ãååŸãããããããå¹
*é«ãã®åœ¢åŒã§ãªã¹ãã«è¿œå ããŸãã ãã®åŸãããããããŠã³ãªã¹ããã¯ãªã¢ããæ°ãããªãã·ã§ã³ãå
¥åããŸãã
public void Awake() { resolutions = new List<string>(); rsl = Screen.resolutions; foreach (var i in rsl) { resolutions.Add(i.width +"x" + i.height); } dropdown.ClearOptions(); dropdown.AddOptions(resolutions); }
次ã«ãç»é¢ã®è§£å床ã倿Žããã¡ãœãããäœæããå¿
èŠããããŸãã åã®æ®µèœãšåæ§ã«ãUIèŠçŽ ããå€ãååŸããŸãã intãåã颿°ãäœæããŸã
public void Resolution(int r) { Screen.SetResolution(rsl[r].width, rsl[r].height, isFullScreen); }
SetResolutionã§ã¯ããã©ã¡ãŒã¿ãŒãæž¡ãå¿
èŠããããŸã-å¹
ãé«ããããã³ããŒã«å€æ°ã¯ããã«ã¹ã¯ãªãŒã³ãæ
åœããŸãã ãã§ã«1ã€ãããŸã-isFullScreenã§ãã 颿°ã«æž¡ããŸãã
ããã«ãResolutionã¡ãœãããDynamic Intã°ã«ãŒããã察å¿ããã€ãã³ãã«æ¥ç¶ããç®çã®ããããããŠã³ãžã®ãªã³ã¯ã远å ããããšãå¿ããªãã§ãã ããã
ã§ãã ããã§ãéå±ãªããã©ã«ãã®ã©ã³ãã£ãŒã®ä»£ããã«ãã®ã¡ãã¥ãŒã䜿çšã§ããŸãã ãã ããæå³ããªãããã«ã¯ãèµ·åãç¡å¹ã«ããå¿
èŠããããŸãã
Edit->ProjectSettings-> Display Resolution Dialog-Disabled
ããã§ãç¬èªã®ã¡ãã¥ãŒãäœæããã²ãŒã ããŠããŒã¯ã§æãåºæ·±ããã®ã«ããèšèšäžã®æ±ºå®äºé
ã䜿çšããããšãã§ããŸãã