查看: 1621|回复: 0
打印 上一主题 下一主题

[经验分享] NUGI聊天功能的实现

[复制链接]

100

主题

3

听众

7683

积分

高级设计师

Rank: 6Rank: 6

纳金币
2378
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2015-4-23 12:43:47 |只看该作者 |倒序浏览
开始了一个实例:

描述一下这个功能吧:窗口可以随意拖动,通过右下角的按钮可以随意调整整个窗口的大小,而且要让里面的东西都自适应:

用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脚本:


[csharp] view plaincopy


  • 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上显示了:




要想加入一个发送人的名字的实现在原来的代码里加入一下内容。全部代码如下;


[csharp] view plaincopy


  • 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 = "";//使输入框的内容清除  
  •     }  
  •   
  •   
  • }  




运行效果如图:



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-22 23:09 , Processed in 0.061216 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部