将模型资源加载到场景中显示
1.从本地加载
void OnGUI()
{
if (GUILayout.Button("click"))
{
StartCoroutine(getmodel());
}
}
IEnumerator getmodel()
{
WWW w = new WWW("file://"+Application.dataPath+"/ok.unity3d");
yield return w;
Instantiate(w.assetBundle.mainAsset);
}
2.从服务器端加载
这里我已经将资源模型加载到百度云盘上,然后获取一个url下载地址:(直接模型就是ok.unity3d格式的)
中间是搭建的sqlserver服务器和asp.net服务器:
using UnityEngine;
using System.Collections;
using System.Text;
public class NewBehaviourScript : MonoBehaviour
{
string s;
private GameObject obj;
private WWW www;
private string url = @"http://192.168.1.6/plusFile/Test.aspx";
private string url1 = @"http://114.92.247.6/xiaowei/ok.unity3d";
void Start()
{
}
private bool isCompleted = false;
void Update()
{
if (www == null)
{
return;
}
if (!isCompleted && www.isDone)
{
print("Download completed");
isCompleted = true;
print("6");
obj = GameObject.Instantiate(www.assetBundle.mainAsset) as GameObject;
obj.transform.position = new Vector3(0, 1, 20);
print("7");
}
}
void OnGUI()
{
if (GUI.Button(new Rect(20, 20, 100, 40), "加载"))
{
StartCoroutine(getHtml(url));
print("2");
}
}
IEnumerator getHtml(string url)
{
print("3");
WWW web = new WWW(url);
yield return web;
print("1");
//Encoding e1 = new ASCIIEncoding();
//this.s = e1.GetString(web.bytes);
//print("web" + e1.GetString(web.bytes));
this.s = web.text;
StartCoroutine(getModel(s));
}
IEnumerator getModel(string str)
{
print("s:" + str);
this.www = new WWW(str);
yield return www;
print("5");
}
}
同样的效果:
直接从网上获取资源:
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
string url1 = @"http://114.92.247.6/xiaowei/ok.unity3d";
GameObject obj;
void Start () {
}
void Update () {
}
void OnGUI()
{
if (GUI.Button(new Rect(20, 20, 100, 40), "加载"))
{
StartCoroutine(getHtml(this.url1));
print("2");
}
}
IEnumerator getHtml(string url)
{
print("3");
WWW web = new WWW(url);
yield return web;
obj = Instantiate(web.assetBundle.mainAsset) as GameObject;
obj.transform.position = new Vector3(0,1,20);
print("1");
}
}