• Unity之UI、模型跟随鼠标移动(自适应屏幕分辨率、锚点、pivot中心点)


    一、效果展示

    UI跟随鼠标移动, 当我们修改屏幕分辨率、锚点、pivot等参数时会动态自适应并始终让ui的pivot中心点位置跟随鼠标位置。同时脚本中包含3d物体跟随ui位置和3d物体直接跟随鼠标位置移动

    二、屏幕坐标、Canvas自适应、锚点、中心点关系

    在说功能原理之前我们需要先了解屏幕坐标、Canvas自适应、锚点、中心的特性和之间的关系。

    1.屏幕坐标 

    屏幕坐标也就是电脑分辨率,一般我们所说的1920*1080代表的是这个显示器可以容纳长1920*宽1080像素。例如下方图片中我设置屏幕分辨率是1920*1080,左下角坐标位置为(0,0),右上角位置是(1920*1080)。而鼠标位置是基于屏幕坐标零点在左下角计算的。

    设置1920*1080分辨率

    根据下方动图可以看出鼠标在左下角为0,右上角为1920*1080.ps:因为不好控制鼠标位置所以有点小误差。

    2. Canvas自适应

    在Unity中,Canvas是用于处理UI(用户界面)元素的重要组件。它是一个容器,可以包含各种UI元素,比如文本、按钮、图像等。是所有ui组件的父物体。

    Canvas自适应是用来兼容各种设备下不同分辨率的,我们在开发项目中时,如果针对每一个设备的分辨率进行ui布局这是非常麻烦且复杂的事情,通过自适应我们可以只对ui进行一次布局就可以适配在不同分辨率的设备下。

    自适应修改Canvas Scale组件下的UI Scale Mode属性。一般有三种模式选项。

    画布缩放器 (Canvas Scaler) - Unity 手册

    (1)ConstantPixelSize

    在这个模式下Canvas的显示大小是固定的,无论用户界面的比例怎么变化Canvas的显示大小都不会改变。

    例如我们ui布局在1080*1920的竖屏下,在左上角设置一个400*400的图片

    用户设备分辨率是480*800的竖屏下效果

       

     

    这种模式下设置的ui不会进行自适应大小,如果你布局ui的分辨率大于用户设备的分辨率可能会出现ui超出屏幕遮挡等问题。

    (2)Scale With Screen Size

    这个模式下的Canvas会适配用户设备分辨率并对Canvas的Scale大小进行等比例调整。

     例如我们ui布局在1080*1920的竖屏下,在左上角设置一个400*400的图片

    用户设备分辨率是480*800的竖屏下效果

    此属性是通过等比例缩放来进行自适应的,通过设置ui布局的原始分辨率Reference Resolution,和Match宽高匹配来进行Scale放大缩放。

    1080*1920分辨率到480*800分辨率的缩放原理

     因为我们Match值为0取的是width,所以缩放比例要按照width来,在下图ps中width是44.4%约等于0.44与unity中canvas的scale。

    计算方式

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.UI;
    5. public class Test : MonoBehaviour
    6. {
    7. pr
  • 相关阅读:
    man手册查不到pthread_cond_signal
    k8s--基础--05--环境搭建--准备工作
    践行绿色发展秸秆综合利用太仓模式 国稻种芯现代饲料规划
    理解RFC 3339时间格式和时区time zone
    记第一次与世界的交流
    国际版腾讯云/阿里云:全站加快有哪些功用?有哪些优势?适用于什么场景?
    2023年五一杯数学建模A题无人机定点投放问题求解全过程论文及程序
    Spring 篇
    d的10个0符
    【月报】Aavegotchi 7 月更新请查收!
  • 原文地址:https://blog.csdn.net/qq_42345116/article/details/134216379