利用Unity制作“表”
一枚小菜鸟 目前没发现在Unity有其他路径制作类似于c# WinForm中的表;但是利用Unity自带的UGUI,制作了一张“伪表”,具体方案如下:
效果图如下:
步骤:
1、制作一个简单的UI界面,制作一个 button的预制件;
2、其中的数据来源有WCF服务提供;
3、代码实现:
脚本:
代码:
using UnityEngine; using System.Collections; using System.ServiceModel; using UnityEngine.UI; public class showList : MonoBehaviour { public GameObject infoButton; //製作好的infobutton预制件 public GameObject InfoParent; //信息载体 private static string EnterStr = "_n_"; //自定义换行符 private static string SpaceStr = "_s_"; //自定义空格符 WriteSaveClient client; void Awake() { client = new WriteSaveClient(new BasicHttpBinding(), new EndpointAddress(" http://localhost:8733/Design_Time_Addresses/STL_WCF/WriteSave/")); } void Start () { ShowinfoList();//显示文件信息 } #region 显示文件信息 void ShowinfoList() //显示文件信息函数 { string 序号,用户,文件; string[] rowinfo = string_handle(); for (int i=0;i< rowinfo.Length;i++) { GameObject infolist = Instantiate(infoButton); //实例化infobutton预制件 infolist.GetComponent<RectTransform>().SetParent(InfoParent.GetComponent<RectTransform>()); //设置父对象 infolist.GetComponent<RectTransform>().localScale = Vector3.one; //设置大小 infolist.GetComponent<RectTransform>().localPosition = Vector3.zero; //设置位置 string[] Detailinfo = rowinfo[i].Replace(SpaceStr, "$").Split('$'); //提取具体信息 序号 = " "+Detailinfo[0]; 用户 = Detailinfo[1]; 文件 = Detailinfo[2]; infolist.transform.FindChild("Count").GetComponent<Text>().text = 序号; //显示序号 infolist.transform.FindChild("userinfo").GetComponent<Text>().text = 用户; //显示用户 infolist.transform.FindChild("fileinfo").GetComponent<Text>().text = 文件; //显示文件 Button LoadBT = infolist.transform.FindChild("load").GetComponent<Button>(); //下载事件 LoadBT.onClick.AddListener( delegate() { this.OnLoadClickBT(infolist); } ); } InfoParent.GetComponent<RectTransform>().sizeDelta = //信息载体的大小要随着信息个数变化而变化 new Vector2(300, rowinfo.Length * 30+10); } string[] string_handle() //将包含信息的string第一步处理 { string tempinfo = client.ShowFileList(); string[] rowinfo = tempinfo.Replace(EnterStr, "#").Split('#'); return rowinfo; } void OnLoadClickBT(GameObject bt) //下载按钮的触发事件 { } #endregion void Update () { } }
【欢迎转载】
转载请表明出处: 乐学习