Unity3d 制作聊天框

编程入门 行业动态 更新时间:2024-10-07 15:21:26

<a href=https://www.elefans.com/category/jswz/34/1766126.html style=Unity3d 制作聊天框"/>

Unity3d 制作聊天框

在使用Unity3d开发一个简易的聊天程序时,需要在客户端显示聊天记录列表,做为一个初学者,开发这个功能具然快用了两天了。最后通过调一个参数解决了。这里记录一下,希望对新手有所帮助。
最终的显示效果是这样的:

项目结构如图所示:

项目中的StartPanel是用来输入昵称和连接服务器用的,这里先不用管它。ChatPanel中实现了聊天历史列表记录和聊天消息的发送。
开发步骤如下所示:

添加ChatPanel,做为聊天内容管理的Panel界面。
在ChatPanel下面添加聊天信息输入框ChatInputField
在ChatPanel下面添加一个Scroll View ,它的参数面板如下所示:


给Scroll View->Viewport->Content添加Content Size Filter和Vertical Layout Group,参数如下所示:


然后添加如下脚本,这里的思路是每一条聊天记录都会动态加载到一个Text组件中,这方便处理不同组件显示的内容。

// Update is called once per frame
void Update()
{if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter)){if (chatInput.text != ""){string username = Player.GetInstance().NickName;string addText = "\n  " + "<color=red>" + username + "</color>: " + chatInput.text;GameObject textShowPanel = showPannel.gameObject;GameObject chatTextArea = (GameObject)Instantiate(Resources.Load("ChatTextArea"));chatTextArea.transform.SetParent(textShowPanel.transform, false);Text text = chatTextArea.GetComponent<Text>();text.text = addText;chatInput.text = "";chatInput.ActivateInputField();//强制更新,如果滚动条显示了,让滚动条始终在最低下。Canvas.ForceUpdateCanvases();scrollRect.verticalNormalizedPosition = 0f;Canvas.ForceUpdateCanvases();}}
}

关注下面的公众号,获取源码

更多推荐

Unity3d 制作聊天框

本文发布于:2024-02-27 19:44:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765910.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Unity3d

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!