您的位置:首页 > 移动开发 > Unity3D

利用Unity制作“表”

2016-12-26 09:26 441 查看
一枚小菜鸟 目前没发现在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 ()
{

}
}


【欢迎转载】

转载请表明出处: 乐学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: