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

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

14

主题

23

帖子

172

积分

Rank: 9Rank: 9Rank: 9

UID
327626
好友
4
蛮牛币
129
威望
0
注册时间
2019-7-19
在线时间
126 小时
最后登录
2019-9-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四处流浪
328/500
排名
9304
昨日变化

0

主题

41

帖子

328

积分

Rank: 4

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

14

主题

389

帖子

2320

积分

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

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

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

主题

34

帖子

53

积分

Rank: 2Rank: 2

UID
320705
好友
0
蛮牛币
30
威望
0
注册时间
2019-4-26
在线时间
19 小时
最后登录
2019-9-16
5#
2019-8-26 17:57:00 只看该作者
挺不错的呀
3偶尔光临
191/300
排名
11087
昨日变化

0

主题

7

帖子

191

积分

Rank: 3Rank: 3Rank: 3

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

0

主题

220

帖子

542

积分

Rank: 5Rank: 5

UID
292197
好友
0
蛮牛币
858
威望
0
注册时间
2018-8-2
在线时间
202 小时
最后登录
2019-9-17
7#
2019-8-27 08:43:26 只看该作者
thinks for share!
3偶尔光临
283/300
排名
11232
昨日变化

0

主题

52

帖子

283

积分

Rank: 3Rank: 3Rank: 3

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

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

1

主题

287

帖子

828

积分

Rank: 5Rank: 5

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

0

主题

607

帖子

878

积分

Rank: 5Rank: 5

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

0

主题

19

帖子

73

积分

Rank: 2Rank: 2

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

0

主题

49

帖子

103

积分

Rank: 2Rank: 2

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

4

主题

131

帖子

359

积分

Rank: 4

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

0

主题

607

帖子

878

积分

Rank: 5Rank: 5

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

0

主题

96

帖子

621

积分

Rank: 5Rank: 5

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

本版积分规则