private bool Init(SkillInstance instance)
        {
            if (m_IsNeedCollide)
            {
                SkillDamageManager damage_manager = instance.CustomDatas.GetData <SkillDamageManager>();
                if (damage_manager == null || !damage_manager.IsDamagedEnemy)
                {
                    return(false);
                }
            }
            if (m_XShakeInfo == null || m_YShakeInfo == null || m_ZShakeInfo == null)
            {
                return(false);
            }
            m_IsInited            = true;
            m_CameraOriginPos     = Camera.main.transform.position;
            m_LastCameraFollowPos = m_CameraOriginPos;
            m_CameraControlId     = TriggerUtil.ControlCamera(true);
            if (m_CameraControlId == TriggerUtil.CAMERA_CONTROL_FAILED)
            {
                return(false);
            }
            float now = instance.CurTime / 1000.0f;

            m_XShakeInfo.Init(m_CameraOriginPos.x, now);
            m_YShakeInfo.Init(m_CameraOriginPos.y, now);
            m_ZShakeInfo.Init(m_CameraOriginPos.z, now);
            m_CameraObject = TriggerUtil.GetCameraObj();
            return(true);
        }
        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            if (curSectionTime < m_StartTime)
            {
                return(true);
            }
            if (curSectionTime > m_StartTime + m_RemainTime)
            {
                if (TriggerUtil.IsControledCamera(m_CameraControlId))
                {
                    TriggerUtil.ControlCamera(false);
                }
                return(false);
            }

            GameObject obj = sender as GameObject;

            if (obj == null)
            {
                return(false);
            }

            if (!m_IsInited)
            {
                if (!Init(instance))
                {
                    return(false);
                }
            }
            if (!TriggerUtil.IsControledCamera(m_CameraControlId))
            {
                return(false);
            }
            float now = instance.CurTime / 1000.0f;

            m_XShakeInfo.Tick(now);
            m_YShakeInfo.Tick(now);
            m_ZShakeInfo.Tick(now);
            UnityEngine.Vector3 new_pos = new UnityEngine.Vector3(m_XShakeInfo.CurPos, m_YShakeInfo.CurPos, m_ZShakeInfo.CurPos);
            if (m_IsRelativeUser)
            {
                new_pos = new_pos - m_CameraOriginPos;
                new_pos = obj.transform.TransformPoint(new_pos);
                new_pos = new_pos - obj.transform.position;
                new_pos = m_CameraOriginPos + new_pos;
            }
            if (m_IsFollow)
            {
                Camera.main.transform.position = m_LastCameraFollowPos;
                if (m_CameraObject != null)
                {
                    m_CameraObject.SendMessage("Apply");
                }
                m_LastCameraFollowPos = Camera.main.transform.position;
                new_pos = Camera.main.transform.position + (new_pos - m_CameraOriginPos);
            }
            Camera.main.transform.position = new_pos;
            return(true);
        }
 public override void Reset()
 {
     m_IsInited = false;
     if (TriggerUtil.IsControledCamera(m_CameraControlId))
     {
         TriggerUtil.ControlCamera(false);
     }
     m_CameraControlId = TriggerUtil.CAMERA_CONTROL_FAILED;
 }
示例#4
0
 private bool Init()
 {
     m_IsInited        = true;
     m_CameraControlId = TriggerUtil.ControlCamera(true, true);
     if (m_CameraControlId < TriggerUtil.CAMERA_CONTROL_START_ID)
     {
         return(false);
     }
     m_CameraObj = TriggerUtil.GetCameraObj();
     return(true);
 }
 private bool Init(SkillInstance instance)
 {
     m_CameraControlId = TriggerUtil.ControlCamera(true, true);
     if (m_CameraControlId < TriggerUtil.CAMERA_CONTROL_START_ID)
     {
         return(false);
     }
     m_CameraObj = TriggerUtil.GetCameraObj();
     CopySectionList();
     m_Now = instance.CurTime / 1000.0f;
     m_SectionListCopy[0].startTime      = m_Now;
     m_SectionListCopy[0].lastUpdateTime = m_Now;
     m_SectionListCopy[0].curSpeedVect   = m_SectionListCopy[0].speedVect;
     m_IsInited = true;
     return(true);
 }