/// param:Id[对应到SkillSceneObjManager中的Missle Id] /// example:1 public void Trigger_SummonMissle(string param) { #if SHOOTER_LOG Debug.Log("Trigger_SummonMissle param:" + param); #endif if (m_SceneObjMgr != null) { SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param); SceneObject_MissleInfo bulletInfo = m_SceneObjMgr.TryGetMissleInfo(sobjInfo.Id); IShooterSkill curSkill = TriggerImpl.GetCurSkill(this.gameObject); if (bulletInfo != null && bulletInfo.SceneObjInfo != null && curSkill != null) { bulletInfo = bulletInfo.Clone(); bulletInfo.Attacker = this.gameObject; bulletInfo.SceneObjInfo.EffectPos += this.gameObject.transform.position; bulletInfo.MoveStartPos += this.gameObject.transform.position; bulletInfo.MoveTargetPos += curSkill.GetTargetPos(); bulletInfo.MoveVelocity = this.gameObject.transform.rotation * bulletInfo.MoveVelocity; GameObject tBulletObj = TriggerImpl.PlayEffect(bulletInfo.SceneObjInfo); tBulletObj.SendMessage("Active", bulletInfo); } else { Debug.Log("Trigger_SummonMissle null!"); } } }
/// param:Duration[持续时间],BoneName[骨骼名字],AnimName[动画名字] /// example:0.5,ef_righthand,QiangShou_Test09 public void Trigger_StartAnimProcedure(string param) { #if SHOOTER_LOG Debug.Log("Trigger_StartAnimProcedure param:"); #endif SkillAnimProcedure tAniProce = this.gameObject.GetComponent <SkillAnimProcedure>(); if (tAniProce == null) { LogicSystem.GfxLog("Trigger_StartAnimProcedure SkillAnimProcedure miss!"); return; } IShooterSkill curSkill = TriggerImpl.GetCurSkill(this.gameObject); if (curSkill == null) { Debug.Log("Trigger_StartAnimProcedure curSkill null!"); return; } SkillAnimProcedureInfo info = new SkillAnimProcedureInfo(param); info.TargetPos = curSkill.GetTargetPos(); tAniProce.StartAnimProcedure(info); }
public bool ForceStartSkillById(int skillid) { IShooterSkill ss = GetSkillById(skillid); if (ss == null) { return(false); } if (m_CurPlaySkill == null || ss.CanStart()) { Vector3 targetPos = Vector3.zero; if (m_CurPlaySkill != null) { targetPos = m_CurPlaySkill.GetTargetPos(); m_CurPlaySkill.StopSkill(); } if (ss.StartSkill(targetPos)) { m_CurPlaySkill = ss; return(true); } } return(false); }