用unity开发hololens应用的传输数据的注意事项

本文介绍了使用Unity开发Hololens应用时遇到的数据传输问题,特别是.NET类和WWW类在Windows应用中的限制。作者推荐使用Unity的UNet LLAPI进行数据传输,但指出其坑点,如只能连接一次发送一次数据。文章提供了服务端和客户端的示例代码,并建议使用HLAPI作为替代方案,以实现更稳定的数据交换。
摘要由CSDN通过智能技术生成

最近学校引进了一台hololens,本人非常开心,老师让我做数据传输的方面,本以为会非常简单,以为只是用c#的.net类就可以了。没想到做完之后bulild为windows应用时各种报错,找遍了各种文档最后才发现unity对windows应用的支持还是有欠缺的,例如.net的部分类用不了,www类也不能用。这对于想用unity做带有网络数据传输的windows应用开发特别不利,想了很多办法,最后决定用unity引擎自带的unet来做。值得注意的是unet有hlapi于llapi,这两个一个是底层的一个是上层的,llapi可以定制的比较多所以我选择了llapi。用上之后才发现是如此之坑,我按照unity官方文档来做的但是可以连接但不可以传数据,这个问题困扰了我两天,最后在unity的问题反馈那找到了答案,因为llapi是用的transport layer api用的是udp所以不是面向连接,服务端、客户端连上端口后,客户端会连接服务端,然后建立了连接。注意,此时发不了数据,客户端必须知道连上之后才能发,而且每次只能发一次。也就是说只能连一次发一次,真的是巨坑,如果想少数次的发少量数据可以用它,多次发数据就别用它了。以下是代码
服务端
int socketId;
int connectionId;
int myUnreliableChannelId;
int myReiliableChannelId;

// Use this for initialization
void Start()
{

    NetworkTransport.Init();
    ConnectionConfig config = new ConnectionConfig();
    myReiliableChannelId = config.AddChannel(QosType.Reliable);
  //    myUnreliableChannelId = config.AddChannel(QosType.Unreliable);
    HostTopology topology = new HostTopology(config, 10);
    socketId = NetworkTransport.AddHost(topology, 8888);
    byte error;
    connectionId = NetworkTransport.Connect(socketId, "192.168.0.100", 2000, 0, out error);
    }
    // Update is called once per frame
void Update()
{

    int recHostId;
    int 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值