因为项目需要,很多资源需要实例化,同时希望利用NGUI的一些功能,折腾了一下还是找到了解决办法。
private GameObject creatItems(Vector3 pos,Texture2D texture) {
//这个是利用NGUITools的功能,前一个参数是父物体,后一个是要实例化的对象。也可以使用unity自带的实例化函数
GameObject obj = NGUITools.AddChild(this.gameObject, pref);
//这一句是指定父物体,我的在上一句直接指定会出问题、所以又做了一步 obj.transform.parent = GameObject.Find ("Scroll View").transform; obj.transform.localPosition = pos; obj.name = texture.name; obj.GetComponent<UITexture> ().mainTexture =texture;
//这一句是调用NGUI的的事件响应,在我要实例化的脚本上已经添加了UIButton这个组件,当然你可以通过
//obj.AddComponent<>这个进行进行添加,之后调用下面的添加函数
//第一个是找到自身的onClick函数,第二个参数是点击按钮之后要响应的函数,我是通过查找这个方法来进行调用的
EventDelegate.Add(obj.GetComponent<UIButton>().onClick,GameObject.Find ("Scroll View").GetComponent<ChangeCloth>().test); return obj; }
时间: 2024-10-02 23:37:57