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 }
转载于:https://www.cnblogs.com/JD85/p/4648768.html