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);
        }
Esempio n. 2
0
        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);
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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);
        }