private void _UpdatePosition(float dt) { switch (m_Type) { case 0: m_Destination.x = m_PathMgr.GetTargetPosition(m_Delta.x).x; m_Destination.y = transform.position.y; transform.position = m_Destination; break; case 1: m_Destination = m_PathMgr.GetTargetPosition(m_DeltaBezier); transform.position = m_Destination; break; case 2: Vector3 p = m_Target.transform.position; // Debug.Log(GraphicMath.Distance2Point(transform.position, p)); if (GraphicMath.Distance2Point(transform.position, p) <= 4 && m_RigidBody.IsSleeping()) { m_RigidBody.WakeUp(); m_RigidBody.AddForce(new Vector3(0f, m_JumpForce, 0f)); } break; } }