示例#1
0
    private void Update()
    {
#if !UNITY_EDITOR
        try
        {
#endif

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            PlatformHelper.Exit();
        }

        {
            var __list1      = mMgrList;
            var __listCount1 = __list1.Count;
            for (var __i1 = 0; __i1 < __listCount1; ++__i1)
            {
                var mgr = __list1[__i1];
                {
                    try
                    {
                        //  Profiler.BeginSample(mgr.GetType().ToString());
                        mgr.Tick(Time.deltaTime);
                        //  Profiler.EndSample();
                    }
                    catch
                    {
                        // some mgr failed.
                    }
                }
            }
        }

        Profiler.BeginSample("TimeManager.Updata()");
        TimeManager.Instance.Updata();
        Profiler.EndSample();

        Profiler.BeginSample("GVoiceManager.Updata()");
        GVoiceManager.Instance.Update();
        Profiler.EndSample();

        Profiler.BeginSample("AnimationUpdateFrequencyController.Tick()");
        AnimationUpdateFrequencyController.Tick();
        Profiler.EndSample();

        ObjBase.UpdateVisiblity();

#if !UNITY_EDITOR
    }

    catch (Exception ex)
    {
        Logger.Error(ex.ToString());
    }
#endif
    }
    private static int Add(AnimationUpdateFrequencyController rect)
    {
        var index = GetNextAvaiableIndex();

        if (index >= 0)
        {
            animations[index] = rect;
            return(index);
        }
        else
        {
            animations.Add(rect);
            return(animations.Count - 1);
        }
    }
示例#3
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;
        mRenderer = null;
        mOtherRenderers.Clear();
        mShadow = null;
        SmoothVisibilityFrameCount = 0;
        DistSqr = 0;
        if (mAnimationUpdateFrequencyController != null)
        {
            mAnimationUpdateFrequencyController.UpdateFrequency = 0;
            mAnimationUpdateFrequencyController = null;
        }


        StopAllCoroutines();
        ComplexObjectPool.Release(gameObject);
        State            = ObjState.Deleted;
        UniqueResourceId = 0;
    }
示例#4
0
    //设置可见模型
    public virtual void SetModel(GameObject objModel)
    {
        if (objModel != null && mModel != null && mModel.GetInstanceID() != objModel.GetInstanceID())
        {
            mModelTransform.parent = null;
            ComplexObjectPool.Release(mModel);
            mModelTransform = null;
            mModel          = null;
            return;
        }

        if (objModel == null)
        {
            ComplexObjectPool.Release(mModel);
            mModelTransform = null;
            mModel          = null;
            return;
        }

        if (mModel != objModel)
        {
            ComplexObjectPool.Release(mModel);
        }

        mModel          = objModel;
        mModelTransform = mModel.transform;

        if (!mModel.GetComponent <MaterialDrawer>())
        {
            var mat = mModel.AddComponent <MaterialDrawer>();
            {
                OptList <Renderer> .List.Clear();

                mModel.GetComponentsInChildren(OptList <Renderer> .List);
                var __arrayLength1 = OptList <Renderer> .List.Count;
                for (var __i1 = 0; __i1 < __arrayLength1; ++__i1)
                {
                    var render = OptList <Renderer> .List[__i1];
                    {
                        mat.OriginalMaterials[render.GetInstanceID()] = render.sharedMaterial;
                    }
                }
            }
        }
        else
        {
            var mat = mModel.GetComponent <MaterialDrawer>();
            {
                OptList <Renderer> .List.Clear();

                mModel.GetComponentsInChildren(OptList <Renderer> .List);
                var __arrayLength2 = OptList <Renderer> .List.Count;
                for (var __i2 = 0; __i2 < __arrayLength2; ++__i2)
                {
                    var render = OptList <Renderer> .List[__i2];
                    {
                        Material material;
                        if (mat.OriginalMaterials.TryGetValue(render.GetInstanceID(), out material))
                        {
                            Destroy(render.material);
                            render.material = material;
                        }
                    }
                }
            }
        }

        mModel.name                   = ModelName;
        mModelTransform.parent        = ObjTransform;
        mModelTransform.localScale    = Vector3.one;
        mModelTransform.localRotation = Quaternion.identity;
        mModelTransform.localPosition = Vector3.zero;
        mRenderer = mModel.GetComponentInChildren <SkinnedMeshRenderer>();
        mModel.GetComponentsInChildren <Renderer>(mOtherRenderers);
        for (int i = 0; i < mOtherRenderers.Count; i++)
        {
            if (mOtherRenderers[i] == mRenderer)
            {
                mOtherRenderers.RemoveAt(i);
                i--;
            }
        }
        mAnimationUpdateFrequencyController = mModel.GetComponent <AnimationUpdateFrequencyController>();

        OnSetModel();
    }