public void Process(EntityParent entity, params object[] args) { deadFx = entity.Transform.GetComponent <_2dxFX_DesintegrationFX>(); if (deadFx != null) { deadFx.ForceMaterial = entity.Transform.GetComponent <MeshRenderer>().material; deadFx.enabled = true; } entity.animator.CrossFade("Dead", 0.0f); entity.bIsDead = true; entity.entityActor.moveDir = Vector3.zero; entity.LeaveLevel(); DataEntityList data = DataEntityList.dataMap[entity.type]; AudioType type = AudioType.纹身男死亡; switch (data.Name) { case "纹身男": type = AudioType.纹身男死亡; break; case "胖子男": type = AudioType.胖子男死亡; break; } //播放死亡音效 AudioManagerBase.Instance.LogicPlaySoundByClip(entity.audioSource, ResourcePoolManager.singleton.GetAudioClip(type)); }
public void Process(EntityParent entity, params object[] args) { if (entity is EntityMyself && SkillManager.singleton.HasSkillRunning()) { } else { entity.PlayAnimation("OnHit"); } oldMove = entity.entityActor.moveDir; entity.entityActor.moveDir = Vector3.zero; //受击特效 Skill skill = args[0] as Skill; if (skill != null || (skill == null && entity is EntityMyself)) { string path = string.Empty; if (skill == null) { path = "Assets.Prefabs.Effects.Hit.HitBai.prefab"; } else { switch (skill.hitType) { case OnHitEffectType.白色: path = "Assets.Prefabs.Effects.Hit.HitBai.prefab"; break; case OnHitEffectType.橙色: path = "Assets.Prefabs.Effects.Hit.HitCheng.prefab"; break; case OnHitEffectType.紫色: path = "Assets.Prefabs.Effects.Hit.HitZi.prefab"; break; case OnHitEffectType.红色: path = "Assets.Prefabs.Effects.Hit.HitHong.prefab"; break; } } WWWResourceManager.Instance.Load(path, (asset) => { if (asset != null) { theHitEffect = asset.Instantiate(); this.theHitEffect.transform.SetParent(entity.bindNodeTable[CommonDefineBase.BindCenter] as Transform); theHitEffect.transform.localPosition = Vector3.zero; DataEntityList data = DataEntityList.dataMap[entity.type]; AudioType type = AudioType.纹身男死亡; switch (data.Name) { case "纹身男": type = AudioType.纹身男死亡; break; case "胖子男": type = AudioType.胖子男死亡; break; } //播放音效 AudioManagerBase.Instance.LogicPlaySoundByClip(entity.audioSource, ResourcePoolManager.singleton.GetAudioClip(type)); } }); if (entity is EntityMonster) { entity.timer.Add(TimerManager.AddTimer(500, 0, () => { entity.Move(); })); } else { entity.Idle(); } } }
public override void CreateEntity(Action action) { DataEntityList data = DataEntityList.dataMap[this.type]; if (ResourcePoolManager.singleton.dicEffectPool.ContainsKey(data.ModelFile)) { Transform prefab = ResourcePoolManager.singleton.dicEffectPool[data.ModelFile]; GameObject gameobject = PoolManager.Pools[PoolManager.EffectPoolName].Spawn(prefab).gameObject; gameobject.tag = "Player"; GameObject.DontDestroyOnLoad(gameobject); if (fsmMotion == null) { fsmMotion = new FSMMotion(); } animator = gameobject.GetComponent <Animator>(); this.collider2d = gameobject.GetComponent <Collider2D>(); audioSource = gameobject.GetComponent <AudioSource>(); if (null == audioSource) { audioSource = gameobject.AddComponent <AudioSource>(); } audioSource.rolloffMode = AudioRolloffMode.Custom; GameObject = gameobject; Transform = gameobject.transform; Renderer = gameobject.GetComponentInChildren <Renderer>(); entityActor = gameobject.GetComponent <EntityActor>(); entityActor.entity = this; entityActor.Id = this.EntityId; Transform.gameObject.layer = LayerMask.NameToLayer("Enemy"); GatherRenderNodeInfo(GameObject); this.collider2d.enabled = true; this.entityActor.enabled = true; bIsDead = false; this.SetVisiable(false); if (action != null) { action(); } } else { WWWResourceManager.Instance.Load(data.ModelFile, (assetRequest) => { Transform assetTra = (assetRequest.mainObject as GameObject).transform; GameObject gameobject = PoolManager.Pools[PoolManager.EffectPoolName].Spawn(assetTra).gameObject; ResourcePoolManager.singleton.dicEffectPool.Add(data.ModelFile, assetTra); gameobject.tag = "Player"; GameObject.DontDestroyOnLoad(gameobject); if (fsmMotion == null) { fsmMotion = new FSMMotion(); } animator = gameobject.GetComponent <Animator>(); this.collider2d = gameobject.GetComponent <Collider2D>(); audioSource = gameobject.GetComponent <AudioSource>(); if (null == audioSource) { audioSource = gameobject.AddComponent <AudioSource>(); } audioSource.rolloffMode = AudioRolloffMode.Custom; GameObject = gameobject; Transform = gameobject.transform; Renderer = gameobject.GetComponentInChildren <Renderer>(); entityActor = gameobject.GetComponent <EntityActor>(); entityActor.entity = this; entityActor.Id = this.EntityId; Transform.gameObject.layer = LayerMask.NameToLayer("Enemy"); GatherRenderNodeInfo(GameObject); this.SetVisiable(false); if (action != null) { action(); } }); } }