Unity-裁剪区域自适应

这篇博客探讨了如何在Unity中实现相机裁剪区域的自适应功能。通过为场景中的Camera组件添加CameraSize.cs脚本,可以实现裁剪区域根据场景变化自动调整,确保内容始终适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在场景中的Camera挂上CameraSize.cs脚本:

using UnityEngine;

//Platform:Android
public class CameraSize : MonoBehaviour
{
    private float defaultcamSize; //初始时设置的Camera的Size
    //默认状态下的宽与高
    private float defaultScreenWidth = 800f;   
    private float defaultScreenHeight = 480f;
    private float w;
    private float h;
    private float newSize;

    void Awake()
    {
        defaultcamSize = this.camera.orthographicSize;
        if (Screen.currentResolution.width != defaultScreenWidth || Screen.currentResolution.height != defaultScreenHeight)
        {
            //print(Screen.width + "," + Screen.height);
            w = defaultScreenWidth / Screen.width;
            h = defaultScreenHeight / Screen.height;
            newSize = w / h;
            this.camera.orthographicSize = defaultcamSize * newSize;
            //print(newSize);
        }
    }
}
在场景中设置了裁剪区域的Panel上挂上panelClipRangeResize.cs脚本: 

using UnityEngine;

//Panel面板的裁剪区域的Y轴的自适应
public class panelClipRangeResize : MonoBehaviour
{
    public Camera uicamera;
    //private int defaultScreenWidth = 800;
    //private int defaultScreenHeight = 480;
    //private float w;
    //private float h;

    /// <summary>
    /// w修改宽度:x-z
    /// h修改高度:y-w
    /// </summary>
    void Awake()
    {
        //w = defaultScreenWidth / Screen.width;
        //h = defaultScreenHeight / Screen.height;
        Vector4 clipRange = this.GetComponent<UIPanel>().clipRange;
        this.GetComponent<UIPanel>().clipRange = new Vector4(clipRange.x, clipRange.y+clipRange.w*(1-uicamera.orthographicSize)/2, clipRange.z, clipRange.w * uicamera.orthographicSize);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值