private void ReturnObject(ItemBar bar) { FreePrefabComponent prefab = bar.prefab; GameObject obj = (GameObject)prefab.currentObject; if (obj != null) { obj.GetComponent <Transform>().parent = null; FreePrefabLoader.ReturnGameObject(obj, prefab.assetInfo); string imgUrl = ""; string[] fieldValues = bar.value.Split(FreeMessageConstant.SpliterRecord); foreach (string fieldValue in fieldValues) { string[] vs = fieldValue.Split(FreeMessageConstant.SpilterField); if (vs.Length == 2) { if (vs[0].Trim() == "IMG_WeaponIcon") { imgUrl = vs[1].Trim(); } } } GameObject img = UnityUiUtility.FindUIObject(obj, "IMG_WeaponIcon"); if (img != null && !string.IsNullOrEmpty(imgUrl)) { int last = imgUrl.Trim().LastIndexOf("/"); string buddleName = imgUrl.Trim().Substring(0, last); string assetName = imgUrl.Trim().Substring(last + 1); AssetInfo info = new AssetInfo(buddleName, assetName); Graphic gra = img.GetComponent <Graphic>(); if (gra is Image) { FreeUILoader.ReturnGameObject(((Image)gra).sprite, info); } if (gra is RawImage) { FreeUILoader.ReturnGameObject(((RawImage)gra).texture, info); } } } }
private void SetOneValue(string[] vs) { GameObject obj = UnityUiUtility.FindUIObject(currentObject, vs[0].Trim()); if (obj != null) { Graphic gra = obj.GetComponent <Graphic>(); if (gra != null) { if (gra is Text) { ((Text)gra).text = vs[1].Trim(); } if (gra is RawImage || gra is Image) { if (string.IsNullOrEmpty(vs[1])) { if (gra is RawImage) { ((RawImage)gra).texture = ResourceUtility.GetTransparentTexture(); } if (gra is Image) { Texture2D tex = ResourceUtility.GetTransparentTexture(); ((Image)gra).sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.zero); } } else { int last = vs[1].Trim().LastIndexOf("/"); string buddleName = vs[1].Trim().Substring(0, last); string assetName = vs[1].Trim().Substring(last + 1); FreeUILoader.Load(gra, buddleName, assetName); } } } } }
public void Dispose() { if (_isDisposed) { return; } _isDisposed = true; _clientSessionStateMachine.Dispose(); FreePrefabLoader.Destroy(); var _sessionObjects = _contexts.session.commonSession; _contexts.session.commonSession.Dispose(); _contexts.session.clientSessionObjects.Dispose(); if (_contexts.session.clientSessionObjects.NetworkChannel != null) { _contexts.session.clientSessionObjects.NetworkChannel.Dispose(); } foreach (var info in _sessionObjects.GameContexts.AllContexts) { foreach (IGameEntity entity in info.GetEntities()) { foreach (var comp in entity.ComponentList) { if (comp is IAssetComponent) { ((IAssetComponent)comp).Recycle(_sessionObjects.AssetManager); } } if (_sessionObjects.AssetManager != null) { _sessionObjects.AssetManager.LoadCancel(entity.RealEntity); } entity.Destroy(); } } foreach (Entity entity in _contexts.ui.GetEntities()) { DestroyEntity(_sessionObjects, entity); } foreach (Entity entity in _contexts.sceneObject.GetEntities()) { DestroyEntity(_sessionObjects, entity); } _clientSessionStateMachine.ShutDown(); try { _contexts.Reset(); } catch (Exception ex) { _logger.ErrorFormat("contexts.Reset error:{0}", ex.Message); } UiModule.DestroyAll(); FreeUILoader.Destroy(); }
public void Dispose() { if (_isDisposed) { return; } _isDisposed = true; try { _clientSessionStateMachine.Dispose(); } catch (Exception ex) { _logger.ErrorFormat("_clientSessionStateMachine.Disposeerror:{0}", ex); } try { FreePrefabLoader.Destroy(); } catch (Exception ex) { _logger.ErrorFormat("FreePrefabLoader.Destroy(){0}", ex); } try { _contexts.session.commonSession.Dispose(); _contexts.session.clientSessionObjects.Dispose(); } catch (Exception ex) { _logger.ErrorFormat(" _contexts.session {0}", ex); } var _sessionObjects = _contexts.session.commonSession; try { if (_contexts.session.clientSessionObjects.NetworkChannel != null) { _contexts.session.clientSessionObjects.NetworkChannel.Dispose(); } } catch (Exception ex) { _logger.ErrorFormat(" _contexts.NetworkChannel {0}", ex); } RecycleEntitys(_contexts); try { _clientSessionStateMachine.ShutDown(); } catch (Exception ex) { _logger.ErrorFormat(" _clientSessionStateMachine.ShutDown {0}", ex); } try { _contexts.Reset(); } catch (Exception ex) { _logger.ErrorFormat("contexts.Reset error:{0}", ex.Message); } try { UiModule.DestroyAll(); FreeUILoader.Destroy(); } catch (Exception ex) { _logger.ErrorFormat("contexts.Reset error:{0}", ex.Message); } }