版本:Unity 6 (6000.0)
语言English
  • C#

AssetDatabase.LoadObjectAsync

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static AssetDatabaseLoadOperation LoadObjectAsync(string assetPath, long localId);

参数

assetPath 要加载的资源的路径。
localId 要加载的对象的本地标识符。这允许您加载特定对象及其依赖项,而不是整个资源。

返回值

AssetDatabaseLoadOperation 一个 UnityEditor.AssetDatabaseLoadOperation,您可以使用它来跟踪操作的进度。

描述

异步加载资源文件中的特定对象及其依赖项。

所有路径相对于项目文件夹,例如:“Assets/MyTextures/hello.png”。

其他资源:AssetDatabase.TryGetGUIDAndLocalFileIdentifierGlobalObjectId.targetObjectId

using UnityEngine;
using UnityEditor;
using System.Collections;

public class MyPlayer : MonoBehaviour { public IEnumerator Start() { // This will load all objects in the fbx and return a single Mesh object. Mesh m = AssetDatabase.LoadAssetAtPath<Mesh>("Assets/test.fbx");

AssetDatabase.TryGetGUIDAndLocalFileIdentifier(m, out string guid, out long localId);

// At some point after the Mesh may or may not have unloaded we can reload just the mesh AssetDatabaseLoadOperation op = AssetDatabase.LoadObjectAsync("Assets/test.fbx", localId);

// yield until the operation is completed while (!op.isDone) yield return null;

Mesh reloadedMesh = (Mesh)op.LoadedObject; } }