Exemple #1
0
 void Awake()
 {
     m_Instance = this;
 }
Exemple #2
0
 void OnDestroy()
 {
     m_Instance = null;
 }
Exemple #3
0
        //受击状态处理
        void ProcessHitAnimState()
        {
            if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC)
            {
                if (AnimLogic != null && AnimLogic.CurAnimData != null)
                {
                    if (AnimLogic.CurAnimData.AnimID == (int)CharacterDefine.CharacterAnimId.Hit)
                    {
                        m_AnimLogic.Stop();
                    }

                    if (m_Objanimation != null && m_Objanimation.isPlaying && AnimLogic.CurAnimData.AnimID == (int)CharacterDefine.CharacterAnimId.Attack)
                    {
                        return;
                    }
                }

                if (null != m_AnimLogic)
                {
                    m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.Hit));
                }
            }
            else if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER ||
                     ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER ||
                     ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_ZOMBIE_PLAYER ||
                     ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_FELLOW)
            {
                bool            isPlay       = true;
                Obj_OtherPlayer _otherPlayer = null;
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER ||
                    ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
                {
                    _otherPlayer = this as Obj_OtherPlayer;
                }
                if (_otherPlayer == null)
                {
                    if (null != m_AnimLogic)
                    {
                        isPlay = m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.PlayerHit));
                    }
                }
                else if (_otherPlayer != null && _otherPlayer.MountID == -1) //骑马就不要播受击动作了
                {
                    if (null != m_AnimLogic)
                    {
                        isPlay = m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.PlayerHit));
                    }
                }
                //玩家播放受击音效
                if (isPlay)
                {
                    if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER ||
                        ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER ||
                        ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_ZOMBIE_PLAYER)
                    {
                        //受击音效不要太频繁 加个时间间隔
                        if (_otherPlayer != null && Time.time - m_fLastPlayHitSoundTime >= 2)
                        {
                            m_fLastPlayHitSoundTime = Time.time;
                            if (_otherPlayer.Profession == (int)CharacterDefine.PROFESSION.SHAOLIN)
                            {
                                PlaySoundAtPos(ObjType, 5, Position);  //attack1_shaolin
                            }
                            else if (_otherPlayer.Profession == (int)CharacterDefine.PROFESSION.TIANSHAN)
                            {
                                PlaySoundAtPos(ObjType, 177, Position);  //attack1_tianshan
                            }
                            else if (_otherPlayer.Profession == (int)CharacterDefine.PROFESSION.DALI)
                            {
                                PlaySoundAtPos(ObjType, 1, Position);  //attack1_dali
                            }
                            else if (_otherPlayer.Profession == (int)CharacterDefine.PROFESSION.XIAOYAO)
                            {
                                PlaySoundAtPos(ObjType, 7, Position);  //attack1_xiaoyao
                            }
                            else if (_otherPlayer.Profession == (int)CharacterDefine.PROFESSION.GAIBANG)
                            {
                                PlaySoundAtPos(ObjType, 168, Position);  //attack1_gaibang
                            }
                        }
                        //受伤害音效不要太频繁 加个时间间隔
                        //应策划需求,重新放开接口,by lizhe ~~
                        //    if (_otherPlayer != null && Time.time - m_fLastPlayDamageSoundTime >= 1.5f)
                        //{
                        //        m_fLastPlayDamageSoundTime = Time.time;
                        //    PlaySoundAtPos(ObjType, 10, Position);  //common_hurt
                        //}
                    }
                }
            }
            //击中效果跟技能音效分离的处理
            //音量随机
            //float volumeFactor = Random.Range(0.5f, 1.0f);

            //受击特效 主角自己不播放
            if (ObjType != Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
            {
                PlayEffect(8);
            }
            if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
            {
                //受击打断
                if (CollectItemSliderLogic.Instance())
                {
                    UIManager.CloseUI(UIInfo.CollectItemSlider);
                }
            }
        }