Exemple #1
0
    /// 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!");
            }
        }
    }
Exemple #2
0
    /// 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);
    }