日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3d 手机屏幕自动适配

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3d 手机屏幕自动适配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在,市場上的手機分辨率多樣化。帶給開放人員一個很大的“跨界問題”。本人,昨晚突發奇想。手機分辨率多樣化,但手機開放人員,制作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 手机屏幕自动适配的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。