这两天一直在研究这个多框输入,网上找了半天也没有发现用Unity和C#交互的,索性就自己写一个,当然方法不止我这一种,我这个也不一定是最简便的,还有的可以交流一下!
首先建6个Text文本框作为显示
建立12个按钮 分别是0到9重输和删除键
再找一个新的文本框作为最终显示
新建一个名字为FindRoomID的脚本 代码如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class FindRoomID : MonoBehaviour {
public GameObject[] boxArea;
FindRoomID _instance;
string RoomID;
public Text ShowNum;
void Start()
{
ShowNum.text = "";
}
void Awake()
{
_instance = this;
}
GameObject GetEnemyBoxArea()
{
GameObject ret = null;
for (int i = 0; i < boxArea.Length; i++)
{
if (boxArea[i].GetComponent<Text>().text == "")
{
ret = boxArea[i];
break;
}
}
return ret;
}
void AddNum(int num)
{
GameObject go = GetEnemyBoxArea();
if (go == null)
return;
go.GetComponent<Text>().text = num.ToString();
}
void ResNum()
{
for (int i = 0; i < boxArea.Length; i++)
{
if (boxArea[i].GetComponent<Text>().text != "")
{
boxArea[i].GetComponent<Text>().text = "";
}
}
}
GameObject Delete()
{
GameObject ret = null;
for (int i = boxArea.Length - 1; i >= 0; i--)
{
if (boxArea[i].GetComponent<Text>().text != "")
{
ret = boxArea[i];
break;
}
}
return ret;
}
void DelNmub(string nul)
{
GameObject go = Delete();
if (go == null)
return;
go.GetComponent<Text>().text = nul.ToString();
}
public void Num0()
{
_instance.AddNum(0);
}
public void Num1()
{
_instance.AddNum(1);
}
public void Num2()
{
_instance.AddNum(2);
}
public void Num3()
{
_instance.AddNum(3);
}
public void Num4()
{
_instance.AddNum(4);
}
public void Num5()
{
_instance.AddNum(5);
}
public void Num6()
{
_instance.AddNum(6);
}
public void Num7()
{
_instance.AddNum(7);
}
public void Num8()
{
_instance.AddNum(8);
}
public void Num9()
{
_instance.AddNum(9);
}
public void RestNum()
{
_instance.ResNum();
ShowNum.text = "";
}
public void DelNum()
{
_instance.DelNmub("");
ShowNum.text = "";
}
public void InputOver() {
if (boxArea[5].GetComponent<Text>().text!="")
{
string Show0 = boxArea[0].GetComponent<Text>().text.ToString();
string Show1 = boxArea[1].GetComponent<Text>().text.ToString();
string Show2 = boxArea[2].GetComponent<Text>().text.ToString();
string Show3 = boxArea[3].GetComponent<Text>().text.ToString();
string Show4 = boxArea[4].GetComponent<Text>().text.ToString();
string Show5 = boxArea[5].GetComponent<Text>().text.ToString();
RoomID = Show0 + Show1 + Show2 + Show3 + Show4 + Show5;
Debug.Log("输入完毕,你输入的ID为:"+RoomID);
ShowNum.text = "你已经成功输入,ID为:" + RoomID;
}
}
}
把刚才的6个小的文本框拖拽到
boxArea上去 淡然前提
boxArea的size定义为6
把想最终展示的文本框拖拽到ShowNum上去
点击事件依次拉一下 0到9每个数字按钮上要拉两个点击事件
然后排列一下各个按钮的顺序就可以输入了
教程很简单 GoodLuck!