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); } }
//销毁 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; }
//设置可见模型 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(); }