IIS服务器搭建与WWW资源加载

本文介绍使用Unity WWW通过HTTP协议实现在自己IIS搭建的网站上加载资源图片,并将图片保存到本地主机上

【IIS服务器搭建】

打开控制面板,点击卸载程序

IIS服务器搭建与WWW资源加载_第1张图片

点击启动或关闭Windows功能

IIS服务器搭建与WWW资源加载_第2张图片

按如下图勾选Web管理工具


等待安装完成后,搜索Internet InformationServices,点击进入iis管理器

IIS服务器搭建与WWW资源加载_第3张图片

右键点击添加网站,按如下图填写弹出的窗口内容

物理路径是保存我们网站的加载空间

IIS服务器搭建与WWW资源加载_第4张图片

填写完成后,便会添加我们刚刚添加的网站了

IIS服务器搭建与WWW资源加载_第5张图片

打开目录浏览,检查我们的资源是否应用了

IIS服务器搭建与WWW资源加载_第6张图片

打开C:\Windows\System32\drivers\etc目录,在目录下找到hosts文件,打开文件

(如果没有找到hosts文件,点击查看,将隐藏文件取消勾选;在右键文件属性窗口上,取消只读窗口,就可以在该文件下编辑内容了)

IIS服务器搭建与WWW资源加载_第7张图片

添加以下字段:

127.0.0.1 www.text.com

这样我们的iis服务器就算搭建完成了

接下来在物理路径目录下添加一个XX.html文件,在里面简单添加一个helloword字段

在浏览器上输入域名,检查网站是否配置成功,当网页上显示helloword表明成功搭建

注意:倘若报错,很有可能你的物理路径目录权限问题,把该目录权限设置为everyone



【WWW资源加载】

搭建完自己的web服务器后,接下来介绍将图片资源加载到unity中,使用方法:WWW

在用iis服务器搭建的网站的物理路径目录下添加一张图片,这里我命名为:myImage.png

IIS服务器搭建与WWW资源加载_第8张图片

接下来新建一个C#脚本,将其挂载到main camera游戏对象上

在Project视图下新建一个streamingAssets文件夹,用于保存下载来的图片

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.IO;

public class LoadImage : MonoBehaviour 
{

    private string URL = "www.text.com/myImage.png";
    //得到Application.streamingAssetsPath路径只能在主线程里得到,所以不能这样定义变量
    //private string filePath = "file://" + Application.streamingAssetsPath + "/myImage.png";

    private Texture2D webImg=null;
    private Texture2D localImg=null;


    void OnGUI()
    {
        if (webImg)
        {
            GUI.DrawTexture(new Rect(80, 80, 725, 163), webImg);
        }
        if (localImg)
        {
            GUI.DrawTexture(new Rect(80, 80, 725, 163), localImg);
        }
    }

    public void OnBtnLoadInHttp()
    {
        StartCoroutine(LoadWebImage(URL,0));
    }

    public void OnBtnLoadInLocal()
    {
        //在本地文件夹下加载图片
        StartCoroutine(LoadWebImage("file://" + Application.streamingAssetsPath + "/myImage.png", 1));
    }

    IEnumerator LoadWebImage(string str,int count)
    {
        WWW www = new WWW(str);
        yield return www;

        switch(count)
        {
            case 0:
                if (www.isDone && www.error == null)
                {
                    webImg = www.texture;

                    //将图片保存到本地
                    byte[] imageDate = webImg.EncodeToPNG();
                    File.WriteAllBytes(Application.streamingAssetsPath + "/myImage.png", imageDate);
                }
                break;
            case 1:
                if (www.isDone && www.error == null)
                {
                    localImg = www.texture;
                }
                break;
        }
    }
}

在unity中创建两个UI Button

分别将响应函数添加入按钮上


先点击第一个按钮,将下载我们网站的图片并将其保存到streamingAssets文件夹下

点击第二个按钮,此时加载显示的图片便是保存在我们本地的的的资源图片


你可能感兴趣的:(移动游戏开发,unity3d,Unity游戏开发)