1 using UnityEngine;
2 using System.Collections;
3
4 public class BgPicScript : MonoBehaviour {
5
6 // Use this for initialization
7 public UITexture bg;
8 void Start () {
9
10 Debug.Log("device宽高: " + Screen.width + "_" + Screen.height);
11
12 UIRoot root = GameObject.FindObjectOfType<UIRoot>();
13
14 if (root != null)
15 {
16 //终极大杀器 整体资源缩放比例
17 float s = (float)root.activeHeight / Screen.height;
18 int height = Mathf.CeilToInt(Screen.height * s);
19 int width = Mathf.CeilToInt(Screen.width * s);
20
21 Debug.Log("按设计分辨率屏幕width = " + width + "_height = " + height);
22
23 Debug.Log("背景图片的设计分辨率bgWIdth:" + bg.width + "_bgHeight:" + bg.height);
24
25 float bgRatio = (float) bg.width / bg.height;
26 float manualRatio = (float)width / height;
27
28
29 if (bgRatio < manualRatio) //遇到按照屏幕高度缩放水平两边出现黑边的情况,要按照宽度来缩放背景图片
30 {
31 //bg.width = width;
32 //bg.height = Mathf.CeilToInt(width / );
33
34 float targetScale = (float)width / bg.width;
35 bg.transform.localScale = new Vector3(targetScale,targetScale, 1);
36 }
37 }
38
39
40 }
41
42 // Update is called once per frame
43 void Update () {
44
45 }
46 }
47
48
49
50 using UnityEngine;
51 using System.Collections;
52
53 public class UIRootScript : MonoBehaviour {
54
55 // Use this for initialization
56 void Start () {
57 AdaptiveUI();
58 }
59
60 // Update is called once per frame
61 void Update () {
62
63 }
64
65 static private void AdaptiveUI()
66 {
67 int ManualWidth = 1024;
68 int ManualHeight = 768;
69 UIRoot uiRoot = GameObject.FindObjectOfType<UIRoot>();
70 if (uiRoot != null)
71 {
72 if (System.Convert.ToSingle(Screen.height) / Screen.width > System.Convert.ToSingle(ManualHeight) / ManualWidth)
73 uiRoot.manualHeight = Mathf.RoundToInt(System.Convert.ToSingle(ManualWidth) / Screen.width * Screen.height);
74 else
75 uiRoot.manualHeight = ManualHeight;
76 }
77 Debug.Log("uiRoot Height:" + uiRoot.manualHeight);
78 }
79 }