using UnityEngine; namespace ET { public static class YooAssetHelper { public static async ETTask InstantiateAsync(this Entity self, string location, Transform parent_transform = null, bool stay_world_space = false) { var autoResLoaderComp = self.GetComponent(); if ( autoResLoaderComp == null) { autoResLoaderComp = self.AddComponent(); } var go = await autoResLoaderComp.InstantiateAsync(location, parent_transform, stay_world_space); return go; } public static GameObject InstantiateSync(this Entity self, string location, Transform parent_transform = null, bool stay_world_space = false) { var autoResLoaderComp = self.GetComponent(); if ( autoResLoaderComp == null) { autoResLoaderComp = self.AddComponent(); } var go = autoResLoaderComp.InstantiateSync(location, parent_transform, stay_world_space); return go; } public static async ETTask LoadAssetAsync(this Entity self, string location) where T : UnityEngine.Object { var autoResLoaderComp = self.GetComponent(); if ( autoResLoaderComp == null) { autoResLoaderComp = self.AddComponent(); } var obj = await autoResLoaderComp.LoadAssetAsync(location); return obj; } public static T LoadAssetSync(this Entity self, string location) where T : UnityEngine.Object { var autoResLoaderComp = self.GetComponent(); if ( autoResLoaderComp == null) { autoResLoaderComp = self.AddComponent(); } var obj = autoResLoaderComp.LoadAssetSync(location); return obj; } public static string ToPrefabAddress(this string self) { return "Prefab_" + self; } } }