var parent:GameObject = GameObject.Find("Panel")
var child:GameObject = Instantiate(labelPrefab)
Debug.Log(txt)
child.transform.parent = parent.transform //设置父物体
child.transform.localPosition = new Vector3(275, -22, 0) //设置position、scale和rotation //localposition 才是在inspector上看到的x,y,z
child.transform.localScale = new Vector3(1, 1, 1)
//设置label的text
child.GetComponentInChildren(UILabel).text = txt
}
以下是转载:
NGUI动态添加widget
对于做U3D的来说,NGUI已然是很熟悉了,对于NGUI控件(像Label)的创建当然不必多说了,现在就来了解一下如何在程序中动态创建Label等控件。在这里我用的是用预制物体(Prefab)来实现的,首先建立一个UI,再创建一个Label并把它做成预制;再就是Instantiate了,主要看代码:
[csharp] view plaincopy
//label 的父物体
GameObject parent = GameObject.Find("Cube")
GameObject child = (GameObject)Instantiate(Resources.Load("myLabel"))
child.transform.parent = parent.transform //设置父物体
child.transform.localPosition = new Vector3(0, 0, 0) //设置position、scale和rotation
child.transform.localScale = new Vector3(1, 1, 1)
child.transform.localRotation = Quaternion.Euler(90, 0, 0)
//设置label的text
gameObject.GetComponentInChildren().text = "gsgsgsgg"
当你场景中有大量相似的物体,如游戏中的小怪时就可以用prefab来对这些物体进行统一管理,这样当你需要修改物体属性时,只要修改一个物体,然后apply给prefab其他的物体也就一起改好了。还有当你需要用代码动态创建物体时也是用prefab的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)