Skip to main content
Version: Next

加载 Unity 的资产

使用 Asset.Load(Async) 可以加载 Unity 的资产。

// path 是 Assets 开头的路径,例如 Assets/Cube.prefab, type = typeof(GameObject) 
var request = Asset.Load(path, type);
// 获取 Unity 的资产。
var asset = request.asset;
// 资产不需要使用的时候可以调用 Release 释放。
request.Release();

另外,使用 Asset.InstantiateAsync 可以异步实例化一个 GameObject 到当前场景。

var request = Asset.InstantiateAsync(path, parent, worldPositionStays);
yield return request;
var gameObject = request.gameObject;

异步实例化的 GameObject 在其被销毁时,会自动释放相关资产。所以不需要主动调用 Release。

Unity 的资产主要包括如下类型的资产:

  • Texture
  • Sprite
  • Shader
  • Material
  • Mesh
  • AnimationClip
  • AudioClip
  • VideoClip
  • ScriptableObject
  • TextAsset
  • GameObject

无论资产是在编辑器工程,下载目录、安装包还是服务器,xasset 都是统一使用目标资产在 Unity 编辑器工程下相对 Assets 目录的路径加载。 并且,加载资产时,底层会自动管理依赖关系,已经加载的内容不会重复加载。