Unity3d自适应屏幕方案

本文介绍了在Unity3D中处理手机游戏自适应屏幕的方法,提供了AspectUtility.cs脚本,用于3D场景的自适应,并给出了针对NGUI布局UI界面的额外处理步骤,确保在宽屏和窄屏设备上的良好显示。
摘要由CSDN通过智能技术生成
如果做手机游戏,必不可少的需要涉及到自适应屏幕这个问题,本篇文章不做过多讲解。直接上代码。

      AspectUtility.cs脚本来自网络,因考虑到宽屏和窄屏适应问题,设置一个可调节的区间段会比较好,所以此处做过部分修改。

[code]csharpcode:

1. [code]csharpcode
2. using System;
3. using System.Collections.Generic;
4. using UnityEngine;
5.
6. public class AspectUtility : MonoBehaviour
7. {
8.     public Vector2 maxAspectRatio = new Vector2(16, 9);
9.     public Vector2 minAspectRatio = new Vector2(3, 2);
10.     public bool landscapeModeOnly = true;
11.
12.     private float _wantedAspectRatio = 1.5f;
13.     static public bool _landscapeModeOnly = true;
14.     static float wantedAspectRatio;
15.     static Camera cam;
16.     static Camera backgroundCam;
17.
18.     void Awake()
19.     {
20.         if (Screen.width * maxAspectRatio.y > Screen.height * maxAspectRatio.x)
21.         {
22.             _wantedAspectRatio = maxAspectRatio.x / maxAspectRatio.y;
23.         }
24.         else if (Screen.width * minAspectRatio.y < Screen.height * minAspectRatio.x)
25.         {
26.             _wantedAspectRatio = minAspectRatio.x / minAspectRatio.y;
27.         }
28.         else
29.         {
30.             _wantedAspectRatio = (float)Screen.width / Screen.height;
31.         }
32.
33.         _landscapeModeOnly = landscapeModeOnly;
34.         cam = camera;
35.         if (!cam)
36.         {
37.             cam = Camera
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值