Unity 5.4.2 - 缩放和定位实例化的UI元素

时间:2016-11-06 03:21:15

标签: c# unity3d unity5

所以我一直在为一个班级的项目工作,并且遇到了一个我似乎无法解决的泡菜。我问过导师,他很困惑。

现在我刚刚尝试设置一个简单的用户界面,用于显示按钮列表以选择要加载的关卡。在运行时,代码只是创建适当的按钮等,并将它们放在 scrollview的内容对象中。很简单吧?好吧,as you can see位置和权利完全错误, 800个单位

画布设置为屏幕空间 - 叠加 Canvas Scaler设置为按屏幕尺寸缩放,我猜是问题所在。我已经遇到了位置和比例更大的问题(取决于屏幕尺寸),但是"固定"这可以通过手动设置变换的位置和localscale。

然而,我没有找到解决方案,用我的谷歌搜索,所以如果有人可以帮我解释这个问题,我会非常感激。

以下是它为每个级别执行的代码。它当然是凌乱的,因为我一直在努力解决问题所在。

        Level thisLevel = levelManager.levelList [i];
        GameObject levelButton = (GameObject)Instantiate (menuManager.levelButtonContainerObject);

        levelButton.transform.SetParent (menuManager.mainMenuLevelContainer.transform, false);
        levelButton.transform.position = Vector3.zero;
        levelButton.transform.localPosition = Vector3.zero;
        levelButton.transform.localScale = Vector2.one;

        RectTransform levelButtonRect = levelButton.GetComponent<RectTransform> ();
//          levelButtonRect.position = ApplyCanvasScale (new Vector3 (0f, -50 + (-100 * i), 0f));
        levelButtonRect.position = new Vector3(0f, -50 + (-100 * i), 0f);
//          levelButtonRect.position = Vector3.zero;
        levelButtonRect.sizeDelta = new Vector2 (0f, 100f);
        Debug.Log ("Position " + levelButtonRect.position + ", Scale " + levelButtonRect.sizeDelta);

1 个答案:

答案 0 :(得分:0)

尝试在您设置位置和比例的位置添加这些内容:

import