Unity3d中Camera类的aspect属性解析

2.1.1 aspect属性:设置摄像机视口比例

基本语法:public float aspect{ get; set; }

功能说明:此属性用于获取或设置Camera视口的宽高比例值。例如,设camera.aspect=2.0f,则camera视口的宽度/高度=2.0f,但是当硬件显示器屏幕的宽度与高度比例不为2.0时视图的显示将会发生变形。aspect只处理摄像机Camera可以看到的视图的宽高比例,而硬件显示屏的作用只是把摄像机Camera看到的内容显示出来,当硬件显示屏的宽高比例与aspect的比例值不同时视图将发生变形。关于此属性的更多内容请参考“关于Camera的视口、aspect、pixelRect及rect的关系注解”。

实例演示:下面通过实例演示不同的aspect值对Camera视口的影响。

using UnityEngine;
using System.Collections;

public class Aspect_ts : MonoBehaviour
{
    void Start()
    {
        //camera.aspect的默认值即为当前硬件的aspect值
        Debug.Log("camera.aspect的默认值:" + camera.aspect);
    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(10.0f, 10.0f, 200.0f, 45.0f), "aspect=1.0f"))
        {
			//重置当前摄像机的aspect值
            camera.ResetAspect();
            camera.aspect = 1.0f;
        }
        if (GUI.Button(new Rect(10.0f, 60.0f, 200.0f, 45.0f), "aspect=2.0f"))
        {
			//重置当前摄像机的aspect值
            camera.ResetAspect();
            camera.aspect = 2.0f;
        }
        if (GUI.Button(new Rect(10.0f, 110.0f, 200.0f, 45.0f), "aspect还原默认值"))
        {
			//重置当前摄像机的aspect值
            camera.ResetAspect();
        }
    }
}

在这段代码中,首先在Start方法中打印出了Camera的默认aspect值,camera.aspect的默认值即为当前硬件的aspect值,若在Unity编辑模式中运行即为Game视图中aspect的值,如图2-1所示。然后在OnGUI方法中定义了三个Button来切换不同的aspect值,在每次设置新的aspect值之前都需要先调用ResetAspect方法来重置视口的aspect值。具体的变化情况请读者自行运行程序查看。



本文章内容摘自图书《Unity API解析》,源码下载地址:http://www.ituring.com.cn/book/1474

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值