①重新创建一个工程文件夹,引入带有资源文件的游戏项目。
在unity的工作区间,重新创建一个endlessrunner06文件夹。
双击unity3d软件:
等待进度条完成
等待进度条完成
等待进度条完成
②将之前步骤利用assetbundle已经打包成.unity3d的文件夹和文件进行删除,后期利用云服务器下载即可。
③将一些重名的组件更改一下名字,后期好找到这些组件。
更改完以后记得save scene和save project。
④核心代码:从远程服务器找到用assetbundle打包的.unity3d文件。
在GamePlay文件夹创建c#文件myassets
右键
再按F2键,将c#文件名,改为:myassets
c#文件myassets的内容为:
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
public class myassets : MonoBehaviour
{
void Start()
{
this.StartCoroutine(LoadAssetBundle());
}
IEnumerator LoadAssetBundle()
{
//string url = "http://127.0.0.1:9101/endlessrunnerassets/myassets15android.unity3d";
string url = "http://XX:XXX:XX:XXX:XX/endlessrunner02/endlessrunnerassets/myassets17android.unity3d";
//开始加载WWW
WWW www = WWW.LoadFromCacheOrDownload (url, 4);
Debug.Log ("**************");
//yield return www;
Debug.Log ("**********02");
//加载失败
if(www.error != null)
{
Debug.Log("Load Bundle Faile " + url + " Error Is " + www.error);
yield break;
}
AssetBundle bundle = www.assetBundle;
Object[] objs = bundle.LoadAll();
//Debug.Log(objs.Length);
for(int i =0;i< objs.Length;i++){
/*
if(objs[i].name.Equals("ColliderSpawn")){
Debug.Log("ColliderSpawn的index="+i);
}
if(objs[i].name.Equals("SpawnObj")){
Debug.Log("SpawnObj的index="+i);
}
if(objs[i].name.Equals("coin")){
Debug.Log("coin的index="+i);
}
if(objs[i].name.Equals("slide")){
Debug.Log("slide的index="+i);
}
if(objs[i].name.Equals("hit")){
Debug.Log("hit的index="+i);
}
if(objs[i].name.Equals("getitem")){
Debug.Log("getitem的index="+i);
}
*/
if(objs[i].name.Equals("bgm - Bounce_It")){
Debug.Log("bgm - Bounce_It的index="+i);
}
/*
if(objs[i].name.Equals("Run")){
Debug.Log("Run的index="+i);
}
if(objs[i].name.Equals("TurnLeft")){
Debug.Log("TurnLeft的index="+i);
}
if(objs[i].name.Equals("TurnRight")){
Debug.Log("TurnRight的index="+i);
}
if(objs[i].name.Equals("JumpUp")){
Debug.Log("JumpUp的index="+i);
}
if(objs[i].name.Equals("JumpDown")){
Debug.Log("JumpDown的index="+i);
}
if(objs[i].name.Equals("JumpLoop")){
Debug.Log("JumpLoop的index="+i);
}
if(objs[i].name.Equals("Roll")){
Debug.Log("Roll的index="+i);
}
if(objs[i].name.Equals("Dead")){
Debug.Log("Dead的index="+i);
}
*/
//Debug.Log(objs[i].name);
}
DestroyImmediate (GameObject.Find ("SettingMaterial").GetComponent<SettingMaterial> (), true);
GameObject.Find("SettingMaterial").AddComponent<SettingMaterial>();
Material material0 = bundle.Load("Board" ,typeof (Material)) as Material;
//Instantiate(material0);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[0]=material0;
Material material1 = bundle.Load("Car_Texture" ,typeof (Material)) as Material;
//Instantiate(material1);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[1]=material1;
Material material2 = bundle.Load("CoinTexture" ,typeof (Material)) as Material;
//Instantiate(material2);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[2]=material2;
Material material3 = bundle.Load("Gave" ,typeof (Material)) as Material;
//Instantiate(material3);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[3]=material3;
Material material4 = bundle.Load("Road" ,typeof (Material)) as Material;
Instantiate(material4);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[4]=material4;
Material material5 = bundle.Load("Store" ,typeof (Material)) as Material;
//Instantiate(material5);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[5]=material5;
Material material6 = bundle.Load("TheCube_Jump" ,typeof (Material)) as Material;
//Instantiate(material6);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[6]=material6;
Material material7 = bundle.Load("TheCube_Magnet" ,typeof (Material)) as Material;
//Instantiate(material7);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[7]=material7;
Material material8 = bundle.Load("TheCube_Multiply" ,typeof (Material)) as Material;
//Instantiate(material8);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[8]=material8;
Material material9 = bundle.Load("TheCube_Run" ,typeof (Material)) as Material;
//Instantiate(material9);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[9]=material9;
Material material10 = bundle.Load("Tx_modelB001" ,typeof (Material)) as Material;
//Instantiate(material10);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[10]=material10;
Material material11 = bundle.Load("Tx_modelB001-2" ,typeof (Material)) as Material;
//Instantiate(material11);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[11]=material11;
Material material12 = bundle.Load("Tx_modelB001-3" ,typeof (Material)) as Material;
//Instantiate(material12);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[12]=material12;
Material material13 = bundle.Load("Tx_modelB001-4" ,typeof (Material)) as Material;
//Instantiate(material13);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[13]=material13;
Material material14 = bundle.Load("Tx_modelB001-5" ,typeof (Material)) as Material;
//Instantiate(material14);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[14]=material14;
Material material15 = bundle.Load("Tx_modelB001-6" ,typeof (Material)) as Material;
//Instantiate(material15);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[15]=material15;
Material material16 = bundle.Load("Tx_tunnel_1" ,typeof (Material)) as Material;
//Instantiate(material16);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[16]=material16;
Material material17 = bundle.Load("Tx_tunnel_2" ,typeof (Material)) as Material;
//Instantiate(material17);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[17]=material17;
Material material18 = bundle.Load("Tx_tunnel_Long" ,typeof (Material)) as Material;
//Instantiate(material18);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[18]=material18;
Material material19 = bundle.Load("Tx_BoardUp" ,typeof (Material)) as Material;
//Instantiate(material19);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[19]=material19;
Material material20 = bundle.Load("Tx_Buss" ,typeof (Material)) as Material;
//Instantiate(material20);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[20]=material20;
Material material21 = bundle.Load("Tx_Bridge" ,typeof (Material)) as Material;
//Instantiate(material21);
GameObject.Find("SettingMaterial").GetComponent<SettingMaterial>().materials[21]=material21;
///
GameObject floorPref = bundle.Load("Floor" ,typeof (GameObject)) as GameObject;
//Instantiate(floorPref);
GameObject.Find("PatternSystemManager").GetComponent<PatternSystem>().floor_Pref = floorPref;
GameObject model01 = bundle.Load ("modelB1-1",typeof(GameObject)) as GameObject;
//Instantiate (model01);
//Debug.Log (model01.name);
//GameObject modelB01 = model01.transform.Find("modelB001").gameObject;
//model01.transform.Find ("modelB001").gameObject;
//Instantiate (modelB01);
//Debug.Log (modelB01.name);
GameObject gameObject0 = bundle.Load ("Building_1" ,typeof (GameObject)) as GameObject;
Debug.Log ("============"+gameObject0.name);
//Instantiate(gameObject0);
GameObject.Find("PatternSystemManager").GetComponent<PatternSystem>().building_Pref[0]=gameObject0;
DestroyImmediate(gameObject0.GetComponent<Building>(),true);
gameObject0.AddComponent<Building>();
GameObject gameObject1 = bundle.Load("Building_2" ,typeof (GameObject)) as GameObject;
//Instantiate(gameObject1);
GameObject.Find("PatternSystemManager").GetComponent<PatternSystem>().building_Pref[1]=gameObject1;
DestroyImmediate(gameObject1.GetComponent<Building>(),true);
gameObject1.AddComponent<Building>();
GameObject gameObject2 = bundle.Load("Building_3" ,typeof (GameObject)) as GameObject;
//Instantiate(gameObject2);
GameObject.Find("PatternSystemManager").GetComponent<PatternSystem>().building_Pref[2]=gameObject2;
DestroyImmediate(gameObject2.GetComponent<Building>(),true);
gameObject2.AddComponent<Building>();
GameObject gameObject3 = bundle.Load("Building_4" ,typeof (GameObject)) as GameObject;
//Instantiate(gameObject3);
GameObject.Find("PatternSystem