TmpUtils.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. export default class TmpUtils {
  2. /** TextMeshPro组件默认材质路径 */
  3. public static readonly TMP_MAT: string = "textMeshPro/resources/shader/materials/textMeshPro.mtl";
  4. /**
  5. * 编辑器模式下加载资源
  6. * @param url db://assets/
  7. */
  8. public static load<T>(url: string): Promise<T> {
  9. return new Promise<T>((resolve, reject) => {
  10. if (!CC_EDITOR) {
  11. resolve(null);
  12. return;
  13. }
  14. Editor.assetdb.queryUuidByUrl(`db://assets/${url}`, (error: any, uuid: string) => {
  15. if (error || !uuid) {
  16. resolve(null);
  17. cc.warn(`[EditorTool.load] uuid查询失败 url: ${url}`);
  18. return;
  19. }
  20. //@ts-ignore
  21. cc.resources.load({ type: "uuid", uuid: uuid }, (error: any, result: T) => {
  22. if (error || !result) {
  23. resolve(null);
  24. cc.warn(`[EditorTool.load] 资源加载失败 url: ${url}`);
  25. return;
  26. }
  27. resolve(result);
  28. });
  29. });
  30. });
  31. }
  32. /**
  33. * 异步等待 - cc.Component.scheduleOnce
  34. */
  35. public static waitCmpt(cmpt: cc.Component, seconds: number): Promise<void> {
  36. return new Promise((resolve, reject) => {
  37. cmpt.scheduleOnce(() => {
  38. resolve();
  39. }, seconds);
  40. });
  41. }
  42. }