博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何快速建立一个测试资源Web服务器及异步获取资源(Unity3D)
阅读量:5248 次
发布时间:2019-06-14

本文共 1438 字,大约阅读时间需要 4 分钟。

背景

1、最近看了几位专栏作家的文章,几篇提到了资源通过网络的动态获取。如何建立一个快速的测试环境,不免是一个问题,也就最简单的就是假设http服务器了,微软系的当然首选的IIS了,别的也能用阿帕奇或者Tomcat了,net平台更轻量级的技术也有比如HttpListener或者Nancy都可以,虽然对于本人来说,创建IIS或者动手写一个轻量级的不是什么难事。但是在win10或者win8上装一个IIS扩展或者自己写一个小的服务器还是比较烦躁(反正我是不太喜欢在个人电脑上装服务类程序,你呢?),我想大家也一定有同样的选择问题,这里其实有更简单的选择。

2、可能地球人都知道Unity其实不是很推荐使用多线程,当然异步调用还是很有必要的,比如本文说的获取IO资源这样比较耗时的操作,所以最近也研究了一些大家分享的多线程的文章,看了一圈觉得让人满意的不多,知识点较多,封装的较少,比较初级,这里拍砖引玉,简单引入一把牛刀,亮亮眼。

实现

1、这里不卖关子了,如何建设一个就简单的Web服务器作为网络资源的测试服务器,这里我采用的方法是采用一个绿色微型的Web服务器,叫做MyWebServer,而且是绿色的无须安装,解压后是这个样子

这里其实我们看到asp.dll ,asp.net.dll,php等文件其实它不光能模拟静态资源的获取,动态资源其实也是可以得比如Json什么的,不过不是本篇想讲的内容,如果想了解自己看看程序帮助文档即可。

双击MyWebServer.exe运行即可,会启动左下的小窗口,这里可以定义服务目录和高级设置,这里如果就是本机测试使用就不用点击高级设置了,其实也用不着

我们进入web文件夹,也就是服务目录(或者叫虚拟目录,就是想在web服务器上陈列的文件内容)

这里我给Web目录中添加了一张图片,用来在Unity中动态获取,这里分别用图片和a.asp来测试下,在浏览器中通过本机IP进行测试如下图都成功了,至此一个绿色的版本的本地网络资源测试服务器建立完毕了,是不是很简单。

2、如何通过Unity异步获得网络图片资源,这里不使用系统协程来实现,而是用UniRx异步调用实现

using UnityEngine;

using UniRx;

public class BackgroundLoad : MonoBehaviour {

    // Use this for initialization

    void Start () {
        ObservableWWW.GetWWW(" =>
        {
            if (string.IsNullOrEmpty(www.error))
            {
                Texture2D texture = www.texture;
                SpriteRenderer render = this.GetComponent<SpriteRenderer>();
                render.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
            }
        });
    }  

}

这里我怀疑Unity原生的WWW类应该是异步的,只是通过协程轮询的方式效率不高而已。关于UniRx的知识可以另行学习或者参考我的这篇文章。

转载于:https://www.cnblogs.com/IlidanStormRage/p/6102279.html

你可能感兴趣的文章
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
Java实现二分查找
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
【★】浅谈计算机与随机数
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>