先将资源进行打包`
using UnityEditor;
using System.IO;
using UnityEngine;
public class CreatAssetsBundles
{
[MenuItem(“Tools/AssetsBuild”)]
static void BuildAllAssetBundle()
{
string path = Application.dataPath + “/StreamingAssets/Audio”;
if(!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
BuildPipeline.BuildAssetBundles(path, BuildAssetBundleOptions.None, BuildTarget.Android);
}
}
脚本不用挂到场景中
`
进行加载解析
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ABTest : MonoBehaviour
{
public string abname;
public AudioSource TestAudio;
// Start is called before the first frame update
void Start()
{
abname = "city";
ABLoadAudio(abname);
}
private void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
ABLoadAudio(abname);
}
}
public void ABLoadAudio(string ABname)
{
#if UNITY_EDITOR
AssetBundle a = AssetBundle.LoadFromFile("E:/My project/Assets/StreamingAssets/Audio/"+ABname+ ".audio");
#else
AssetBundle a = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/Audio/" + ABname + ".audio");
#endif
AudioClip ac = a.LoadAsset<AudioClip>(ABname);
TestAudio.clip = ac;
TestAudio.Play();
Debug.Log("音乐文件名称 "+TestAudio.clip.name);
}
}