protected override void LoadModelAsync(Action callback = null) { var tableModel = Table.GetCharModel(TableCharacter.CharModelID); var modelPath = Resource.GetModelPath(tableModel.ResPath); UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; ComplexObjectPool.NewObject(modelPath, model => { if (resId != UniqueResourceId) { ComplexObjectPool.Release(model); return; } if (State == ObjState.Deleted) { ComplexObjectPool.Release(model); return; } SetModel(model); mAnimationController.Animation = mModel.animation; mAnimationController.Animation.Stop(); SetScale((float)tableModel.Scale); if (null != callback) { callback(); } }); }
private void ShowItemTip(int itemId, int count) { ComplexObjectPool.NewObject("UI/Hint/ItemTip", go => { if (null == Instance) { ComplexObjectPool.Release(go); return; } if (false == IsWorking) { ComplexObjectPool.Release(go); return; } go.transform.parent = gameObject.GetComponent <UIPanel>().transform; go.transform.localPosition = Vector3.zero; go.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f); go.transform.localRotation = Quaternion.identity; go.SetActive(false); go.SetActive(true); var Logic = go.GetComponent <GainItemCtrler>(); Logic.SetItemIcon(itemId, count); }); }
// 给人物换装 public void ChangePart(string part, string model, EquipModelViewRecord record, bool sync) { SetPartModel(part, model); // 如果还没有加载完基础模型,则等待 if (_body == null || _loading > 0) { _avatarLoadQueue.Enqueue(new KeyValuePair <string, WaitingResource>(part, new WaitingResource { ModelPath = model, ModelViewRecord = record })); return; } //AvatarData adata = DataMgr.Instance.GetAvatarData(avatarId); _loading++; ComplexObjectPool.NewObject(model, obj => { _loading--; if (GetPartModel(part) != model) { ComplexObjectPool.Release(obj); TryContinue(); return; } if (null != obj) { ChangePart(obj, part, record, sync); } TryContinue(); }, null, null, sync); }
public void ResetMessage() { xPos = 10; yPos = -10; updateCollider = true; ColliderList.Clear(); ChatNodeList.Clear(); isFace = false; var trans = Content.transform; BackGround.height = 45; Content.height = 40; WidgetList.Clear(); for (var i = trans.childCount - 1; i >= 0; i--) { var t = trans.GetChild(i); if (t.name.Contains("ChatLableNode") || t.name.Contains("ChatFaceNode") || t.name.Contains("ChatVoiceCell")) { t.gameObject.SetActive(false); ComplexObjectPool.Release(t.gameObject); //Destroy(t.gameObject); } } }
//飞到目标点结束 private IEnumerator DropOverStay() { // 当掉落落地时,特效 if (mTableData != null && mTableData.Quality > 0 && !mEffect) { var resource = Table.GetClientConfig(600 + mTableData.Quality); if (!string.IsNullOrEmpty(resource.Value)) { CreateQualityEffect(resource.Value, o => { if (DropItemState.StayOnGround != mState && DropItemState.Droping != mState) { ComplexObjectPool.Release(o); mEffect = null; } }); } } yield return(new WaitForSeconds(DropOverDelayTime)); mState = DropItemState.StayOnGround; PlayDropSound(); }
private void CreateCharRadar(MapRadarDataModel data, string prefab) { var id = data.CharacterId; ComplexObjectPool.NewObject(prefab, o => { if (data.CharType != 0) { var charObj = ObjManager.Instance.FindCharacterById(id); if (charObj == null || charObj.Dead) { ComplexObjectPool.Release(o); return; } } var oTransform = o.transform; oTransform.SetParentEX(CharCursor.transform); oTransform.localScale = Vector3.one; o.SetActive(true); var i = o.GetComponent <ListItemLogic>(); i.Item = data; var r = o.GetComponent <BindDataRoot>(); r.Source = data; itemLogicDict[data.CharacterId] = i; }); }
private void ShowModel(string perfabPath) //"res/firstcharget/a.prefab" { //var modelPath = Resource.GetModelPath(perfabPath); if (TModel != null) { ComplexObjectPool.Release(TModel); TModel = null; } UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; ComplexObjectPool.NewObject(perfabPath, go => { if (resId != UniqueResourceId) { return; } TModel = go; go.transform.parent = UIModel.transform; go.transform.localPosition = Vector3.zero; go.gameObject.SetLayerRecursive(LayerMask.NameToLayer(GAMELAYER.UI)); go.gameObject.SetRenderQueue(ModelRenderQueue); Drag.Target = go.transform; }); }
//飞向玩家身上 public void FlyToPlayer() { //先把特效关掉 if (mEffect) { ComplexObjectPool.Release(mEffect); mEffect = null; } if (null != mController) { mController.ShowModel(false); mController.ShowEffect(true); } var myPos = ObjManager.Instance.MyPlayer.Position; var dir = (Position - myPos).normalized; mControlPoint = Position + dir * Random.Range(ControlPointOffsetDistanceMin, ControlPointOffsetDistanceMax); mControlPoint.y += Random.Range(ControlPointOffsetHeightMin, ControlPointOffsetHeightMax); mControlPointMoveSpeed = ControlPointSpeed; mMoveSpeed = MoveSpeed; mControlPointReached = false; mState = DropItemState.FlyToPlayer; }
//销毁 public virtual void Destroy() { OptList <EffectController> .List.Clear(); gameObject.GetComponentsInChildren(OptList <EffectController> .List); { var __array3 = OptList <EffectController> .List; var __arrayLength3 = __array3.Count; for (var __i3 = 0; __i3 < __arrayLength3; ++__i3) { var effect = __array3[__i3]; { effect.trans.parent = null; EffectManager.Instance.StopEffect(effect.Id); //ComplexObjectPool.Release(effect.gameObject); } } } ComplexObjectPool.Release(mModel); mModel = null; StopAllCoroutines(); ComplexObjectPool.Release(gameObject); State = ObjState.Deleted; UniqueResourceId = 0; }
private void CreateCharRadar(RararCharDataModel data) { var id = data.CharacterId; ComplexObjectPool.NewObject("UI/MainUI/CharCursor.prefab", o => { if (data.CharType != 0) { var charObj = ObjManager.Instance.FindCharacterById(id); if (charObj == null || charObj.Dead) { ComplexObjectPool.Release(o, false, false); return; } } var oTransform = o.transform; //oTransform.parent = CharCursor.transform; oTransform.SetParentEX(CharCursor.transform); oTransform.localScale = Vector3.one; if (!o.activeSelf) { o.SetActive(true); } var i = o.GetComponent <ListItemLogic>(); i.Item = data; var r = o.GetComponent <BindDataRoot>(); r.Source = data; itemLogicDict[data.CharacterId] = i; }, null, null, false, false, false); }
private void DestroyEraEffect() { if (effectGameObject != null) { ComplexObjectPool.Release(effectGameObject); effectGameObject = null; } }
public void DestroyModel() { if (null != Model) { ComplexObjectPool.Release(Model); Model = null; } }
private void DestroyModel() { if (TModel != null) { ComplexObjectPool.Release(TModel); TModel = null; } }
private void DestroyAnim() { if (effectGameObject != null) { ComplexObjectPool.Release(effectGameObject, true); effectGameObject = null; } }
//删除品质特效 private void DestroyQualityEffect() { if (mEffect) { ComplexObjectPool.Release(mEffect); mEffect = null; } }
private void CheckStage(float dt) { if (BoardAction == null) { return; } if (Record == null) { return; } BoardAction.Duration += dt; if (BoardAction.Duration >= BoardAction.MaxTime) { switch (BoardAction.ActionStage) { case DamageBoardActionStage.Stage1: { BoardAction.ActionStage = DamageBoardActionStage.Stage2; BoardAction.Duration = 0.0f; BoardAction.ScaleChg = 0.0f; BoardAction.AlphaChg = 0.0f; BoardAction.Speed = Vector2.zero; BoardAction.Accelerate = Vector2.zero; BoardAction.MaxTime = StayTime / 1000f; } break; case DamageBoardActionStage.Stage2: { BoardAction.ActionStage = DamageBoardActionStage.Stage3; BoardAction.Duration = 0.0f; BoardAction.ScaleChg = Record.EndFontSize2 / 1000.0f; BoardAction.AlphaChg = -255.0f / (Record.MoveTime2 / 1000.0f); BoardAction.Speed = new Vector2(Record.SpeedX2, Record.SpeedY2); BoardAction.Accelerate = new Vector2(Record.AddSpeedX2, Record.SpeedY2); BoardAction.MaxTime = Record.MoveTime2 / 1000.0f; } break; case DamageBoardActionStage.Stage3: { if (BoardAction.ShowType == BoardShowType.Fight) { DamageBoardManager.Instace.ActiveCount--; } ComplexObjectPool.Release(gameObject, false, false); BoardAction.ActionStage = DamageBoardActionStage.Invaild; } break; case DamageBoardActionStage.Invaild: break; default: throw new ArgumentOutOfRangeException(); } } }
private void ShowModel(string perfabPath, int index) //"res/firstcharget/a.prefab" { //var modelPath = Resource.GetModelPath(perfabPath); if (TModel != null) { ComplexObjectPool.Release(TModel); TModel = null; } UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; ComplexObjectPool.NewObject(perfabPath, go => { if (resId != UniqueResourceId) { ComplexObjectPool.Release(go); return; } if (UIModel == null) { return; } TModel = go; go.transform.parent = UIModel.transform; go.transform.localPosition = Vector3.zero; go.gameObject.SetLayerRecursive(LayerMask.NameToLayer(GAMELAYER.UI)); go.gameObject.SetRenderQueue(ModelRenderQueue); Drag.Target = go.transform; if (index == 2) { for (int i = 1100; i <= 1101; i++) { var tbSkillUpgrading = Table.GetSkillUpgrading(i); if (null == tbSkillUpgrading) { return; } var ValueList = tbSkillUpgrading.Values; if (ValueList.Count < 3) { return; } var x = ValueList[0]; var y = ValueList[1]; var z = ValueList[2]; if (i == 1100) { go.transform.localRotation = Quaternion.Euler(x, y, z); } else { go.transform.localScale = new Vector3(x, y, z); } } } }); }
public void DestroyModel() { mState = State.Deleted; if (null != mModel) { ComplexObjectPool.Release(mModel); mModel = null; } }
private void RemoveCharRadar(RararCharDataModel data) { ListItemLogic obj; if (itemLogicDict.TryGetValue(data.CharacterId, out obj)) { ComplexObjectPool.Release(obj.gameObject, false, false); itemLogicDict.Remove(data.CharacterId); } }
private void RemoveCharRadar(ulong id) { ListItemLogic obj; if (itemLogicDict.TryGetValue(id, out obj)) { ComplexObjectPool.Release(obj.gameObject); itemLogicDict.Remove(id); } }
public void StopEffect(int id) { EffectNode node; if (!mEffectDic.TryGetValue(id, out node)) { return; } ComplexObjectPool.Release(node.Value); mEffectDic.Remove(id); }
protected virtual void LoadRes(Action callback = null) { var prafabPath = ""; mTableData = Table.GetItemBase(mDataId); if (null == mTableData) { Logger.Error("NULL==Table.GetItemBase({0})", mDataId); } else { var tableDrop = Table.GetDropModel(mTableData.DropModel); if (null == tableDrop) { Logger.Error("NULL==Table.GetDropModel({0})", mTableData.DropModel); } else { prafabPath = tableDrop.ModelPath; } } if ("" == prafabPath) { Logger.Error("null==prafabPath)"); return; } UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; ComplexObjectPool.NewObject(prafabPath, model => { if (resId != UniqueResourceId) { ComplexObjectPool.Release(model); return; } if (State == ObjState.Deleted) { ComplexObjectPool.Release(model); return; } SetModel(model); //SetScale((float)tableDrop.aScale); 这个缩放放到prefab上 if (null != callback) { callback(); } }); }
protected override void LoadModelAsync(Action callback = null) { var tableModel = Table.GetCharModel(TableCharacter.CharModelID); var modelPath = Resource.GetModelPath(tableModel.ResPath); UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; if (null != mActorAvatar) { mActorAvatar.Layer = gameObject.layer; mActorAvatar.RenderQueue = RenderQueue; } ComplexObjectPool.NewObject(modelPath, model => { if (resId != UniqueResourceId) { ComplexObjectPool.Release(model); return; } if (State == ObjState.Deleted) { ComplexObjectPool.Release(model); return; } SetModel(model); mAnimationController.Animation = mModel.animation; mAnimationController.Animation.Stop(); SetScale((float)tableModel.Scale); if (null != callback) { callback(); } }, null, o => { if (IsPlayerModel()) { OptList <Renderer> .List.Clear(); o.GetComponentsInChildren(true, OptList <Renderer> .List); { var __array1 = OptList <Renderer> .List; var __arrayLength1 = __array1.Count; for (var __i1 = 0; __i1 < __arrayLength1; ++__i1) { var renderer = __array1[__i1]; { renderer.enabled = false; } } } } }); }
private void CreateCopyObj(int dataId) { if (-1 == dataId) { if (null != ShowModel) { ComplexObjectPool.Release(ShowModel); ShowModel = null; DragRotate.Target = null; } return; } else { if (ShowModel != null) { ComplexObjectPool.Release(ShowModel); ShowModel = null; } var currentData = DataModel.ActivityTermList[DataModel.CurrentSelectPageIdx]; var position = currentData.ShowModelData.Position; // 计算模型坐标 var rotation = currentData.ShowModelData.Rotation; // 旋转 UniqueResourceId = GetNextUniqueResourceId(); var resId = UniqueResourceId; var tb = Table.GetCharModel(dataId); if (null == tb) { return; } ComplexObjectPool.NewObject(tb.ResPath, go => { if (resId != UniqueResourceId) { ComplexObjectPool.Release(go); return; } ShowModel = go; go.transform.parent = ModelRoot.transform; go.transform.localPosition = position; go.transform.localRotation = rotation; go.transform.localScale = Vector3.one; go.gameObject.SetLayerRecursive(LayerMask.NameToLayer(GAMELAYER.UI)); DragRotate.Target = ShowModel.transform; ModelRoot.GetComponent <ChangeRenderQueue>().RefleshRenderQueue(); //go.gameObject.SetRenderQueue(ModelRenderQueue); }); } }
public void CleanUp() { mCharInfoNodes.Clear(); _mVarObjList.Clear(); mPositionX = 10; mPositionY = 0; if (_mObj.Count != 0) { for (var i = _mObj.Count - 1; i >= 0; i--) { ComplexObjectPool.Release(_mObj[i]); _mObj.RemoveAt(i); } } }
public void PlayEffect(int id) { var table = Table.GetSceneEffect(id); if (null == table) { return; } if (table.SceneID != GameLogic.Instance.Scene.SceneTypeId) { return; } if (mEffectDic.ContainsKey(id)) { return; } var root = GameLogic.Instance.Scene.EffectRoot; ComplexObjectPool.NewObject(table.Path, go => { if (null == root) { ComplexObjectPool.Release(go); return; } if (mEffectDic.ContainsKey(id)) { ComplexObjectPool.Release(go); return; } #if UNITY_EDITOR go.name = "SceneEffect_" + id.ToString(); #endif var goTransform = go.transform; goTransform.parent = root.transform; goTransform.position = new Vector3(table.PosX, table.PosY, table.PosZ); goTransform.localScale = Vector3.one * (table.Zoom * 0.0001f); var guid = NextId; mEffectDic.Add(id, new EffectNode(guid, go)); if (table.LastTime > 0) { StartCoroutine(DelayDestroy(table.LastTime * 1.0f / 1000.0f, guid)); } }); }
public override void Destroy() { EventDispatcher.Instance.RemoveEventListener(EquipBagNotFullChange.EVENT_TYPE, OnEquipRecycleSuccess); EventDispatcher.Instance.RemoveEventListener(UIEvent_PickSettingChanged.EVENT_TYPE, OnPickupSettingChanged); if (DropItemState.FlyToPlayer == mState) { return; } if (mEffect) { ComplexObjectPool.Release(mEffect); mEffect = null; } base.Destroy(); }
/// <summary> /// 移除当前部件,当前部件变为默认部件 /// </summary> /// <param name="part"></param> public void RemovePart(string part) { AvatarInfo currentInfo; if (_avatarInfo.TryGetValue(part, out currentInfo)) { if (currentInfo.avatarPart != null) { ComplexObjectPool.Release(currentInfo.avatarPart); currentInfo.avatarPart = null; } if (currentInfo.defaultPart != null) { currentInfo.defaultPart.SetActive(true); } } }
public bool StopEffect(ulong id) { EffectController effect = null; if (mDict.TryGetValue(id, out effect)) { OptList <ParticleSystem> .List.Clear(); effect.gameObject.GetComponentsInChildren(OptList <ParticleSystem> .List); { var __array3 = OptList <ParticleSystem> .List; var __arrayLength3 = __array3.Count; for (var __i3 = 0; __i3 < __arrayLength3; ++__i3) { var particleSystem = __array3[__i3]; { particleSystem.Clear(); particleSystem.Stop(); } } } OptList <TrailRenderer_Base> .List.Clear(); effect.gameObject.GetComponentsInChildren(true, OptList <TrailRenderer_Base> .List); { var __array7 = OptList <TrailRenderer_Base> .List; var __arrayLength7 = __array7.Count; for (var __i7 = 0; __i7 < __arrayLength7; ++__i7) { var t = __array7[__i7]; { t.ClearSystem(false); } } } ComplexObjectPool.Release(effect.gameObject); mDict.Remove(id); return(true); } return(false); }
public void StopAllEffect() { { // foreach(var pair in mDict) var __enumerator4 = (mDict).GetEnumerator(); while (__enumerator4.MoveNext()) { var pair = __enumerator4.Current; { if (pair.Value == null) { continue; } ComplexObjectPool.Release(pair.Value.gameObject); } } } mDict.Clear(); }