【TouchSocket】关于TouchSocket Unity学习笔记

关于TouchSocket Unity学习笔记

前言

真的感谢 若汝棋茗 大佬的开源分享
解决了我一名前端开发人员 写关于后端服务器相关的困扰!!!

大佬的开源项目配套及其齐全,清晰的文档+ 视频教程+ Example 示例
小白上手学习完全没有问题,拿来即用,哈哈哈。

我看全部关于 TouchSocket Unity部分的视频学习. 写篇笔记, 留后续开发备忘

笔记
  1. Unity3d Socket网络通信、RPC登录
    TouchSocket是基于Net45和.netstandard2.0的,且没有任何其他运行时,是 100%基于C#开发的,所以可以直接用于unity。
    但是由于TouchSocket全系都是基于Socket构建的,所以目前无法用于 WebGL。除此之外,支持window、android、ios、linux等平台。

    目前实测支持Il2cpp编译,支持HybridCLR热更新。

  2. 在Unity3d里面引用TouchSocket
    操作不多废话,教程非常清晰!
    【注意】
    初始导入示例package文件后,可能会报错
    会遇到插件tocken 过期失效的issue
    解决办法:重启Unity就好

    可能 若汝棋茗 大佬仓库中关于Unity Package的文件存在时效性问题
    解决办法: 根据视频中的教程需要在Nuget的官网重新替换.dll文件

  3. 在Unity3d中创建Tcp客户端与C# .Net6控制台通信
    关于Tcp 的示例演示

//服务端
 private static void StartTcpService(int port)
 {
     var service = new TcpService();
     service.Setup(new TouchSocketConfig()//载入配置
         .SetListenIPHosts(new IPHost[] { new IPHost(port) })
         .SetTcpDataHandlingAdapter(() => new FixedHeaderPackageAdapter())
         .ConfigurePlugins(a =>
         {
             a.Add<MyPlguin>();//此处可以添加插件
         })
         .ConfigureContainer(a =>
         {
             a.AddConsoleLogger();//添加一个日志注入
         }));
     service.Start();//启动
     service.Logger.Info($"Tcp服务器已启动,端口{port}");
 }
// 客户端
public void Connect()
{
    try
    {
        m_tcpClient.SafeDispose();
        m_tcpClient = new TcpClient();
        //声明配置
        TouchSocketConfig config = new TouchSocketConfig();
        config.ConfigureContainer(a =>
            {
                a.AddLogger(UnityLog.Logger);
            })
            .ConfigurePlugins(a =>
            {
                a.Add<MyTcpPlugin>();
            })
            .SetRemoteIPHost(new IPHost(inputField_Iphost.text))
            .SetTcpDataHandlingAdapter(() => new FixedHeaderPackageAdapter());

        //载入配置
        m_tcpClient.Setup(config);

        m_tcpClient.Connect();
    }
    catch (Exception ex)
    {
        UnityLog.Logger.Exception(ex);
    }
}
tcp的稳定可靠的连接特性
我觉得这个部分可以适用于游戏聊天及消息机制!
  1. 解决Tcp客户端在Unity里面粘分包的问题
    推荐引入FixedHeaderPackageAdapter
.SetTcpDataHandlingAdapter(() => new FixedHeaderPackageAdapter())
  1. 在Unity3d里面使用Rpc做游戏登录
    在这里插入图片描述
    文件传输
    消息机制
    友好的代理机制
    我觉得可以用于游戏的热更新、ab包加载、服务端Api设计及其他方法响应
    扩展学习视频地址
  2. 优化Unity3d使用Rpc的体验、生成代理调用

后期更新原因更名TouchRpcDmtp,使用方式大差不差,但功能更为强大

//方式一:客户端代理配置
	string codes = service.RpcStore.GetProxyCodes("命名空间");
	File.WriteAllText("文件路径",codes);

//方式二:加入Rpc代理插件
	//服务端
	.ConfigurePlugins(a =>
	{
	    a.UseDmtpRpc();
	
	    a.Add<MyTcpRpcPlguin>();
	})
	//客户端Plugins 窗口配置
代理获取的多种方式:
	本地配置
	远程配置
		url链接下载
		Rpc代理插件
  1. 优化Unity3d的Rpc调用配置
InvokeOption invokeOption =new InvokeOption();
设置消息的反馈类型

在这里插入图片描述
重置ID
相关已经被优化了
[DmtpRpc(true)]

  1. Unity3d Udp通信、UdpRpc登录
    类似Tcp使用,非可靠通信,适用于广播机制及视频流等

    TouchSocket 加入了允许超过64k的udp消息通信算法
    设置其适配器为UdpPackageAdapter类型即可


最近在花时间,测试Demo及跑通文档教程中的各个 通讯方法功能点

为后期实际搭建项目做准备

目前遇到的问题
Dmtp 在Unity中连接通讯时跑不通
询问大佬本人回复:需要注意Dll版本
解决办法:跟着这个思路,去到nuget 官网 搜到 dll文件,手动替换掉就好了

后期具体花时间测试Dmtp的

  1. 远程方法api调用
  2. 大文件传输
  3. 数据库连接访问
  4. xml及Json等
    测试完后,我再将我的测试Demo 放github上去
  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学习Unity3D时,以下是一些重要的笔记: 1. Unity3D基础知识: - 游戏对象(Game Objects)和组件(Components):了解游戏对象的层次结构和组件的作用。 - 场景(Scenes)和摄像机(Cameras):学会如何创建场景并设置摄像机视角。 - 材质(Materials)和纹理(Textures):掌握如何创建和应用材质和纹理。 - 动画(Animations):学习如何创建和控制游戏对象的动画。 2. 脚本编程: - C#语言基础:了解C#语言的基本语法和面向对象编程概念。 - Unity脚本编写:学习如何编写脚本来控制游戏对象的行为和交互。 - 常见组件和功能:掌握常见的Unity组件和功能,如碰撞器(Colliders)、刚体(Rigidbodies)、触发器(Triggers)等。 3. 游戏开发流程: - 设计游戏关卡:了解如何设计游戏场景和关卡,包括布局、道具、敌人等。 - 游戏逻辑实现:将游戏规则和玩家交互转化为代码实现。 - UI界面设计:学习如何设计游戏中的用户界面,包括菜单、计分板等。 - 游戏优化和调试:优化游戏性能,解决常见的错误和问题。 4. 学习资源: - Unity官方文档和教程:官方提供了大量的文档和教程,逐步引导你学习Unity3D。 - 在线教程和视频教程:网上有很多免费和付费的Unity教程和视频教程,可根据自己的需求选择学习。 - 社区论坛和博客:加入Unity开发者社区,与其他开发者交流并获取帮助。 通过系统地学习这些内容,你将能够掌握Unity3D的基础知识并开始开发自己的游戏项目。记得不断实践和尝试,不断提升自己的技能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tome.Tao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值