using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// /// public class UIBgAdaptive : MonoBehaviour { public GameObject[] bgList; void Start() { for (int i = 0; i < bgList.Length; i++) { if (bgList[i] != null) { bgList[i].GetComponent().anchorMin = new Vector2(0.5f, 0.5f); bgList[i].GetComponent().anchorMax = new Vector2(0.5f, 0.5f); bgList[i].GetComponent().pivot = new Vector2(0.5f, 0.5f); bgList[i].transform.localScale = new Vector3(1, 1, 1); bgList[i].transform.localPosition = new Vector3(0, 0, 0); //float curHeight = 1920 * (Screen.height / Screen.width) / (1920 / 1080); //float curWidth = (1080f / 1920f) * curHeight; //bgList[i].GetComponent().sizeDelta = new Vector2(curWidth, curHeight); if (Screen.height/Screen.width >= 1920/1080f) { //--计算比例因子 比例因子 = 10 ^ ((lg(屏幕宽 / 开发宽) + lg(屏幕高 / 开发高) / 2)) //local log = math.log(Screen.width / 1080, 10) + math.log(Screen.height / 1920, 10) //local avg = log / 2 //local ft = math.pow(10, avg) //-- 实际分辨率 = 屏幕分辨率 / 比例因子 //UIManager.UIHeight = Screen.height / ft //UIManager.UIWidth = Screen.width / ft float log = Mathf.Log10(Screen.width / 1080f) + Mathf.Log10(Screen.height / 1920f); float avg = log / 2f; float ft = Mathf.Pow(10, avg); float curHeight = Screen.height / ft; float curWidth = curHeight /1920f * 1080f; //XDebug.Log.l("Screen.height " + Screen.height+ " curWidth "+ curWidth); bgList[i].GetComponent().sizeDelta = new Vector2(curWidth, curHeight); } else { bgList[i].GetComponent().sizeDelta = new Vector2(1080, 1920) * 1.2f; } } } } }