Unity3d 根据屏幕大小缩放和定位

Unity3d 根据屏幕大小缩放和定位,unity3d,Unity3d,如何根据屏幕大小进行缩放和定位。如图所示 缩放屏幕时,对象的位置和比例会随之改变。非常感谢。对不起,我的英语不好。在画布中,有一个名为canvas scaler的组件,它有一个名为UI缩放模式的属性,将其更改为随屏幕大小缩放。之后,您必须设置UI元素的轴心点和锚定点 我的建议是检查,它一步一步地描述了一切,完全是为了你的例子。我相信,读完这篇文章后,您一定会对本文有很好的理解。这是一种方法。将此脚本附加到画布中的圆圈元素并调整变量 using System.Collections; using

如何根据屏幕大小进行缩放和定位。如图所示
缩放屏幕时,对象的位置和比例会随之改变。非常感谢。对不起,我的英语不好。

在画布中,有一个名为canvas scaler的组件,它有一个名为UI缩放模式的属性,将其更改为随屏幕大小缩放。之后,您必须设置UI元素的轴心点和锚定点


我的建议是检查,它一步一步地描述了一切,完全是为了你的例子。我相信,读完这篇文章后,您一定会对本文有很好的理解。

这是一种方法。将此脚本附加到画布中的圆圈元素并调整变量

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UiElementScaleManager : MonoBehaviour
{

    private RectTransform rectTransform = null;
    [SerializeField] [Range(-200, 200)] private float offsetX = 85f;
    [SerializeField] [Range(-200, 200)] private float offsetY = 5f;
    [SerializeField] [Range(0, 200)] private float width = 10f;
    [SerializeField] [Range(0, 200)] private float height = 10f;
    [Tooltip("If checked then height variable will not be used.")]
    [SerializeField] private bool preserveAspect = false;

    private void Start()
    {
        rectTransform = GetComponent<RectTransform>();
        rectTransform.pivot = Vector2.zero;
        rectTransform.anchorMax = Vector2.zero;
        rectTransform.anchorMin = Vector2.zero;
    }

    private void Update()
    {
        rectTransform.sizeDelta = new Vector2(Screen.width * width / 100, ((preserveAspect) ? Screen.width * width : Screen.height * height) / 100);
        rectTransform.anchoredPosition = new Vector2(Screen.width * offsetX / 100, Screen.height * offsetY / 100);
    }

}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共类UiElementScaleManager:MonoBehavior
{
私有RectTransform RectTransform=null;
[field][Range(-200200)]私有浮动抵销x=85f;
[SerializeField][Range(-200200)]私有浮动抵销=5f;
[SerializeField][Range(02000)]专用浮动宽度=10f;
[field][Range(0200)]专用浮子高度=10f;
[工具提示(“如果选中,则不会使用高度变量。”)]
[SerializeField]private bool preserveApect=false;
私有void Start()
{
rectTransform=GetComponent();
rectTransform.pivot=Vector2.0;
rectTransform.anchorMax=向量2.0;
rectTransform.anchorMin=Vector2.0;
}
私有void更新()
{
rectTransform.sizeDelta=新矢量2(Screen.width*width/100,((保留纵横比)?Screen.width*width:Screen.height*height)/100);
rectTransform.anchoredPosition=新矢量2(Screen.width*offsetX/100,Screen.height*offsetY/100);
}
}

但它不是UI,而是游戏对象、图像、精灵