コード例 #1
0
    /// param:Id[对应到SkillSceneObjManager中的Impact Id],verticalHeight[垂直高度],verticalHeightStart[底面起始高度偏移],sectorDegree[角度范围]
    /// example:1,10,-1,60
    public void Trigger_SendVerticalImpact(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_SendVerticalImpact param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo sobjInfo            = new SkillSceneObjInfo(param);
            float             verticalHeight      = sobjInfo.ExtractNumeric <float>(0, 10.0f);
            float             verticalHeightStart = sobjInfo.ExtractNumeric <float>(1, 0.0f);
            float             sectorDegree        = sobjInfo.ExtractNumeric <float>(2, 360.0f);
            SkillImpactInfos  bulletInfo          = m_SceneObjMgr.TryGetSkillImpactInfo(sobjInfo.Id);
            IShooterSkill     curSkill            = TriggerImpl.GetCurSkill(this.gameObject);
            if (bulletInfo != null)
            {
                bulletInfo = bulletInfo.Clone();
                TriggerImpl.ProcessVerticalImpact(this.gameObject, this.gameObject, bulletInfo,
                                                  verticalHeight, verticalHeightStart, sectorDegree);
            }
            else
            {
                Debug.Log("Trigger_SendVerticalImpact null!");
            }
        }
    }
コード例 #2
0
    /// param:Id[对应到SkillSceneObjManager中的SoundEffect Id], pos[场景绝对位置]
    /// example:2,0 2 3
    public void Trigger_PlaySoundAtPosBySoundId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_PlaySoundAtPosBySoundId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo  = new SkillSceneObjInfo(param);
        Vector3           targetPos = Vector3.zero;
        try {
            if (sobjInfo.paramOther.Count > 0)
            {
                targetPos = Script_Util.ToVector3(sobjInfo.paramOther[0]);
            }
            else
            {
                Debug.Log("Trigger_PlaySoundAtPosBySoundId miss pos");
                return;
            }
        } catch (System.Exception ex) {
            Debug.Log("Trigger_PlaySoundAtPosBySoundId pos convert error");
            return;
        }

        if (m_SceneObjMgr != null)
        {
            SkillSoundInfo soundInfo = m_SceneObjMgr.TryGetSkillSoundInfo(sobjInfo.Id);
            if (soundInfo != null)
            {
                TriggerImpl.PlaySoundAtPos(soundInfo, targetPos);
            }
        }
        else
        {
            Debug.Log("Trigger_PlaySoundAtPosBySoundId null");
        }
    }
コード例 #3
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!");
            }
        }
    }
コード例 #4
0
    /// param:Id[对应到SkillSceneObjManager中的SkillEffectId]
    /// example:2
    public void Trigger_PlayEffectAtWeaponByEffectId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_PlayEffectAtWeaponByEffectId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo      = new SkillSceneObjInfo(param);
        MasterWeaponType  masterType    = (MasterWeaponType)(sobjInfo.ExtractNumeric <int>(0, 0));
        GameObject        curMainWeapon = TriggerImpl.GetCurMainWeapon(this.gameObject, masterType);
        if (m_SceneObjMgr != null && curMainWeapon != null)
        {
            SkillEffectInfo effectInfo = m_SceneObjMgr.TryGetSkillEffectInfo(sobjInfo.Id);
            if (effectInfo != null)
            {
                effectInfo = effectInfo.Clone();
                Vector3 pos = curMainWeapon.transform.position;
                Vector3 rot = curMainWeapon.transform.rotation.eulerAngles;
                if (!string.IsNullOrEmpty(effectInfo.EffectParentBone))
                {
                    Transform t = LogicSystem.FindChildRecursive(curMainWeapon.transform, effectInfo.EffectParentBone);
                    if (null != t)
                    {
                        pos = t.position;
                    }
                }
                effectInfo.EffectPos += pos;
                effectInfo.EffectRot += rot;
                TriggerImpl.PlayEffect(effectInfo);
            }
        }
    }
コード例 #5
0
    /// param:Id[对应到SkillSceneObjManager中的SkillEffectId]
    /// example:2
    public void Trigger_PlayEffectAtRoleByEffectId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_PlayEffectAtRoleByEffectId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
        if (m_SceneObjMgr != null)
        {
            SkillEffectInfo effectInfo = m_SceneObjMgr.TryGetSkillEffectInfo(sobjInfo.Id);
            if (effectInfo != null)
            {
                effectInfo = effectInfo.Clone();
                Vector3 pos = this.gameObject.transform.position;
                Vector3 rot = this.gameObject.transform.rotation.eulerAngles;
                if (!string.IsNullOrEmpty(effectInfo.EffectParentBone))
                {
                    Transform t = LogicSystem.FindChildRecursive(this.gameObject.transform, effectInfo.EffectParentBone);
                    if (null != t)
                    {
                        pos = t.position;
                    }
                }
                effectInfo.EffectPos += pos;
                effectInfo.EffectRot += rot;
                TriggerImpl.PlayEffect(effectInfo);
            }
        }
    }
