使用事件参数创建Unity 5dynamicbutton

根据文档,除了通过预制实例化之外,你不能实例化button。

http://docs.unity3d.com/Manual/HOWTO-UICreateFromScripting.html

您可能想知道为什么我们没有一个API方法来创建各种types的控件,包括视觉效果和一切。 原因是有无数的方式,例如可以设置一个button。 它使用图像,文字还是两者? 甚至可能是多个图像? 什么是文字字体,颜色,字体大小和alignment? 图像使用什么样的精灵或者精灵? 通过让你做一个预制和实例化,你可以完全按照你想要的方式进行设置。 如果你以后想改变你的UI的外观和感觉,你可以改变预制,然后它会反映在你的用户界面,包括dynamic创建的用户界面。

我正在试图做的是dynamic地创建一个button表,每个button到我的游戏中的一个级别。 button数量取决于用户解锁的级别。

我可以创建一个button的预制,这很好,但我怎么去分配一个适当的'levelIndex'参数的这些button的每个button事件

我找不到任何脚本方法来做到这一点,我想避免像创建50个button,只显示前N个孩子哈克解决scheme。

在你的button预制件中附上一个这样的脚本

using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public string levelName; void OnMouseDown() { Application.LoadLevel(levelName); } } 

button实例化后, 通过脚本访问levelName属性 (也可以添加公共方法setLevelName ..)

经过很多痛苦,我find了我的答案。

事实certificate,UnityEngine.UI命名空间实际上是一个API。 我相信这个文档可能意味着它没有创建GUI元素的方法,没有参考实例化。

UnityEngine.UI.Button具有我需要的一切,不需要在前面的答案中提到的自定义类,它不会允许我改变button的文本。