Unity - UI Mobile - 脚本生成的按钮/文本未显示?

时间:2015-05-09 21:17:01

标签: android user-interface unity3d

我正在尝试使用Unity 5.0动态生成一些按钮和文本 我的所有代码似乎都合适。当我在编辑器中播放它时看起来很棒。一切都是按照我想要的第一次运行生成,放置和调整大小。我做了apk。安装在我的手机上没有任何问题 在打开东西后,我看到了我的静态Canvas对象,但我的动态无处可去。为了确定,我让它们变得巨大。

详细说明: Unity 5.0。我有我为手机设置的Android 5的构建设置。我试过Android 4.6。

My Canvas UI Scale模式现在设置为Scale with Screen Size。 根据三星网站上的规格表,我的预览设置为WXGA Portrait 800 x 1280,这是我的One Note 4的分辨率。 画布参考分辨率为X 800 Y 1280。 所有静态和动态对象都是Canvas的子对象

我错过了什么?我觉得这是我忽略的某个选择。

1 个答案:

答案 0 :(得分:0)

我使用以下代码完成了此操作(生成动态按钮)

GameObject obj = Instantiate<GameObject>(btn_prefab);
obj.transform.SetParent(parent);

float itemXPosition = normalizedItemCenter + (normalizedItemWidth * index);

obj.GetComponent<RectTransform>().anchorMin = new Vector2(itemXPosition, 0.0f);
obj.GetComponent<RectTransform>().anchorMax = new Vector2(itemXPosition, 1.0f);
obj.GetComponent<RectTransform>().anchoredPosition = Vector2.zero;
obj.GetComponent<RectTransform>().sizeDelta.Set(size.x, size.y);

下面

  • btn_prefab是我正在创建的按钮的预制件。
  • parent是我想要按钮的父RectTransform对象。
  • normalizedItemCenternormalizedItemWidth是按钮的中心和宽度,按比例为0.0到1.0
  • index是生成的按钮数(我在循环中生成多个按钮)
  • size.xsize.y分别为按钮
  • 计算宽度和高度

注意:所有这一切都是在为按钮分配父级后完成的。这是一个常见的错误,开发人员首先使用GameObject的转换,然后为它们分配一个父(这在某些情况下应该完成并且也很有用)但是在这样的情况下,它们是非常戏弄和令人沮丧的,因为你是没有得到你想要的结果,也很难找到问题。