在Unity中使用资源文件夹
我正在开发一个HoloLens项目,该项目需要引用.txt文件。我将文件存储在Unity的“资源”文件夹中,并使它们工作正常(通过Unity运行时):
string basePath = Application.dataPath;string metadataPath = String.Format(@"\Resources\...\metadata.txt", list);
// If metadata exists, set title and introduction strings.
if (File.Exists(basePath + metadataPath))
{
using (StreamReader sr = new StreamReader(new FileStream(basePath + metadataPath, FileMode.Open)))
{
...
}
}
但是,在构建用于HoloLens部署的程序时,我可以运行代码,但是它不起作用。没有资源显示出来,当检查HoloLens Visual
Studio解决方案(通过在Unity中选择build创建)时,我什至看不到资源或资产文件夹。我想知道我是在做错什么,还是有一种特殊的方式来处理这些资源。
还有图像和声音文件…
foreach (string str in im){
spriteList.Add(Resources.Load<Sprite>(str));
}
字符串“ str”有效;它与Unity绝对兼容。但是,同样,在通过HoloLens运行时,它不会加载任何内容。
回答:
您无法使用StreamReader
或File
类读取Resources目录。您必须使用Resources.Load
。
该路径相对于项目的Assets文件夹内的任何Resources文件夹。
。做 包括文件扩展名,如 .TXT , png格式 , MP3播放 路径参数。
在 Resources 文件夹中有另一个文件夹时,请使用正斜杠而不是反斜杠。反斜杠将不起作用。
:
TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));string tileFile = txtAsset.text;
支持的 TextAsset 格式:
TXT的.html的.htm的.xml.bytes以.json的.csv.yaml.FNT
:
AudioClip audio = Resources.Load("soundFile", typeof(AudioClip)) as AudioClip;
:
Texture2D texture = Resources.Load("textureFile", typeof(Texture2D)) as Texture2D;
:
图像的 纹理类型 设置为 精灵(2D和UI) 和
与图像 雪碧模式 设置为 单 。
Sprite sprite = Resources.Load("spriteFile", typeof(Sprite)) as Sprite;
:
图像的 纹理类型 设置为 精灵(2D和UI) 和
与图像 雪碧模式 设置为 多 。
Sprite[] sprite = Resources.LoadAll<Sprite>("spriteFile") as Sprite[];
:
VideoClip video = Resources.Load("videoFile", typeof(VideoClip)) as VideoClip;
:
GameObject prefab = Resources.Load("shipPrefab", typeof(GameObject)) as GameObject;
Mesh model = Resources.Load("yourModelFileName", typeof(Mesh)) as Mesh;
MeshFilter modelFromGameObject = Resources.Load("yourGameObject", typeof(MeshFilter)) as MeshFilter;Mesh loadedMesh = modelFromGameObject.sharedMesh; //Or design.mesh
GameObject loadedObj = Resources.Load("yourGameObject") as GameObject;//MeshFilter meshFilter = loadedObj.GetComponent<MeshFilter>();
//Mesh loadedMesh = meshFilter.sharedMesh;
GameObject object1 = Instantiate(loadedObj) as GameObject;
:
例如,如果在 资源 文件夹中的子文件夹“ Sound ”中有一个 shoot.mp3 文件,则可以使用正斜杠:
AudioClip audio = Resources.Load("Sound/shoot", typeof(AudioClip)) as AudioClip;
:
IEnumerator loadFromResourcesFolder(){
//Request data to be loaded
ResourceRequest loadAsync = Resources.LoadAsync("shipPrefab", typeof(GameObject));
//Wait till we are done loading
while (!loadAsync.isDone)
{
Debug.Log("Load Progress: " + loadAsync.progress);
yield return null;
}
//Get the loaded data
GameObject prefab = loadAsync.asset as GameObject;
}
使用方法 :StartCoroutine(loadFromResourcesFolder());
以上是 在Unity中使用资源文件夹 的全部内容, 来源链接: utcz.com/qa/432086.html