开始了一个实例:
描述一下这个功能吧:窗口可以随意拖动,通过右下角的按钮可以随意调整整个窗口的大小,而且要让里面的东西都自适应:
用sprite建立一个bgr的大背景。然后建立label并且设置为textlist。建立scroll bar命名为scroll如图。还有用sprite建立一个button,负责让整个bgr大小可拖动变化,
给,bgr加上可拖动脚本——UIDrag Object Script.。给button加上UIDrag Resize Script。一切如下面的图:
button拖动大小变化的脚本添加。注意target是bgr如图:
bgr的拖动脚本添加注意target:
一切都ok了,让后调整里面每一个的Anchors的属性保证自适应。。。。。
然后开始弄输入框:把on Return key属性调成submit如图:
然后加入一个脚本命名为Mychat。控制输入框的输入功能:如下图注意把label加进去。。。。。
具体的Mychat脚本:
using UnityEngine;
using System.Collections;
public class mychat : MonoBehaviour {
private UIInput inputchat;
public UITextList textlist;
void Start () {
inputchat = this.GetComponent<UIInput>();
}
public void Onchatsubmit()
{
string chatmessage = inputchat.value;//获取聊天内容
textlist.Add(chatmessage);//把内容添加到textlist里面
inputchat.value = "";//使输入框的内容清除
}
}
然后把Onsubmit本来的属性脚本删除(本来的脚本实现的功能是输入一次后输入框会失去焦点)然后把输入框拖进去如图。然后在method里面添加刚才脚本里写的方法
这样聊天功能就实现了运行一下输入内容后按enter键就可以发送消息到Label上显示了:
要想加入一个发送人的名字的实现在原来的代码里加入一下内容。全部代码如下;
using UnityEngine;
using System.Collections;
public class mychat : MonoBehaviour {
private UIInput inputchat;
public UITextList textlist;
private string []names=new string [3]//定义个数组表示用户
{
"小紫龙",
"紫龙",
"大紫龙"
};
void Start () {
inputchat = this.GetComponent<UIInput>();
}
public void Onchatsubmit()
{
string chatmessage = inputchat.value;//获取聊天内容
string name=names[Random .Range (0,3)];//随机输出一个名字
textlist.Add(name+":"+chatmessage);//把内容添加到textlist里面
inputchat.value = "";//使输入框的内容清除
}
}
运行效果如图: