public void Check() { using (ListComponent <long> list = EntityFactory.Create <ListComponent <long> >(Domain)) { long timeNow = TimeHelper.CurrentLocalMilliseconds(); foreach ((long key, Entity value) in Children) { ActorLocationSender actorLocationMessageSender = (ActorLocationSender)value; if (timeNow > actorLocationMessageSender.LastSendOrRecvTime + TIMEOUT_TIME) { list.List.Add(key); } } foreach (long id in list.List) { Remove(id); } } }
public static BehaviorTree Create(Entity domain, string name) { string path = $"../Config/BehaviorDesigner/{name}.json"; try { var behavior = Behavior.Create(path); if (behavior != null) { var behaviorTree = EntityFactory.Create <BehaviorTree, Behavior>(domain, behavior); behaviorTree.AddComponent <BehaviorTreeVariableComponent>(); return(behaviorTree); } return(null); } catch (Exception e) { throw new Exception($"load behavior file fail, path: {path} {e}"); } }
public async void Lock(long key, long instanceId, int time = 0) { CoroutineLock coroutineLock = await CoroutineLockComponent.Instance.Wait(CoroutineLockType.Location, key); LockInfo lockInfo = EntityFactory.Create <LockInfo, long, CoroutineLock>(this.Domain, instanceId, coroutineLock); lockInfo.Parent = this; this.lockInfos.Add(key, lockInfo); Log.Info($"location lock key: {key} instanceId: {instanceId}"); if (time > 0) { long lockInfoInstanceId = lockInfo.InstanceId; await TimerComponent.Instance.WaitAsync(time); if (lockInfo.InstanceId != lockInfoInstanceId) { return; } UnLock(key, instanceId, instanceId); } }
public static FUITitleButton Create(Entity domain, GObject go) { return(EntityFactory.Create <FUITitleButton, GObject>(domain, go)); }
public static FUITitleButton CreateInstance(Entity domain) { return(EntityFactory.Create <FUITitleButton, GObject>(domain, CreateGObject())); }
public async Task LoadOneBundleAsync(string assetBundleName) { ABInfo abInfo; if (bundles.TryGetValue(assetBundleName, out abInfo)) { ++abInfo.RefCount; return; } if (Define.IsAsync) { string p = Path.Combine(PathHelper.AppHotfixResPath, assetBundleName); AssetBundle assetBundle = null; if (!File.Exists(p)) { p = Path.Combine(PathHelper.AppResPath, assetBundleName); } using (AssetsBundleLoaderAsync assetsBundleLoaderAsync = EntityFactory.Create <AssetsBundleLoaderAsync>(Domain)) { assetBundle = await assetsBundleLoaderAsync.LoadAsync(p); } if (assetBundle == null) { throw new Exception($"assets bundle not found: {assetBundleName}"); } if (!assetBundle.isStreamedSceneAssetBundle) { // 异步load资源到内存cache住 UnityEngine.Object[] assets; using (AssetsLoaderAsync assetsLoaderAsync = EntityFactory.Create <AssetsLoaderAsync, AssetBundle>(Domain, assetBundle)) { assets = await assetsLoaderAsync.LoadAllAssetsAsync(); } foreach (UnityEngine.Object asset in assets) { AddResource(assetBundleName, asset.name, asset); } } abInfo = EntityFactory.CreateWithParent <ABInfo, string, AssetBundle>(this, assetBundleName, assetBundle); bundles[assetBundleName] = abInfo; } else { var assetPaths = AssetDatabaseHelper.GetAssetPathsFromAssetBundle(assetBundleName); if (assetPaths != null) { foreach (string s in assetPaths) { string assetName = Path.GetFileNameWithoutExtension(s); UnityEngine.Object resource = AssetDatabaseHelper.LoadAssetAtPath(s); AddResource(assetBundleName, assetName, resource); } } abInfo = EntityFactory.CreateWithParent <ABInfo, string, AssetBundle>(this, assetBundleName, null); bundles[assetBundleName] = abInfo; } }
public static FUILogin Create(Entity domain, GObject go) { return(EntityFactory.Create <FUILogin, GObject>(domain, go)); }
public static FUILobby CreateInstance(Entity domain) { return(EntityFactory.Create <FUILobby, GObject>(domain, CreateGObject())); }
public override void Awake(FUIComponent self) { self.Root = EntityFactory.Create <FUI, GObject>(Game.Scene, GRoot.inst); }