CharacterController

CharacterController Ă€r en komponent för att hantera spelkaraktĂ€rer i 3D-spel. Med en CharacterController behöver karaktĂ€ren ingen RigidBody eller Collider – istĂ€llet sköter CharacterControllern kollisioner med hjĂ€lp av vad som i princip Ă€r en Capsule Collider.

CharacterControllers har ingen automatisk gravitation och pÄverkas normalt inte heller av andra fysik-krafter.

Move()

Flytta objektet, ungefÀr som transform.Translate men arbetar normalt sett i den globala rymden, dvs förflyttningen Àr inte relativt objektets rotation.

Vector3 movement = inputVector.x * movementSpeed * transform.right
                     + inputVector.y * movementSpeed * transform.forward;

GetComponent<CharacterController>().Move(movement * Time.deltaTime);

isGrounded

Kolla ifall karaktÀren stÄr pÄ marken.

OBSERVERA: Fungerar bara om karaktĂ€ren flyttade sig, eller försökte flytta sig, föregĂ„ende frame! DĂ€rför Ă€r det bra att t.ex. inte nollstĂ€lla eventuell vertikal hastighet helt


if (characterController.isGrounded)
{
  verticalVelocity = -1;
  if (jumpPressed)
  {
    verticalVelocity = jumpForce;
  }
}

velocity

En Vector3 som Ă€r den hastighet karaktĂ€ren har – eller snarare, hade föregĂ„ende frame. Kan inte Ă€ndras pĂ„; Ă€r bara ett passivt utrĂ€knat vĂ€rde.

if (characterController.velocity.y > 0)
{
  // Hoppar
}
else if (characterController.isGrounded)
{
  // StÄr pÄ marken
}
else
{
  // Ramlar nedÄt
}

Last updated