| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity3d C# 基于UGUI实现类似WX聊天气泡功能(含源码) -> 正文阅读 |
|
[游戏开发]Unity3d C# 基于UGUI实现类似WX聊天气泡功能(含源码) |
前言如题的需求本人曾在NGUI上实现过,不过当下很多年没有用NGUI了,现在的需求就需要继续在UGUI版本上实现一边,感觉配合grid 和 ContentSizeFitter等组件较快就可以实现。折腾了一个小时初步成型了,在这分享给大家。 效果实现搭建UI我们就进行大逻辑仿WX的效果进行这Demo。分对方和自己的聊天条。 主界面聊天主界面主要是一个滚动记录面板 输入框 和发送按钮: 自己消息条这个自己的消息条包含头像和聊天气泡,聊天气泡的大小是随内容的大小进行缩放的。而且在右侧,我们按如下搭建: 其中注意的是Text上增加了ContentSizeFitter组件,方便我们自动转行和文字框体大小获取,而横竖的自己适应大小需要动态设置。这个我们编码的时候会实现。 其中注意的是BG节点的设置: 这是为了方便内容大小变动气泡变动: 当然TalkSelf的设置同上。 对方消息条对方的和自己的基本类似只是位置不一样。 其中注意的是Text上增加了ContentSizeFitter组件,方便我们自动转行和文字框体大小获取,而横竖的自己适应大小需要动态设置。这个我们编码的时候会实现。 其中注意的是BG节点的设置: 这是为了方便内容大小变动气泡变动: 当然TalkOther的设置同上。 编码实现这个功能的核心思路就是,根据内容的大小设置气泡背景的大小和整个消息条目的大小。在区分一下对方和自己的消息即可。 消息条类TalkItem这个脚本挂在TalkOther和TalkSelf上,其职责就是设置内容,同步设置气泡大小。 动态ContentSizeFitter 模式:
当一行时自适应高宽;当多行时只需自适应高度。 同步条目、气泡高度:
聊天管理类TalkMgr的核心职责就是按类别添加聊天信息。
提供此接口,参数是信息内容和发送者。 测试脚本TalkTest 的功能就测试发送和模拟回复。
问题在开发过程中发现个比较2的问题,这里也分享一下。问题如下: 能看出来在同步框的时候明显晚了一步,这个问题是ContentSizeFitter自适应会需要一点时间,我这边修复的方法是延时了0.2秒在把scale改为1,不能使用SetActive。 项目工程https://download.csdn.net/download/qq_33789001/83784673 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 14:25:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |