Unity 中使用 Resources.Load()
命令读取资源文件。
使用中有几个值得注意的地方:
- 读取文件时的根目录是
Assets/Resources
,所有资源文件都放在该文件夹下,命令中的路径从Resources
文件夹后开始写。 - 用
/
表示子文件夹。 - 读取的文件不要加文件的后缀。
Load
后<>
中写入读取的类型。
Assets/Resources/HDRP Time Of Day/WeatherPrefebs/HDRP Time Of Day/Prefeb/GameObject/TODController
应写成HDRP Time Of Day/Prefeb/GameObject/TODController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WeatherBegin : MonoBehaviour
{
public static class TODPass
{
public const string weatherControllerPath = "HDRP Time Of Day/Prefeb/GameObject/TODController";
public const string TODUIPath = "HDRP Time Of Day/Prefeb/UI/TODUI";
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.R))
{
LoadGameObjectController(TODPass.weatherControllerPath);
LoadUIPrefeb(TODPass.TODUIPath);
}
}
void LoadUIPrefeb(string path)
{
GameObject TODUI = Resources.Load<GameObject>(path);
GameObject instance = Instantiate(TODUI);
//instance.transform.position = new Vector3(-66, 30, 0);
instance.transform.SetParent(GameObject.Find("Canvas").transform);
}
void LoadGameObjectController(string path)
{
GameObject weatherController = Resources.Load<GameObject>(path);
if (weatherController!=null)
{
Instantiate(weatherController);
}
else
{
Debug.Log("空");
}
}
}