Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Unity-UI Mobile-未看到脚本生成的按钮/文本?_Android_User Interface_Unity3d - Fatal编程技术网

Android Unity-UI Mobile-未看到脚本生成的按钮/文本?

Android Unity-UI Mobile-未看到脚本生成的按钮/文本?,android,user-interface,unity3d,Android,User Interface,Unity3d,我正在尝试使用Unity 5.0动态生成一些按钮和文本 我所有的代码似乎都是正确的。当我在编辑器中播放它时,它看起来很棒。一切都是生成,放置和大小为我想要的第一次运行。我做了apk。安装到我的手机上没有问题。 打开东西时,我看到了我的静态画布对象,但我的动态不见了。为了确定,我把它们做成了巨大的 详情: 统一5.0。我在手机上设置了Android 5的构建设置。我试过安卓4.6 我的画布UI缩放模式现在设置为随屏幕大小缩放。 我的预览设置为WXGA肖像800 x 1280,根据三星网站上的规格表

我正在尝试使用Unity 5.0动态生成一些按钮和文本 我所有的代码似乎都是正确的。当我在编辑器中播放它时,它看起来很棒。一切都是生成,放置和大小为我想要的第一次运行。我做了apk。安装到我的手机上没有问题。
打开东西时,我看到了我的静态画布对象,但我的动态不见了。为了确定,我把它们做成了巨大的

详情: 统一5.0。我在手机上设置了Android 5的构建设置。我试过安卓4.6

我的画布UI缩放模式现在设置为随屏幕大小缩放。 我的预览设置为WXGA肖像800 x 1280,根据三星网站上的规格表,这是我的One Note 4的分辨率。 画布参考分辨率为X 800 Y 1280。 所有静态和动态对象都是画布的子对象

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

我使用以下代码完成了这项工作(生成动态按钮)

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);
gameobjectobj=实例化(btn_预置);
obj.transform.SetParent(父对象);
float itemXPosition=normalizedItemCenter+(normalizedItemWidth*索引);
obj.GetComponent().anchorMin=新向量2(itemXPosition,0.0f);
obj.GetComponent().anchorMax=新向量2(itemXPosition,1.0f);
obj.GetComponent().anchoredPosition=Vector2.0;
obj.GetComponent().sizeDelta.Set(size.x,size.y);
这里

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

注意:所有这些都是在为按钮指定父项后完成的。这是一个常见的错误,开发人员首先对游戏对象进行转换,然后为其指定一个父对象(在某些情况下应该这样做,这也很有用)但是,在这种情况下,它们是非常有趣和令人沮丧的,因为你没有得到你想要的结果,也很难找到问题。

字体嵌入的问题?你用的是默认字体吗?今天下午我会查出来。我记得以前有过这样的问题。Android不支持动态字体之类的东西,但我无法找到处理这个问题的可靠信息,甚至无法得到正确的定义。Unity不会覆盖字体并手动处理它吗?我用的是默认字体,是Arial。