根据尺寸屏幕缩放和定位

时间:2020-05-06 16:05:59

标签: unity3d

如何根据尺寸屏幕缩放和定位 缩放屏幕时,对象将随之改变位置和缩放比例。非常感谢。对不起,英语不好。enter image description here

1 个答案:

答案 0 :(得分:0)

这是一种实现方法。将此脚本附加到画布中的circle元素,然后调整变量。

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);
    }

}