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

35
回复
1266
查看
打印 上一主题 下一主题
[ 复制链接 ]

15

主题

25

帖子

215

积分

Rank: 9Rank: 9Rank: 9

UID
327626
好友
6
蛮牛币
143
威望
0
注册时间
2019-7-19
在线时间
161 小时
最后登录
2019-11-17

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

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

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


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



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


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


public class LoginPanel : MonoBehaviour 
{

    public InputField NameInput;

    public RawImage PlayerHead;

    public Button LoginBtn;

    public Button SelectHeadBtn;

   
  



}



聊天界面ChatPanel



每个聊天消息框都是由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四处流浪
337/500
排名
9305
昨日变化

0

主题

42

帖子

337

积分

Rank: 4

UID
167763
好友
0
蛮牛币
114
威望
0
注册时间
2016-9-9
在线时间
171 小时
最后登录
2019-11-7
沙发
2019-8-26 13:21:27 只看该作者
6666666666666666666666666
7日久生情
2343/5000
排名
1828
昨日变化

14

主题

391

帖子

2343

积分

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

UID
217870
好友
1
蛮牛币
2346
威望
0
注册时间
2017-4-15
在线时间
1208 小时
最后登录
2019-11-21
板凳
2019-8-26 15:15:43 只看该作者
RE: 一个简单 小型的C#Socket网络通信库 聊天室示例(五) [修改]
3偶尔光临
184/300
排名
26988
昨日变化

0

主题

122

帖子

184

积分

Rank: 3Rank: 3Rank: 3

UID
39826
好友
0
蛮牛币
26
威望
0
注册时间
2014-8-14
在线时间
48 小时
最后登录
2019-8-26
地板
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
5#
2019-8-26 17:57:00 只看该作者
挺不错的呀
3偶尔光临
246/300
排名
11088
昨日变化

1

主题

19

帖子

246

积分

Rank: 3Rank: 3Rank: 3

UID
258260
好友
0
蛮牛币
679
威望
0
注册时间
2017-12-6
在线时间
134 小时
最后登录
2019-11-21
6#
2019-8-26 18:34:18 只看该作者
6666666666666666666666666
5熟悉之中
583/1000
排名
9490
昨日变化

0

主题

232

帖子

583

积分

Rank: 5Rank: 5

UID
292197
好友
0
蛮牛币
1002
威望
0
注册时间
2018-8-2
在线时间
231 小时
最后登录
2019-11-21
7#
2019-8-27 08:43:26 只看该作者
thinks for share!
4四处流浪
325/500
排名
11233
昨日变化

0

主题

58

帖子

325

积分

Rank: 4

UID
271126
好友
0
蛮牛币
1380
威望
0
注册时间
2018-3-7
在线时间
177 小时
最后登录
2019-11-22
8#
2019-8-27 08:58:06 只看该作者

thinks for share!
5熟悉之中
877/1000
排名
4112
昨日变化

1

主题

317

帖子

877

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1070
威望
0
注册时间
2017-9-21
在线时间
199 小时
最后登录
2019-11-15
9#
2019-8-27 09:29:20 只看该作者
6666666666666 网络通信的话没必要自己从Socket写, 用封装好的TCP/UDP Client就行了
5熟悉之中
983/1000
排名
10708
昨日变化

0

主题

698

帖子

983

积分

Rank: 5Rank: 5

UID
301976
好友
1
蛮牛币
1477
威望
0
注册时间
2018-10-31
在线时间
187 小时
最后登录
2019-11-21
10#
2019-8-29 10:14:26 只看该作者
大佬果然优秀,感谢大佬分享...
排名
28932
昨日变化

0

主题

19

帖子

81

积分

Rank: 2Rank: 2

UID
295090
好友
0
蛮牛币
235
威望
0
注册时间
2018-8-29
在线时间
50 小时
最后登录
2019-11-20
11#
2019-8-29 15:35:07 只看该作者
6666666666
2初来乍到
107/150
排名
24130
昨日变化

0

主题

52

帖子

107

积分

Rank: 2Rank: 2

UID
235432
好友
0
蛮牛币
109
威望
0
注册时间
2017-8-2
在线时间
37 小时
最后登录
2019-11-6
12#
2019-8-29 17:39:50 只看该作者
thank you!!!
4四处流浪
478/500
排名
10466
昨日变化

4

主题

195

帖子

478

积分

Rank: 4

UID
256471
好友
1
蛮牛币
525
威望
0
注册时间
2017-11-27
在线时间
178 小时
最后登录
2019-11-21
13#
2019-8-30 09:04:04 只看该作者
6666666666666666666666666
5熟悉之中
983/1000
排名
10708
昨日变化

0

主题

698

帖子

983

积分

Rank: 5Rank: 5

UID
301976
好友
1
蛮牛币
1477
威望
0
注册时间
2018-10-31
在线时间
187 小时
最后登录
2019-11-21
14#
2019-8-30 10:23:37 只看该作者
5熟悉之中
635/1000
排名
5714
昨日变化

0

主题

97

帖子

635

积分

Rank: 5Rank: 5

UID
253699
好友
2
蛮牛币
1433
威望
0
注册时间
2017-11-10
在线时间
292 小时
最后登录
2019-11-13
15#
2019-8-30 12:56:02 只看该作者
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则