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; }
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); }