コード例 #6
0
    public SkillSceneObjInfo Clone()
    {
        SkillSceneObjInfo newData = new SkillSceneObjInfo();

        newData.Id         = Id;
        newData.IsValid    = IsValid;
        newData.paramOther = new List <string>();
        foreach (string info in paramOther)
        {
            newData.paramOther.Add(info);
        }
        return(newData);
    }
コード例 #7
0
    /// <summary>
    /// Triggers
    /// </summary>
    /// param:Id[对应到SkillSceneObjManager中的SkillEffectId]
    /// example:2
    public void Trigger_PlayEffectAtPosByEffectId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_PlayEffectByEffectId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
        if (m_SceneObjMgr != null)
        {
            SkillEffectInfo effectInfo = m_SceneObjMgr.TryGetSkillEffectInfo(sobjInfo.Id);
            if (effectInfo != null)
            {
                TriggerImpl.PlayEffect(effectInfo);
            }
        }
    }
コード例 #8
0
    /// param:Id[对应到SkillSceneObjManager中的SoundEffect Id]
    /// example:2
    public void Trigger_PlaySoundAtRoleBySoundId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_PlaySoundAtRoleBySoundId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
        if (m_SceneObjMgr != null)
        {
            SkillSoundInfo soundInfo = m_SceneObjMgr.TryGetSkillSoundInfo(sobjInfo.Id);
            if (soundInfo != null)
            {
                TriggerImpl.PlaySoundAtTarget(this.gameObject, soundInfo);
            }
        }
        else
        {
            Debug.Log("Trigger_PlaySoundAtRoleBySoundId null");
        }
    }
コード例 #9
0
    /// param:Id[对应到SkillSceneObjManager中的WeaponInfo Id]
    /// example:1
    public void Trigger_ChangeWeapon(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_ChangeWeapon param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
            SkillWeaponInfo   moveInfo = m_SceneObjMgr.TryGetSkillWeaponInfo(sobjInfo.Id);
            if (moveInfo != null)
            {
                TriggerImpl.ChangeWeapon(this.gameObject, moveInfo);
            }
            else
            {
                Debug.Log("Trigger_ChangeWeapon null!");
            }
        }
    }
コード例 #10
0
    //功能:开始移动
    //参数:{speed} 移动速度
    public void Trigger_StartMove(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_StartMove param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
            SkillMovementInfo moveInfo = m_SceneObjMgr.TryGetSkillMovementInfo(sobjInfo.Id);
            if (moveInfo != null)
            {
                TriggerImpl.StartMove(this.gameObject, moveInfo);
            }
            else
            {
                Debug.Log("Trigger_StartMove null!");
            }
        }
    }
コード例 #11
0
    /// param:ID[对应到SkillSceneObjManager中的LockFrameInfo Id]
    /// example:101
    public void Trigger_LockMoveScale(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_LockMoveScale param:");
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo  sobjInfo = new SkillSceneObjInfo(param);
            SkillMoveScaleInfo lockInfo = m_SceneObjMgr.TryGetSkillMoveScaleInfo(sobjInfo.Id);
            if (lockInfo != null)
            {
                lockInfo = lockInfo.Clone();
                TriggerImpl.StartMoveScale(this.gameObject, lockInfo);
            }
            else
            {
                Debug.Log("Trigger_LockFrame null!");
            }
        }
    }
コード例 #12
0
    /// param:Id[忽略],duration[震屏持续时间],frequency[震屏频率],randomPercent[震屏位移产生概率],amplitude[震屏位移幅度]
    /// example:0,1,0.02,80,0.03
    /// example:0
    public void Trigger_StartShakeCamera(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_StartShakeCamera param:");
#endif
        ShakeCamera tShakeCameraObj = this.gameObject.GetComponent <ShakeCamera>();
        if (tShakeCameraObj == null)
        {
            LogicSystem.GfxLog("Trigger_StartShakeCamera miss!");
            return;
        }

        SkillSceneObjInfo sobjInfo      = new SkillSceneObjInfo(param);
        float             duration      = sobjInfo.ExtractNumeric <float>(0, 1.0f);
        float             frequency     = sobjInfo.ExtractNumeric <float>(1, 0.02f);
        float             randomPercent = sobjInfo.ExtractNumeric <float>(2, 80.0f);
        float             amplitude     = sobjInfo.ExtractNumeric <float>(3, 0.03f);
        string            formatParam   = string.Format("{0} {1} {2} {3}", duration, frequency, randomPercent, amplitude);
        tShakeCameraObj.StartShakeCamera(formatParam);
    }
コード例 #13
0
    /// param:Id[对应到SkillSceneObjManager中的SkillEffect Id]
    /// example:2
    public void Trigger_AttachEffectDirectAtRoleByEffectId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_AttachEffectDirectAtRoleByEffectId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param);
        if (m_SceneObjMgr != null)
        {
            SkillEffectInfo effectInfo = m_SceneObjMgr.TryGetSkillEffectInfo(sobjInfo.Id);
            if (effectInfo != null)
            {
                effectInfo = effectInfo.Clone();
                effectInfo.EffectParent = this.gameObject.transform;
                TriggerImpl.AttachEffectDirect(effectInfo);
            }
        }
        else
        {
            Debug.Log("Trigger_AttachEffectDirectAtRoleByEffectId null");
        }
    }
