用于根据屏幕大小定位实例化UI预制件的代码?

时间:2016-09-26 18:04:19

标签: c# user-interface unity3d positioning

我正在努力解决如何基于屏幕尺寸定位实例化预制件的问题,我的下面的代码是这样的:=

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

public class UPStand : MonoBehaviour 
{

    public GameObject SaleButtonPrefab;
    public GameObject ParentButton;
    public int 

    void Start()
    {
        //To loop all the list
        for(int i = 0; i < 3; i++)
        {
            //Instantiate the button prefab and make a parent
            GameObject nu = Instantiate(SaleButtonPrefab) as GameObject;
            nu.transform.SetParent(ParentButton.transform, false);

            //To set the position and function
            nu.GetComponent<RectTransform>().anchoredPosition = new Vector2(0, (i*-289.5f) );// <-- This positioning does not position with screen the size
        }
    }
}

当我以720x1280的分辨率运行时,它的效果非常好,如下图所示:

enter image description here

但是当我在一个分辨率上运行时,让我们说900x1100,高度的定位会有所不同,如下图所示:

enter image description here

我尝试将锚点位置设置到图像的角落,但它在缩放方面有效,但不是定位,但有任何想法吗?

并提前感谢c:

1 个答案:

答案 0 :(得分:1)

选择你的画布,在检查器中选择具有屏幕尺寸的比例,并为你的游戏提供你想要的最高分辨率,总是将你的GUI设置在它上面并且不要在游戏视图中使用自由方面总是使用你想要的分辨率,但仍尝试通过将它们拖动到面板的下端或整个画布的底部来手动更改枢轴,这样只会改变高度。