public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime) { if (curSectionTime < m_StartTime) { return(true); } GameObject obj = sender as GameObject; if (obj == null) { return(false); } if (!m_IsInited) { Init(obj, instance); } if (m_MoveTime == 0) { TriggerUtil.MoveObjTo(obj, m_TargetPos); return(false); } long passed_time = curSectionTime - m_StartTime; UnityEngine.Vector3 motion_pos = UnityEngine.Vector3.Lerp(m_StartPos, m_TargetPos, passed_time * 1.0f / m_MoveTime); TriggerUtil.MoveObjTo(obj, motion_pos); TriggerUtil.UpdateObjPosition(obj); return(true); }
public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime) { if (curSectionTime < m_StartTime) { return(true); } GameObject obj = sender as GameObject; if (obj == null) { return(false); } MoveTargetInfo target_info = instance.CustomDatas.GetData <MoveTargetInfo>(); if (target_info == null || target_info.Target == null) { return(false); } if (m_IsGrab) { if (!m_IsInited) { if (!Init(target_info.Target)) { return(false); } } if (TriggerUtil.AttachNodeToNode(obj, m_SourceNode, target_info.Target, m_TargetNode)) { TriggerUtil.UpdateObjPosition(target_info.Target); } if (curSectionTime < m_StartTime + m_UpdateTime) { return(true); } else { return(false); } } else { target_info.Target.transform.parent = null; UnityEngine.Vector3 pos; if (TriggerUtil.NeedCalculateNpcDropPoint(obj, target_info.Target, out pos)) { target_info.Target.transform.position = pos; } return(false); } }
public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime) { if (curSectionTime < m_StartTime) { return(true); } UnityEngine.GameObject obj = sender as UnityEngine.GameObject; if (obj == null) { return(false); } UnityEngine.Vector3 old_pos = instance.CustomDatas.GetData <UnityEngine.Vector3>(); if (old_pos != null) { obj.transform.position = old_pos; TriggerUtil.UpdateObjPosition(obj); } return(false); }
private UnityEngine.Vector3 Move(GameObject obj, UnityEngine.Vector3 speed_vect, UnityEngine.Vector3 accel_vect, float time) { m_StartTransform.transform.position = obj.transform.position; if (!m_IsLockRotate) { m_StartTransform.transform.rotation = obj.transform.rotation; } UnityEngine.Vector3 local_motion = speed_vect * time + accel_vect * time * time / 2; UnityEngine.Vector3 word_target_pos; while (local_motion.magnitude > m_MaxMoveStep) { UnityEngine.Vector3 child = UnityEngine.Vector3.ClampMagnitude(local_motion, m_MaxMoveStep); local_motion = local_motion - child; word_target_pos = m_StartTransform.transform.TransformPoint(child); TriggerUtil.MoveObjTo(obj, word_target_pos); m_StartTransform.transform.position = obj.transform.position; } word_target_pos = m_StartTransform.transform.TransformPoint(local_motion); TriggerUtil.MoveObjTo(obj, word_target_pos); TriggerUtil.UpdateObjPosition(obj); return(speed_vect + accel_vect * time); }
public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime) { if (curSectionTime < m_StartTime) { return(true); } GameObject obj = sender as GameObject; if (obj == null) { return(false); } if (!m_IsInited) { Init(obj); } if (m_CurTargetSummon != null) { long passed_time = curSectionTime - (m_NextSummonBeginTime - m_MoveTime); if (passed_time > m_MoveTime) { passed_time = m_MoveTime; } UnityEngine.Vector3 motion_pos = UnityEngine.Vector3.Lerp(m_StartPos, m_CurTargetSummon.transform.position, passed_time * 1.0f / m_MoveTime); TriggerUtil.MoveObjTo(obj, motion_pos); TriggerUtil.UpdateObjPosition(obj); } if (m_CurTargetSummon == null || curSectionTime > m_NextSummonBeginTime) { m_CurIndex++; if (m_CurIndex >= m_SummonList.Count || (m_EndIndex >= m_StartIndex && m_CurIndex > m_EndIndex)) { return(false); } InitNextSummonInfo(obj); } return(true); }