[C#]U3d UI 控制 代码

2016-10-27 22:30
440
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;

  4. //using UnityEditor;
  5. //UI调整
  6. [ExecuteInEditMode]
  7. public class AdjustUI : MonoBehaviour
  8. {
  9.     //保存原来默认缩放值
  10.     public Vector3 defaultScale = new Vector3(1,1,1);
  11.     //保存原来的位移值
  12.     public Vector3 defaultPos = new Vector3(0, 0, 0);


  13.     [System.Serializable]
  14.     public class ResolutionInfo
  15.     {      
  16.         public ResolutionInfo(string resolution, float scale, Vector3 pos)
  17.         {
  18.             this.resolution = resolution;
  19.             this.scale = scale;
  20.             this.pos = pos;
  21.         }

  22.         public string resolution;
  23.         public float scale;
  24.         public Vector3 pos;
  25.     }

  26.     public List<ResolutionInfo> resolutionMap = new List<ResolutionInfo>();

  27.     //VirtualStickUI脚本
  28.     private VirtualStickUI mVirtualStickUI = null;

  29.     public AdjustUI()
  30.     {
  31.       

  32. //        //编辑器模式
  33. //#if UNITY_EDITOR
  34. //        if (!Application.isPlaying)
  35. //        {
  36. //            //resolutionMap.Add(new ResolutionInfo("1024x768", 1.0f));
  37. //            resolutionMap.Add(new ResolutionInfo("854x480", 1.0f));            
  38. //        }
  39. //#endif
  40.     }

  41.     void Awake()
  42.     {
  43.         mVirtualStickUI = this.gameObject.GetComponent<VirtualStickUI>();
  44.     }

  45.     // Use this for initialization
  46.     void Start()
  47.     {
  48.         //编辑器模式
  49. #if UNITY_EDITOR
  50.         if (!Application.isPlaying)
  51.         {
  52.             defaultScale = transform.localScale;
  53.             defaultPos = transform.localPosition;           
  54.         }
  55. #endif
  56.          
  57. //程序运行状态
  58. #if UNITY_ANDROID || UNITY_STANDALONE_WIN || UNITY_IPHONE      
  59.         if (Application.isPlaying)
  60.         {
  61.             transform.localScale = defaultScale;
  62.             transform.localPosition = defaultPos;

  63.             //设备分辨率            
  64.             int width = Screen.currentResolution.width;
  65.             int height = Screen.currentResolution.height;

  66.             string resName = width.ToString() + "x" + height.ToString();
  67.             //遍历查询分辨率
  68.             foreach (ResolutionInfo resolutionInfo in resolutionMap)
  69.             {
  70.                 //有匹配当前分辨率
  71.                 if (resolutionInfo.resolution == resName)
  72.                 {
  73.                     float scale = resolutionInfo.scale;
  74.                     Vector3 pos = resolutionInfo.pos;
  75.                     //修改UI大小
  76.                     transform.localScale = new Vector3(scale,scale,scale);
  77.                     transform.localPosition =  pos;

  78.                     //如果有VirtualStickUI
  79.                     if (mVirtualStickUI != null)
  80.                         mVirtualStickUI.adjustRadius *= scale;
  81.                     break;
  82.                 }
  83.             }                     
  84.         }
  85. #endif
  86.     }

  87.    
  88.     // Update is called once per frame
  89.     public void Update()
  90.     {        
  91.         //编辑器模式
  92. #if UNITY_EDITOR     
  93.         if (!Application.isPlaying)
  94.         {
  95.             //defaultScale = new Vector3(1, 1, 1);
  96.             //defaultPos = new Vector3(0, 0, 0);

  97.             //Debug.Log("aaa");
  98.             //设备分辨率
  99.             Vector2 screen = NGUITools.screenSize;
  100.             int width = (int)screen.x;
  101.             int height = (int)screen.y;

  102.             ////int width = 854;
  103.             ////int height = 480;
  104.             string resName = width.ToString() + "x" + height.ToString();

  105.          
  106.             
  107.             //遍历查询分辨率
  108.             foreach (ResolutionInfo resolutionInfo in resolutionMap)
  109.             {
  110.                 //有匹配当前分辨率
  111.                 if (resolutionInfo.resolution == resName)
  112.                 {
  113.                     float scale = resolutionInfo.scale;
  114.                     Vector3 pos = resolutionInfo.pos;
  115.                     //修改UI大小
  116.                     transform.localScale = new Vector3(scale,scale,scale);
  117.                     transform.localPosition = pos;
  118.                     break;
  119.                 }
  120.                 else
  121.                 {
  122.                     //使用默认缩放值
  123.                     transform.localScale = defaultScale;
  124.                     transform.localPosition = defaultPos;                                                               
  125.                 }
  126.             }  
  127.         }     
  128. #endif
  129.     }


  130.         // 强制更新
  131.         public void ForceUpdate()
  132.         {
  133.                 //defaultScale = new Vector3(1, 1, 1);
  134.                 //defaultPos = new Vector3(0, 0, 0);
  135.                
  136.                 //Debug.Log("aaa");
  137.                 //设备分辨率
  138.                 Vector2 screen = NGUITools.screenSize;
  139.                 int width = (int)screen.x;
  140.                 int height = (int)screen.y;
  141.                
  142.                 ////int width = 854;
  143.                 ////int height = 480;
  144.                 string resName = width.ToString() + "x" + height.ToString();
  145.                
  146.                
  147.                
  148.                 //遍历查询分辨率
  149.                 foreach (ResolutionInfo resolutionInfo in resolutionMap)
  150.                 {
  151.                         //有匹配当前分辨率
  152.                         if (resolutionInfo.resolution == resName)
  153.                         {
  154.                                 float scale = resolutionInfo.scale;
  155.                                 Vector3 pos = resolutionInfo.pos;
  156.                                 //修改UI大小
  157.                                 transform.localScale = new Vector3(scale,scale,scale);
  158.                                 transform.localPosition = pos;
  159.                                 break;
  160.                         }
  161.                         else
  162.                         {
  163.                                 //使用默认缩放值
  164.                                 transform.localScale = defaultScale;
  165.                                 transform.localPosition = defaultPos;                                                               
  166.                         }
  167.                 }  
  168.         }
  169.          
  170. }

复制以上内容
收藏
0 条回帖
需要登陆后才可进行回复 登录

返回顶部
现在加入我们,注册一个账号 账号登陆 QQ账号登陆 微博账号登陆

微信扫一扫,马上找工作

在线客服