找回密码
 注册帐号

扫一扫,访问微社区

开果 一个简单 小型的C#Socket网络通信库 聊天室示例(五)

36
回复
2341
查看
[ 复制链接 ]

15

主题

25

帖子

220

积分

Rank: 9Rank: 9Rank: 9

UID
327626
好友
6
蛮牛币
87
威望
0
注册时间
2019-7-19
在线时间
164 小时
最后登录
2019-12-1
2019-8-26 12:02:10 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
讲完了 聊天消息了 下面说两个主界面 还有工具类


这里懒得再转Sprite直接用RawImage了 他可以放Texture2D
登录界面 LoginPanel

登录界面.png

应该没啥说的  就建这几个组件


代码:
[C#] 纯文本查看 复制代码
using UnityEngine;
using UnityEngine.UI;


public class LoginPanel : MonoBehaviour 
{

    public InputField NameInput;

    public RawImage PlayerHead;

    public Button LoginBtn;

    public Button SelectHeadBtn;

   
  



}



聊天界面ChatPanel
聊天界面.png


每个聊天消息框都是由SpawnDialogUI这个函数进行创建的  创建完要下拉最下面消息框嘛 所以要更改Content的位置进行下拉操作
代码:

[C#] 纯文本查看 复制代码
using UnityEngine;
using UnityEngine.UI;

public class ChatPanel : MonoBehaviour 
{
    public Button SendChatBtn;

    public RawImage HeadImg;

    public Text PlayerNameTxt;

    public RectTransform DialogParent;

    public DialogUI DialogUIPrefab;

    public InputField chatInput;


    /// <summary>
    /// 生成对话框  懒得写枚举了。用int吧  0我方 其他对方
    /// </summary>
    /// <param name="i"></param>
    /// <returns></returns>
    public DialogUI SpawnDialogUI(string playername, string info,Texture2D  head, int i=0)
    {

        DialogUI dialogUI;
        if (i==0)
        {
             dialogUI = Instantiate(DialogUIPrefab, DialogParent.transform).InitLocalDialog(playername, info, head);
        }
        else
        {
            dialogUI = Instantiate(DialogUIPrefab, DialogParent.transform).InitDialog(playername, info, head);
        }
        //下拉对话框 上面应该会延时 所以这里也需要延时
       Invoke("HaulDown",0.02f);
    
        return dialogUI;


    }

    public void HaulDown()
    {
        DialogParent.anchoredPosition = new Vector2(DialogParent.anchoredPosition.x, DialogParent.sizeDelta.y);
    }
}




工具拓展类 ImageExtension

ByteToTexture 就是Byte转成Texture2D图片
LoadImage 是RawImage 加载Byte[]数据的图片


代码:
[C#] 纯文本查看 复制代码
using System.IO;
using UnityEngine;
using UnityEngine.UI;

public static class ImageExtension  
{
    public static void LoadImage(this RawImage rawImage,byte[] data,int Width=200,int Height=200)
    {
        Texture2D texture2D = new Texture2D(Width, Height);
        texture2D.LoadImage(data);
        rawImage.texture = texture2D;

    }

    public static Texture2D ByteToTexture(this byte[] data, int Width = 200, int Height = 200)
    {
        Texture2D texture2D = new Texture2D(Width, Height);
        texture2D.LoadImage(data);
        return texture2D;

    }

    /// <summary>
    /// 路劲图片文件转byte[]
    /// </summary>
    /// <param name="filename填写图片路径"></param>
    /// <returns></returns>
    public static byte[] GetPictureBytes(this string filename)
    {
        FileInfo fileInfo = new FileInfo(filename);
        byte[] buffer = new byte[fileInfo.Length];
        using (FileStream stream = fileInfo.OpenRead())
        {
            stream.Read(buffer, 0, buffer.Length);
        }
        return buffer;
    }

}



好了我们下篇最后一篇继续  基本功能都写在了GameRoot那  =。=

工程地址
游客,如果您要查看本帖隐藏内容请回复




回复

使用道具 举报

4四处流浪
393/500
排名
9303
昨日变化

0

主题

46

帖子

393

积分

Rank: 4

UID
167763
好友
0
蛮牛币
166
威望
0
注册时间
2016-9-9
在线时间
227 小时
最后登录
2020-7-24
2019-8-26 13:21:27 显示全部楼层
6666666666666666666666666
回复 支持 反对

使用道具 举报

7日久生情
2574/5000
排名
1826
昨日变化

14

主题

393

帖子

2574

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
217870
好友
1
蛮牛币
1562
威望
0
注册时间
2017-4-15
在线时间
1437 小时
最后登录
2020-8-7
2019-8-26 15:15:43 显示全部楼层
RE: 一个简单 小型的C#Socket网络通信库 聊天室示例(五) [修改]
回复 支持 反对

使用道具 举报

3偶尔光临
187/300
排名
26990
昨日变化

0

主题

122

帖子

187

积分

Rank: 3Rank: 3Rank: 3

UID
39826
好友
0
蛮牛币
14
威望
0
注册时间
2014-8-14
在线时间
51 小时
最后登录
2020-6-24
2019-8-26 15:57:32 显示全部楼层
6666666666666/b]
回复 支持 反对

使用道具 举报

0

主题

36

帖子

61

积分

Rank: 2Rank: 2

UID
320705
好友
0
蛮牛币
17
威望
0
注册时间
2019-4-26
在线时间
25 小时
最后登录
2019-11-19
2019-8-26 17:57:00 显示全部楼层
挺不错的呀
回复

使用道具 举报

4四处流浪
473/500
排名
11087
昨日变化

1

主题

25

帖子

473

积分

Rank: 4

UID
258260
好友
0
蛮牛币
1851
威望
0
注册时间
2017-12-6
在线时间
355 小时
最后登录
2020-8-10
2019-8-26 18:34:18 显示全部楼层
6666666666666666666666666
回复 支持 反对

使用道具 举报

5熟悉之中
690/1000
排名
9488
昨日变化

0

主题

242

帖子

690

积分

Rank: 5Rank: 5

UID
292197
好友
0
蛮牛币
1313
威望
0
注册时间
2018-8-2
在线时间
328 小时
最后登录
2020-8-11
2019-8-27 08:43:26 显示全部楼层
thinks for share!
回复

使用道具 举报

5熟悉之中
507/1000
排名
11232
昨日变化

0

主题

67

帖子

507

积分

Rank: 5Rank: 5

UID
271126
好友
0
蛮牛币
2842
威望
0
注册时间
2018-3-7
在线时间
350 小时
最后登录
2020-8-11
2019-8-27 08:58:06 显示全部楼层

thinks for share!
回复

使用道具 举报

5熟悉之中
886/1000
排名
4110
昨日变化

1

主题

320

帖子

886

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1062
威望
0
注册时间
2017-9-21
在线时间
204 小时
最后登录
2020-6-3
2019-8-27 09:29:20 显示全部楼层
6666666666666 网络通信的话没必要自己从Socket写, 用封装好的TCP/UDP Client就行了
回复 支持 反对

使用道具 举报

7日久生情
2210/5000
排名
10707
昨日变化

0

主题

1224

帖子

2210

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
301976
好友
1
蛮牛币
2624
威望
0
注册时间
2018-10-31
在线时间
888 小时
最后登录
2020-8-10
2019-8-29 10:14:26 显示全部楼层
大佬果然优秀,感谢大佬分享...
回复 支持 反对

使用道具 举报

3偶尔光临
176/300
排名
28935
昨日变化

0

主题

24

帖子

176

积分

Rank: 3Rank: 3Rank: 3

UID
295090
好友
0
蛮牛币
361
威望
0
注册时间
2018-8-29
在线时间
140 小时
最后登录
2020-7-31
2019-8-29 15:35:07 显示全部楼层
6666666666
回复

使用道具 举报

2初来乍到
111/150
排名
24130
昨日变化

0

主题

54

帖子

111

积分

Rank: 2Rank: 2

UID
235432
好友
0
蛮牛币
119
威望
0
注册时间
2017-8-2
在线时间
39 小时
最后登录
2020-5-8
2019-8-29 17:39:50 显示全部楼层
thank you!!!
回复

使用道具 举报

5熟悉之中
788/1000
排名
10465
昨日变化

6

主题

251

帖子

788

积分

Rank: 5Rank: 5

UID
256471
好友
1
蛮牛币
1219
威望
0
注册时间
2017-11-27
在线时间
439 小时
最后登录
2020-8-11
2019-8-30 09:04:04 显示全部楼层
6666666666666666666666666
回复 支持 反对

使用道具 举报

7日久生情
2210/5000
排名
10707
昨日变化

0

主题

1224

帖子

2210

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
301976
好友
1
蛮牛币
2624
威望
0
注册时间
2018-10-31
在线时间
888 小时
最后登录
2020-8-10
2019-8-30 10:23:37 显示全部楼层
回复

使用道具 举报

5熟悉之中
711/1000
排名
5712
昨日变化

0

主题

105

帖子

711

积分

Rank: 5Rank: 5

UID
253699
好友
2
蛮牛币
2004
威望
0
注册时间
2017-11-10
在线时间
360 小时
最后登录
2020-8-11
2019-8-30 12:56:02 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则