1 using UnityEngine;
2 using System.Collections;
3 using UnityEngine.UI;
4
5 public class X_RectAutoSize : MonoBehaviour
6 {
7 //原始尺寸
8 private Vector2 olSize;
9 //缩放后的尺寸
10 private Vector2 size;
11 //原始尺寸宽高比
12 private float al;
13 private RectTransform self;
14 public bool lockHeight;
15 public bool lockPos= true;
16 internal float parentHeight;
17 public float heightBoder;
18
19 void Update()
20 {
21 self = GetComponent<RectTransform>();
22 if (!lockHeight)
23 {
24 parentHeight = self.parent.GetComponent<RectTransform>().rect.size.y - heightBoder;
25 }
26 self.GetComponent<Image>().SetNativeSize();
27 olSize = self.sizeDelta;
28 al = olSize.x / olSize.y;
29 size = new Vector2(parentHeight * al, parentHeight);
30 self.sizeDelta = size;
31 if (lockPos)
32 {
33 self.anchoredPosition = Vector2.zero;
34 }
35 }
36 }