using UnityEngine;

using System.Collections;

using System.IO;

using System.Net;

using System;

using UnityEditor;

public class WWWLoad : MonoBehaviour

{

//string urlPath = "http://www.....";

string urlPath = @"http://localhost:8080/fbx/test.FBX";//资源网络路径(自己写)

string file_SaveUrl = @"D:\UnityProjects\TEST2\START\Assets\Resources\1比1.FBX";//资源保路径

FileInfo file;

bool isLoadModel=false;

HttpDldFile httpDown_O;

//初始化

void Start()

{

file = new FileInfo(file_SaveUrl);

httpDown_O = new HttpDldFile();

Debug.Log(file_SaveUrl);

}

//启动下载

public void WWWmodelsa()

{

bool run_f = httpDown_O.Download(urlPath, file_SaveUrl);

AssetDatabase.Refresh();//unity刷新

isLoadModel = true;

Debug.Log(urlPath);

}

//实例化模型

public void LoadModelas()

{

if (isLoadModel)

{

//GameObject objPrefab = (GameObject)Instantiate(AssetDatabase.LoadAssetAtPath(filePath,typeof(GameObject)));

//GameObject objPrefab = (MonoBehaviour.Instantiate(mPrefab, Vector3.zero, Quaternion.identity) as GameObject);

GameObject objPrefab = (GameObject)Resources.Load("1比1");

Instantiate(objPrefab);

Debug.Log(objPrefab.GetType().ToString());

}

}

}

class HttpDldFile

{

// Http方式下载文件

public bool Download(string url, string localfile)

{

bool flag = false;

long startPosition = 0; // 上次下载的文件起始位置

FileStream writeStream; // 写入本地文件流对象

// 判断要下载的文件夹是否存在

if (File.Exists(localfile))

{

writeStream = File.OpenWrite(localfile);             // 存在则打开要下载的文件

startPosition = writeStream.Length;                  // 获取已经下载的长度

writeStream.Seek(startPosition, SeekOrigin.Current); // 本地文件写入位置定位

}

else

{

writeStream = new FileStream(localfile, FileMode.Create);// 文件不保存创建一个文件

startPosition = 0;

}

try

{

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url);// 打开网络连接

if (startPosition > 0)

{

myRequest.AddRange((int)startPosition);// 设置Range值,与上面的writeStream.Seek用意相同,是为了定义远程文件读取位置

}

Stream readStream = myRequest.GetResponse().GetResponseStream();// 向服务器请求,获得服务器的回应数据流

byte[] btArray = new byte[512];// 定义一个字节数据,用来向readStream读取内容和向writeStream写入内容

int contentSize = readStream.Read(btArray, 0, btArray.Length);// 向远程文件读第一次

while (contentSize > 0)// 如果读取长度大于零则继续读

{

writeStream.Write(btArray, 0, contentSize);// 写入本地文件

contentSize = readStream.Read(btArray, 0, btArray.Length);// 继续向远程文件读取

}

//关闭流

writeStream.Close();

readStream.Close();

flag = true;        //返回true下载成功

}

catch (Exception e)

{

writeStream.Close();

flag = false;       //返回false下载失败

}

return flag;

}

}

注:命名空间,加载路径,数据流的接收与大小,会造成卡顿情况,是否打包Apk需要注意using UnityEditor;  AssetDatabase.Refresh();//unity刷新.....

unity动态加载FBX模型(Http下载到Rescources文件,场景Load直接调用):的更多相关文章

  1. unity动态加载(翻译) .

    AssetBundles are files which you can export from Unity to contain assets of your choice. These files ...

  2. Unity动态加载和内存管理(三合一)

    原址:http://game.ceeger.com/forum/read.php?tid=4394#info 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Re ...

  3. Unity 动态加载 Prefab

    Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBu ...

  4. Unity 动态加载资源的方式。

    方式 特点  用法  Resource.load  安装包会比较大  在Asset文件夹下建一个Resources命名的文件夹,在打包安装包时会把 Resources文件夹下的所有文件都打包进去,不管 ...

  5. pig加载两个不同字段个数的文件?load file with different items(f1有42列,f2有43列读到一个对象中)

    我文章提到,加载一个文件的部分列是可行.两列,你只读一列,没问题. 但是,两个文件,f1和f2,f1有42列,f2有43列,同时加载到一个流对象,如何? 答:成功加载.但是无结构(schema unk ...

  6. 转: 动态加载、移除js、css文件

    function loadjscssfile(filename, filetype){ if (filetype=="js"){ var fileref=document.crea ...

  7. 用JavaScript动态加载CSS和JS文件

    本文转载自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/14/2248451.html 今天项目中需要用到动态加载 CSS 文件 ...

  8. 动态加载js,css

    今天项目中需要用到动态加载 CSS 文件,经过一番折腾终于搞定,回家整理了一下,顺便融合了动态加载 JS 的功能写成了一个对象,先上代码: var dynamicLoading = { css: fu ...

  9. Android 插件技术:动态加载dex技术初探

    1.Android动态加载dex技术初探 http://blog.csdn.net/u013478336/article/details/50734108 Android使用Dalvik虚拟机加载可执 ...

随机推荐

  1. 基于Xcode5的本地化

    一.程序名国际化   1.首先添加应用对多语言支持的国际化文件   点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以 ...

  2. A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehicles in GPS-Denied Environments

    A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehi ...

  3. Leaflet入门:添加点线面并导入GeoJSON数据|Tutorial of Leaflet: Adding Points, Lines, Polygons and Import GeoJSON File

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  4. XJOI 3606 最大子矩形面积/LightOJ 1083 Histogram(单调栈/笛卡尔树)

    A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rec ...

  5. 金牌选手zzy的卡常头文件

    一定要粘上去啊,亲测快两倍 #pragma GCC diagnostic error "-std=c++11" #pragma GCC optimize("-fdelet ...

  6. eclipse配置tomcat 8.0.24服务器

    开发j2ee,肯定需要web容器来运行web项目,目前web容器有tomcat,jetty,Jboss,weblogic等服务器,最为常用的是tomcat服务器,其与eclipse的配置如下: tom ...

  7. Linux常用命令,学的时候自己记的常用的保存下来方便以后使用 o(∩_∩)o 哈哈

    service httpd restart 重启Apache service mysqld restart 重启mysql [-][rwx][r-x][r--] 1 234 567 890 421 4 ...

  8. NOIP提高组题目归类+题解摘要(2008-2017)

    因为前几天作死立了一个flag说要把NOIP近十年的题目做一做,并写一个题目归类+题解摘要出来,所以这几天就好好的(然而还是颓废了好久)写了一些这些往年的NOIP题目. 这篇博客有什么: 近十年NOI ...

  9. IO模型《六》IO模型比较分析

    IO模型比较分析 到目前为止,已经将四个IO Model都介绍完了.现在回过头来回答最初的那几个问题:blocking和non-blocking的区别在哪,synchronous IO和asynchr ...

  10. 为什么要使用rem

    为什么要使用rem 今天2019年4月16号更新,模仿网易移动端的的写法: html { font-size: 13.33333vw } @media screen and (max-width:32 ...