NGUI制作聊天系统

聊天系统比较简陋

一个显示框 一个输入框,一个滑动条,一个放大缩小的控件

用到的

UI  Drag Object;

UI Drag Resize

UI scrollbar

UI Input

UI Text List

在 菜单栏中 NGUI下 Open prefabs Toolbar

将 background拖入背景 prefabs 

之后

在scens面板下 选择 background 按 T ,

右键-create sprite sibling

选择个合适的sprite作为 聊天窗口的 背景。

再右键 create sprite child 创建一个放大缩小的sprite  右键 -Attach box collider

在 Inspector 属性面板下 Add Compoent 添加放大缩小的脚本 UI Drag Resize

将其Target 设置为父物体 Pivot设置为 bottom right

 

设置好anchors

播放场景,就可以拖拽了

再创建一个聊天时的背景sprite。然后创建一个 Label作为 字体的显示。 Label 在inspector属性面板上 add一个UITextlist的component将其style 设置为Chat 字体出现为从下往上, Text Style 是从上往下显示。

paragraph History 是最大的显示记录。比如是10 ,

一共有20条记录 就只会显示 11~20条;

每当 Paragraph的size>大于 我们设定的History 时,就会从第一0覆盖掉,

然后 滚动条和Input输入框 可以在prefabs Toolbar中拖进来使用 

也可以自己制作一个,

UI Scoll Bar

自己制作也简单,右键 创建一个sprite attach Box collider ,加上 UI scrollBar的 脚本 foreground就是滑动条, background 就是滑动条的容器,背景,Tumb是滑动条中间的东西, value不用设置,value就是滑动条的位置,按比例进行计算,

Size控制 滑动条的大小, 滑动条一定要和背景 一样宽高,然后再调整size,

之后调整anchors 一般NGUI会自动根据层级关系以及窗口中的物体,进行设置, 这里靠右因此,左右设置为right,上下要拉伸,因此为Bottom  Top,这个anchors 就是 锚点的意思, 是相对物体Top left right bottom的 位置

然后 把 InputField拖进来 设置好自适应

要把ui input的 On return key改为Submit; 和事件去掉,自己添加一个脚本实现输入文字进行 输出显示 

然后写脚本 控制, 思路也很清晰,按回车 就是 submit 啦  

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chatEvent : MonoBehaviour {

    // Use this for initialization
    public UITextList chat_list;
    UIInput m_input;

    string[] names = new string[5]
    {"小红","小明","小花","小草","小树",
    };
    private void Awake()
    {
        m_input = GetComponent<UIInput>();
    }
    public void OnSubmit()
    {
          
        chat_list.Add(names[Random.Range(0, 5)]+":"+m_input.value);
        m_input.value = "";
    }
	// Update is called once per frame
	
}

思路就是 回车  加入text 清空 input.  

这个脚本挂载在 Contro-simple Input身上

 在inspector 属性面板 将 挂载有 UItextList的脚本物体 拖给它 UItextlist

然后添加 事件

至此一个简单的聊天系统就做好了

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值