コード例 #14
0
    /// param:Id[对应到SkillSceneObjManager中的Impact Id]
    /// example:1
    public void Trigger_SendImpact(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_SendImpact param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo sobjInfo   = new SkillSceneObjInfo(param);
            SkillImpactInfos  bulletInfo = m_SceneObjMgr.TryGetSkillImpactInfo(sobjInfo.Id);
            IShooterSkill     curSkill   = TriggerImpl.GetCurSkill(this.gameObject);
            if (bulletInfo != null)
            {
                bulletInfo = bulletInfo.Clone();
                TriggerImpl.ProcessImpact(this.gameObject, this.gameObject, bulletInfo);
            }
            else
            {
                Debug.Log("Trigger_SendImpact null!");
            }
        }
    }
コード例 #15
0
    /// param:Id[对应到SkillSceneObjManager中的SkillEffectId]
    /// example:2
    public void Trigger_AttachEffectAtWeaponByEffectId(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_AttachEffectAtWeaponByEffectId param:" + param);
#endif
        SkillSceneObjInfo sobjInfo      = new SkillSceneObjInfo(param);
        MasterWeaponType  masterType    = (MasterWeaponType)(sobjInfo.ExtractNumeric <int>(0, 0));
        GameObject        curMainWeapon = TriggerImpl.GetCurMainWeapon(this.gameObject, masterType);
        if (m_SceneObjMgr != null && curMainWeapon != null)
        {
            SkillEffectInfo effectInfo = m_SceneObjMgr.TryGetSkillEffectInfo(sobjInfo.Id);
            if (effectInfo != null)
            {
                effectInfo = effectInfo.Clone();
                effectInfo.EffectParent = curMainWeapon.transform;
                TriggerImpl.AttachEffect(effectInfo);
            }
        }
        else
        {
            Debug.Log("Trigger_AttachEffectAtWeaponByEffectId null");
        }
    }
コード例 #16
0
    /// param:Id[对应到SkillSceneObjManager中的AttractBullet Id]
    /// example:1
    public void Trigger_AttractShoot(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_AttractShoot param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo             sobjInfo   = new SkillSceneObjInfo(param);
            SceneObject_AttractBulletInfo bulletInfo = m_SceneObjMgr.TryGetAttractBulletInfo(sobjInfo.Id);
            MasterWeaponType masterType    = (MasterWeaponType)(sobjInfo.ExtractNumeric <int>(0, 0));
            GameObject       curMainWeapon = TriggerImpl.GetCurMainWeapon(this.gameObject, masterType);
            if (bulletInfo != null && bulletInfo.SceneObjInfo != null && curMainWeapon != null)
            {
                Transform efSpark = LogicSystem.FindChildRecursive(curMainWeapon.transform,
                                                                   Script_Util.ForceNotifyEffectBone(bulletInfo.SceneObjInfo.EffectParentBone));
                if (null == efSpark)
                {
                    Debug.Log("Trigger_AttractShoot bone miss!");
                    return;
                }
                bulletInfo          = bulletInfo.Clone();
                bulletInfo.Attacker = this.gameObject;
                bulletInfo.SceneObjInfo.EffectPos += efSpark.transform.position;
                bulletInfo.MoveStartPos           += efSpark.transform.position;
                bulletInfo.MoveDir = Quaternion.Euler(efSpark.transform.rotation.eulerAngles + bulletInfo.MoveDir) * Vector3.forward;
                bulletInfo.SceneObjInfo.EffectLiftTime = float.MaxValue;
                bulletInfo.ImpactSrcPos += new Vector3(gameObject.transform.position.x,
                                                       efSpark.transform.position.y, gameObject.transform.position.z);
                GameObject tBulletObj = TriggerImpl.PlayEffect(bulletInfo.SceneObjInfo);
                tBulletObj.SendMessage("Active", bulletInfo);
            }
            else
            {
                Debug.Log("Trigger_AttractShoot null!");
            }
        }
    }
コード例 #17
0
    /// param:Id[对应到SkillSceneObjManager中的Impact Id],center[box中心],size[box大小]
    /// example:602,0 1 1.5,1 3 3
    public void Trigger_SendImpactByBoxCollider(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_SendImpactByBoxCollider param:" + param);
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo sobjInfo   = new SkillSceneObjInfo(param);
            Vector3           center     = sobjInfo.ExtractVector3(0);
            Vector3           size       = sobjInfo.ExtractVector3(1);
            SkillImpactInfos  bulletInfo = m_SceneObjMgr.TryGetSkillImpactInfo(sobjInfo.Id);
            IShooterSkill     curSkill   = TriggerImpl.GetCurSkill(this.gameObject);
            if (bulletInfo != null)
            {
                bulletInfo = bulletInfo.Clone();
                TriggerImpl.ProcessImpactByBoxCollider(this.gameObject, this.gameObject, bulletInfo,
                                                       center, size);
            }
            else
            {
                Debug.Log("Trigger_SendImpact null!");
            }
        }
    }