//释放技能 public virtual void OnEntityReleaseSkill() { SkillManagerConfig skillManagerConfig = ConfigReader.GetSkillManagerCfg(EntitySkillID); if (skillManagerConfig == null) { return; } //吸附技能 实际上是配置文件中的 bIsConsumeSkill if (skillManagerConfig.isAbsorb == 1) { //删除已有的相同特效 foreach (Transform child in RealEntity.objAttackPoint) { if (child.name.Contains(skillManagerConfig.absorbRes)) { int offset = child.name.IndexOf('_'); if (offset != 0) { string name = child.name.Substring(offset + 1); int id = Convert.ToInt32(name); EffectManager.Instance.DestroyEffect(id); } } } //创建吸附技能效果 string absortActPath = "effect/soul_act/" + skillManagerConfig.absorbRes; NormalEffect absortSkillEffect = EffectManager.Instance.CreateNormalEffect(absortActPath, RealEntity.objAttackPoint.gameObject); if (absortSkillEffect != null) { Quaternion rt = Quaternion.LookRotation(EntityFSMDirection); } objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection); } else { if (skillManagerConfig.isNormalAttack == 1) //判断是否是普通攻击 { RealEntity.PlayeAttackAnimation(); //播放攻击动画 } else//技能攻击 { RealEntity.PlayerAnimation(skillManagerConfig.rAnimation);//播放释放技能动画 //如果此动画不是循环模式 if (RealEntity.GetComponent <Animation>()[skillManagerConfig.rAnimation] != null && RealEntity.GetComponent <Animation>()[skillManagerConfig.rAnimation].wrapMode != WrapMode.Loop) { RealEntity.CrossFadeSqu("free"); //淡入free动画 } HolyTech.Effect.EffectManager.playSkillReleaseSound(this, EntitySkillID); //播放技能释放的声音 } float distance = GetDistanceToPos(EntityFSMPosition);//有什么用? if (entityType != EntityType.Building) { objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection); } } }
/// <summary> /// 爆炸特效 /// </summary> /// <param name="entity"></param> public static void SetLoadJianTaBaoZha(Ientity entity, bool Replace = true) { if (entity.NPCCateChild != ENPCCateChild.eNPCChild_BUILD_Summon && Replace) { BuildReplaceObject(entity); } GameObject root = null; //Vector3 pos = entity.EntityFSMPosition; Vector3 pos = entity.realObject.transform.position; //if (entity.NpcGUIDType != Ientity.JIDI_A && entity.NpcGUIDType != Ientity.JIDI_B) if (!EntityManager.GetHomeBaseList().Contains(entity)) { string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath; if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false) { return; } //GameObject CreateEffect = Resources.Load(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha) as GameObject; //ResourceUnit CreateEffectUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, ResourceType.PREFAB); //GameObject CreateEffect = CreateEffectUnit.Asset as GameObject; NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null); if (normalEffect == null) { return; } //root = GameObject.Instantiate(CreateEffect) as GameObject; //if (root != null) // root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); } else { if (entity.IsSameCamp(EntityCampType.CampTypeA)) { pos.y += 6f; LoadBaseDate.Instance().BaseA.gameObject.SetActive(true); LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z); return; } LoadBaseDate.Instance().BaseB.gameObject.SetActive(true); LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z); } }
/// <summary> /// 爆炸特效 /// </summary> /// <param name="entity"></param> public static void SetLoadJianTaBaoZha(IEntity entity, bool Replace = true) { if (entity.NPCCateChild != NPCCateChildEnum.BUILD_Summon && Replace) { BuildReplaceObject(entity); } GameObject root = null; Vector3 pos = entity.realObject.transform.position; if (!EntityManager.GetHomeBaseList().Contains(entity)) { string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath; if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false) { return; } NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null); if (normalEffect == null) { return; } //root = GameObject.Instantiate(CreateEffect) as GameObject; //if (root != null) // root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z); } else { if (entity.IsSameCamp(EntityCampTypeEnum.A)) { pos.y += 6f; LoadBaseDate.Instance().BaseA.gameObject.SetActive(true); LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z); return; } LoadBaseDate.Instance().BaseB.gameObject.SetActive(true); LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z); } }
public virtual void OnEntityReleaseSkill() { ////////////////////////////////////////////////////////////////////////////////////////// // SkillManagerConfig skillManagerConfig = ConfigReader.GetSkillManagerCfg(EntitySkillID); if (skillManagerConfig == null) { return; } //吸附技能 if (skillManagerConfig.isAbsorb == 1) { //删除已有的相同特效 foreach (Transform child in RealEntity.objAttackPoint) { if (child.name.Contains(skillManagerConfig.absorbRes)) { int offset = child.name.IndexOf('_'); if (offset != 0) { string name = child.name.Substring(offset + 1); int id = Convert.ToInt32(name); EffectManager.Instance.DestroyEffect(id); } } } //创建吸附技能效果 string absortActPath = "effect/soul_act/" + skillManagerConfig.absorbRes; NormalEffect absortSkillEffect = EffectManager.Instance.CreateNormalEffect(absortActPath, RealEntity.objAttackPoint.gameObject); if (absortSkillEffect != null) { Quaternion rt = Quaternion.LookRotation(EntityFSMDirection); //absortSkillEffect.obj.transform.rotation = rt; } objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection); } else { if (skillManagerConfig.isNormalAttack == 1) { RealEntity.PlayeAttackAnimation(); } else { { RealEntity.PlayerAnimation(skillManagerConfig.rAnimation); if (RealEntity.animation[skillManagerConfig.rAnimation] != null && RealEntity.animation[skillManagerConfig.rAnimation].wrapMode != WrapMode.Loop) { RealEntity.CrossFadeSqu("free"); } BlGame.Effect.EffectManager.playSkillReleaseSound(this, EntitySkillID); } } float distance = GetDistanceToPos(EntityFSMPosition); if (entityType != EntityType.Building) { objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection); } } }