protected override void OnShow(object userData) { base.OnShow(userData); // 自己主堡產生時, 檢查是否需要採集資源 SceneObj sceneObj; if (GameCore.NetData.TryGetSceneObjData(Id, out sceneObj) == false) { return; } // 設定初始建築資料 initBuildInfo(); // 設定是否顯示 InternalSetVisible(Visible); // 通知植披系統不要在此地格顯示地格 WorldAgent.Vector2i hex = new WorldAgent.Vector2i(sceneObj.Hex().x, sceneObj.Hex().y); GameCore.Event.Fire(this, VegetationShownEventArgs.Create(hex, false)); }
protected override void OnHide(bool isShutdown, object userData) { base.OnHide(isShutdown, userData); CachedTransform.localScale = Vector3.one; if (isShutdown) { return; } var etor = builds.GetEnumerator(); while (etor.MoveNext()) { ReferencePool.Release(etor.Current); } builds.Clear(); gridHex.Release(); // 通知植披系統恢復顯示 GameCore.Event.Fire(this, VegetationShownEventArgs.Create(HexUtility.Position2Hex(CachedTransform.position), true)); }