当前位置:   article > 正文

Unity3d 制作聊天框_unity聊天框

unity聊天框

在使用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();
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

关注下面的公众号,获取源码
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/127606
推荐阅读
相关标签
  

闽ICP备14008679号