Exemple #1
0
    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);
        });
    }
Exemple #3
0
    // 给人物换装
    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);
    }
Exemple #4
0
        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);
                }
            }
        }
Exemple #5
0
    //飞到目标点结束
    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();
    }
Exemple #6
0
        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;
            });
        }
Exemple #7
0
        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;
            });
        }
Exemple #8
0
    //飞向玩家身上
    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;
    }
Exemple #9
0
    //销毁
    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;
    }
Exemple #10
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);
        }
Exemple #11
0
 private void DestroyEraEffect()
 {
     if (effectGameObject != null)
     {
         ComplexObjectPool.Release(effectGameObject);
         effectGameObject = null;
     }
 }
 public void DestroyModel()
 {
     if (null != Model)
     {
         ComplexObjectPool.Release(Model);
         Model = null;
     }
 }
Exemple #13
0
 private void DestroyModel()
 {
     if (TModel != null)
     {
         ComplexObjectPool.Release(TModel);
         TModel = null;
     }
 }
Exemple #14
0
 private void DestroyAnim()
 {
     if (effectGameObject != null)
     {
         ComplexObjectPool.Release(effectGameObject, true);
         effectGameObject = null;
     }
 }
Exemple #15
0
 //删除品质特效
 private void DestroyQualityEffect()
 {
     if (mEffect)
     {
         ComplexObjectPool.Release(mEffect);
         mEffect = null;
     }
 }
Exemple #16
0
    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);
                        }
                    }
                }
            });
        }
Exemple #18
0
 public void DestroyModel()
 {
     mState = State.Deleted;
     if (null != mModel)
     {
         ComplexObjectPool.Release(mModel);
         mModel = null;
     }
 }
Exemple #19
0
        private void RemoveCharRadar(RararCharDataModel data)
        {
            ListItemLogic obj;

            if (itemLogicDict.TryGetValue(data.CharacterId, out obj))
            {
                ComplexObjectPool.Release(obj.gameObject, false, false);
                itemLogicDict.Remove(data.CharacterId);
            }
        }
Exemple #20
0
        private void RemoveCharRadar(ulong id)
        {
            ListItemLogic obj;

            if (itemLogicDict.TryGetValue(id, out obj))
            {
                ComplexObjectPool.Release(obj.gameObject);
                itemLogicDict.Remove(id);
            }
        }
Exemple #21
0
    public void StopEffect(int id)
    {
        EffectNode node;

        if (!mEffectDic.TryGetValue(id, out node))
        {
            return;
        }
        ComplexObjectPool.Release(node.Value);
        mEffectDic.Remove(id);
    }
Exemple #22
0
    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();
            }
        });
    }
Exemple #23
0
    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);
         }
     }
 }
Exemple #26
0
    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));
            }
        });
    }
Exemple #27
0
    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();
    }
Exemple #28
0
    /// <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);
            }
        }
    }
Exemple #29
0
    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);
    }
Exemple #30
0
 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();
 }