在我的笔记Unity3D里面之 简单聊天系统一 里面已经介绍怎么创建聊天系统的背景、给聊天系统添加滚动条,设置Anchor锚点、以及设计聊天系统的输入框。
效果图如下所示:
现在我们要做的就是使用脚本控制聊天系统的内容显示,输入事件交互
就是当我们输入内容以后按回车聊天背景框里面需要显示我们输入的内容
我们的工程如下所示:
点击Simple Input Field 在右侧的Inspector里面
UIInput是控制输入的,On Return Key需要设置成Submit,就是当我们输入文字按回车的时候需要提交输入内容
下面的On Sumit是perfab自带的提交脚本,就是当我们提交内容的时候会失去焦点,只有当我们重新点击输入框的时候才可以输入内容,在这里我们不需要,所以需要设置成这样、
下面我们就需要添加一个我们自己写的脚本来控制输入交互事件了
scripts里面创建一个脚本叫MychatInput
1 using UnityEngine; 2 using System.Collections; 3 4 public class MyChatInput : MonoBehaviour { 5 6 private UIInput input; 7 public UITextList textlist; 8 9 private string[] names = new string[4]{ 10 "hello", 11 "系统", 12 "evilsnake", 13 "光头强" 14 }; 15 16 void Awake() { 17 input = this.GetComponent<UIInput>(); 18 } 19 20 public void OnChatSubmit() { 21 string chatMessage = input.value; 22 string name = names[Random.Range(0, 4)]; 23 textlist.Add( name+" : "+ chatMessage); 24 input.value = ""; 25 } 26 }
然后:
On Sumit处也要指定游戏物体以及方法
运行之后的效果为: