现在,市场上的手机分辨率多样化。带给开放人员一个很大的“跨界问题”。本人,昨晚突发奇想。手机分辨率多样化,但手机开放人员,制作UI时,最为重要的两个因素就是Position(位置)、Scale(大小);

我引入一个“比例”概念;

比例:

原始开放的平台手机分辨率为960*640,一个GameObject:Position(300,100,0),Scale(100,100,1);

那么“移植”到 800*480手机上;

“比例”:RatioV3(800/960,480/640,1);

次GameObject在800*480手机为:Position(249,75,0),Scale(83,75,1);

效果还算是比较理想;

代码如下:

publicclass _Public : MonoBehaviour {

public    static Vector3  helfScreen;

Vector3  initScreen=new Vector3 (480,320,1);

public  static  Vector3  ratioScreen;

// Use this for initialization

void Awake () {

getScreen();

}

public   void getScreen(){

if(helfScreen==Vector3.zero){

helfScreen.x=(float)(Screen.width/2);

helfScreen.y=(float)(Screen.height/2);

helfScreen.z=1f;

}

if(ratioScreen==Vector3.zero){

float  x= helfScreen.x/ initScreen.x;

float  y= helfScreen.y / initScreen.y;

ratioScreen.x=float.Parse(x.ToString("F2"));

ratioScreen.y=float.Parse(y.ToString("F2"));

ratioScreen.z=1f;

}

}

}

.81640625public class _ScreenFit : MonoBehaviour {

[System.Serializable]

public  class  ScreenFit{

public  Transform   fitTrans;

public  bool isFitScale=true;

public void initFit(){

//  Fit Position

if(fitTrans==null)return ;

Vector3 position=fitTrans.localPosition;

position.x*=_Public.ratioScreen.x;

position.y*=_Public.ratioScreen.y;

position.z*=_Public.ratioScreen.z;

fitTrans.localPosition=position;

// Fit Scale

if(isFitScale){

Vector3 scale=fitTrans.localScale;

if(scale==Vector3.one){

scale.y*=_Public.ratioScreen.y;

scale.x*=_Public.ratioScreen.y;

scale.z*=_Public.ratioScreen.z;

//scale.x*=_Public.ratioScreen.x;

}

else {

scale.x*=_Public.ratioScreen.x;

scale.y*=_Public.ratioScreen.y;

scale.z*=_Public.ratioScreen.z;

}

fitTrans.localScale=scale;

}

}

}

public  ScreenFit[]   screenFitS;

public   Transform  backTrans;

// Use this for initialization

void Start () {

initScreenFit();

}

void initScreenFit(){

foreach(ScreenFit  screenFit in screenFitS){

screenFit.initFit();

}

if(backTrans==null) return ;

Vector3 scale=backTrans.localScale;

scale.x=_Public.helfScreen.x*2;

scale.y=_Public.helfScreen.y*2;

backTrans.localScale=scale;

}

}

效果图如下:960*480

800*480下

转载于:https://www.cnblogs.com/kuangwu/archive/2013/03/11/2953739.html

Unity3d 手机屏幕自动适配相关推荐

  1. android 神器 自动连接手机版下载,手机屏幕自动点击

    详情 手机屏幕自动点击app是一款能够帮助用户自动点击手机屏幕的应用,用户可以自由设置点击时长.点击位置等数据,根据需要编辑辅助脚本,然后app就会对手机进行快速的点击了,轻松解放双手,可用于抢红包. ...

  2. android学习笔记---49_屏幕适配,根据不同手机屏幕大小适配软件界面

    2013/5/12 49_屏幕适配 ----------------------- 1.根据手机屏幕的大小自动显示软件界面的大小 2.这里用480x320和320x240这两种屏幕大小举例. ---- ...

  3. python手机屏幕自动点击代码_鼠标隔段时间自动点击屏幕

    知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2).  运行代码出现:ModuleNotFoundError: No ...

  4. html页面一个屏幕大小不一样,关于web页自动适配屏幕大小

    一.先了解下html5的viewport使用 随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的 ...

  5. 一秒点击手机屏幕次数_抓住夏天的尾巴|与自动点击评论器邂逅一次

    "夏天"好像是有个浪漫的季节,夏天的晚风,轻轻吹动窗台上的帘子,暮色朦胧舒适到差点我就要这样过一生了. 因为它突如其来的高温天气,热的人们猝不及防,空调.西瓜.冰棍儿.游泳池.野外 ...

  6. 摩客怎么设置安卓的dp_安卓屏幕完美适配方案——独家秘笈

    一.为什么要适配 由于Android系统的开放性,任何用户.开发者.硬件厂商.运营商都可以对Android系统和硬件进行定制,修改成他们想要的样子. 但是这种"碎片化"到达什么程度 ...

  7. 安卓屏幕完美适配方案——独家秘笈

    一.为什么要适配 由于Android系统的开放性,任何用户.开发者.硬件厂商.运营商都可以对Android系统和硬件进行定制,修改成他们想要的样子. 但是这种"碎片化"到达什么程度 ...

  8. Android WebView加载网页,图片等元素宽度大小不兼容手机屏幕的宽度

    无论是Android手机还是iOS手机,使用WebView加载一些没有专门为手机屏幕做适配的网页的时候,就会出现网页中的图片等标签元素的宽度大小和手机屏幕的宽度不一致的情况,如下图 之所以会出现上面的 ...

  9. element 手机适配_解决手机移动端适配的五种方法

    移动端适配的五种方法 所谓移动端适配,就是WebApp在不同尺寸的屏幕上等比显示 第一种方法:viewport适配 原理:通过设置 initial-scale , 将所有设备布局视口的宽度调整为设计图 ...

最新文章

  1. Kinesis、Streams and Firehose
  2. 数字图像处理目录列表
  3. php获取当前月月初至月末的时间戳,上个月月初至月末的时间戳
  4. 用于数据分析的Python – Pandas
  5. c语言程序算法思想,C语言实现科学计算器(算法思想)
  6. 计算机个人职业生涯规划
  7. 如何将Excel保存为TXT格式文件
  8. veu的常用指令(复习使用)
  9. JQuery详解(讲解+举例)--(后端开发适用)
  10. java 新词发现,Java新词发现算法码源之使用
  11. 618新旧巨头战笔记之一
  12. C#_____找错误
  13. 室外管线lisp_利用Autocad lisp进行地下管线成果表制作方法的研究
  14. Tcp通讯错误代码10061
  15. 弹性文件服务(Scalable File Service,SFS)
  16. 旧金山大学 计算机,旧金山大学
  17. 论文数据分析-1(论文数据统计)
  18. AToken每日简讯 1.11 星期五
  19. layui xm-select用法
  20. 360安全卫士系统漏洞修复,漏洞补丁下载成功但安装失败的解决办法

热门文章

  1. oracle数据库 日志满了
  2. unity导入素材时材质丢失素材变成粉红色的解决方法
  3. 交叉验证 cross validation 与 K-fold Cross Validation K折叠验证
  4. linux内存初始化初期内存分配器——memblock
  5. Lambda表达式的前世今生
  6. Scrum Guides 2017年最新修改
  7. 《Android 应用案例开发大全(第二版)》——导读
  8. iOS:多线程技术GCD的使用
  9. 【转】android 中如何限制 EditText 最大输入字符数
  10. mod_wsgi的工作模式和配置