因由之前製作遊戲過程當中,想要讓玩家調整螢幕之解析度,因此測試了這項的小功能。
意外發現到與Unity本身發佈出來後之解析度有些不同 (目前小弟還在進行研究當中)。
------------
結果圖:
意外發現到與Unity本身發佈出來後之解析度有些不同 (目前小弟還在進行研究當中)。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScreenResolution : MonoBehaviour { // resolutoion X, Y public ListresolutionX = new List (); public List resolutionY = new List (); public int status; void Start() { resolutionFiltering(); } void OnGUI() { GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height, 200, Screen.height)); if (GUILayout.Button("螢幕解析度切換+")) status += 1; if (status >= resolutionX.Count && status >= resolutionY.Count) status = 0; if (GUILayout.Button("確定")) Screen.SetResolution(resolutionX[status], resolutionY[status], true); GUILayout.Label(resolutionX[status].ToString() + " + " + resolutionY[status].ToString()); GUILayout.Label("目前解析度:" + Screen.width + " + " + Screen.height); GUILayout.EndArea(); Screen.fullScreen = false; // 不全屏: false 全屏: true } /// /// 螢幕解析度 /// 過濾重複的數值 /// void resolutionFiltering() { Resolution[] resolutions = Screen.resolutions; foreach (Resolution res in resolutions) { resolutionX.Add(res.width); resolutionY.Add(res.height); } for (int i = resolutionX.Count - 1; i > 0; i--) { if (resolutionX.IndexOf(resolutionX[i]) != i) resolutionX.RemoveAt(i); } for (int i = resolutionY.Count - 1; i > 0; i--) { if (resolutionY.IndexOf(resolutionY[i]) != i) resolutionY.RemoveAt(i); } } }
------------
結果圖:
沒有留言:
張貼留言