public override void Move(Vector3 velocity, bool onMoveMotor = false) { m_Raycaster.UpdateRaycastOrigins(); calculatePassengersMovement(velocity); movePassengers(m_MoveBeforePlatformPassengers); transform.Translate(velocity); movePassengers(m_MoveAfterPlatformPassengers); }
public override void Move(Vector3 velocity, bool isOnMovingMotor = false) { m_Raycaster.UpdateRaycastOrigins(); //updateRaycastOrigins(); m_CollisionInfo.Reset(); Raw_Velocity = velocity; velocity += ExternalForce; if (velocity.x != 0) { m_MovingDirection = (int)(Mathf.Sign(velocity.x)); } if (velocity.y < 0) { descendSlope(ref velocity); } horizontalCollision(ref velocity); if (velocity.y != 0) { verticalCollision(ref velocity); } Velocity = velocity; /* * var body = GetComponent<Rigidbody2D>(); * var vec3 = new Vector3(body.position.x, body.position.y, 0); * body.MovePosition(vec3 + velocity); */ movePosition(velocity); if (isOnMovingMotor) { setBelow(true, Vector2.up); } onCollisionEnterCallback(); onCollisionExitCallback(); onCollisionStayCallback(); resetState(); }