Unity WegGL IIS ab包

1.实现的效果

我想实现一个unity发布成WebGL后加载ab包的效果,将ab包和WebGL部署到IIS上。这些博客都太有用了,谢谢分享的人。webgl iis部署  CORS缺少   这个问题没有遇到 大致如下,按照步骤来应该是可以配置加载成功的,弄了两天就是总结一下,为了以后如果还会遇到问题。IIS的安装在这里。如果哪位大神有更多关于webgl的分享可以加我qq:774603077。谢谢

2.Unity发布WebGL

1.ab包加载代码如下,url路径是一会儿iis上部署的ab包的路径:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class Test : MonoBehaviour {

	// Use this for initialization
	void Start () {

        StartCoroutine(LoadABB());
    }


    private IEnumerator LoadABB()
    {
        string url = "http://192.168.0.22:8011/AssetBundle/cube.unity3d";
        //WWW www = new WWW(url);

        UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(url);
        yield return request.SendWebRequest();

        if (request.isNetworkError)
        {
            Debug.Log("错误:" + request.error);
        }
        else
        {
            AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
            GameObject go = ab.LoadAsset("Cube");
            GameObject.Instantiate(go).transform.position = Vector3.one;
            Debug.Log("加载完成了:" + go.name);
        }

    }
}
2.ab包打包代码如下,注意一点打包的环境就行,打包的文件夹是输入的
 BuildTarget.WebGL

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
//********************************************************************
// 文件名: BuildABEditor
// 描述: 打包生成AB包
// 作者: JMM
// 创建时间: 5/21/2018 9:49:42 AM
//********************************************************************
public class BuildABEditor  {
    /// 
    /// 打包
    /// 
    [MenuItem("工具/生成WebGL ab包")]
    static void Build_AssetBundle_WebGL()
    {
        BuildAssetBundleWindow_WebGL win = new BuildAssetBundleWindow_WebGL();
        win.Show();
    }
}
public class BuildAssetBundleWindow_WebGL : EditorWindow
{
    /// 
    /// 打包到哪个文件夹下
    /// 
    string fileName = "D:/AssetBundle/";

    private void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("打包到的文件夹:");
        fileName = EditorGUILayout.TextField(fileName);

        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("确定打包"))
        {
            BuildPipeline.BuildAssetBundles(fileName, BuildAssetBundleOptions.None, BuildTarget.WebGL);

            Debug.Log("打包成功");
        }
        if (GUILayout.Button("取消打包"))
        {
            this.Close();
        }
    }

}

3.打包注意事项在官网上有,读懂官网就能全部懂了。我遇到的如下,在Player Setting里面这个选项不要勾选,勾选了的话Unity打包发布的时候就会查找咱们有哪些脚本没有用,如果没有用就不会打包到WebGL上:

Unity WegGL IIS ab包_第1张图片

3.IIS部署

  1. 简单部署在这里《部署过程》。物理路径里面我放了ab包(在AssetBundle下面)和WebGL的发布包。crossdomain.xml也不知道干什么用的,因为百度的时候有人添加了Unity WegGL IIS ab包_第2张图片
  2. 部署后的配置web.config如下:


    
        
        
            
            
        
        
            
                
                
                
                
            
        
    

3.web.config也可以在iis上手动添加,添加MIME类型:Unity WegGL IIS ab包_第3张图片

Unity WegGL IIS ab包_第4张图片

Unity WegGL IIS ab包_第5张图片

4.添加HTTP响应标头:

Unity WegGL IIS ab包_第6张图片Unity WegGL IIS ab包_第7张图片

5.因为加载ab包需要访问目录,设置目录浏览权限为启动状态,因为启动,现在显示的是禁止。

Unity WegGL IIS ab包_第8张图片

Unity WegGL IIS ab包_第9张图片

你可能感兴趣的:(编程过程总结小知识,Unity3D学习笔记)