Question by
TheRealJanDE · Mar 16, 2020 at 01:37 PM ·
charactercontroller
Prevent character from rotating
I have an character which is an capsule. I also added movement and stuff but my capsule rotates for example if I go up stairs.
public class CharacterMovement : MonoBehaviour
{
//Geschwindigkeit des Spielers
public float speed;
//Gravitationsgeschwindigkeit des Spielers
public float gravity;
//Character definieren
private CharacterController _characterController;
//Jetzige Gravitation
private float currentGravity = 0f;
//Mausgeschwindigkeit horizontal
public float jumpSpeed = 8.0f;
private Vector3 moveDirection = Vector3.zero;
void Start()
{
//Komponent CharacterController suchen
_characterController = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
//Finalmove = die Gravitation und die Movement Methode
Vector3 finalMove = Movement() + ApplyGravity();
//Move Methode ausführen
_characterController.Move(finalMove * Time.deltaTime);
}
Vector3 ApplyGravity()
{
//Neuer Vector3 der die Gravitationsgeschwindigkeit bestimmt
Vector3 gravityMove = new Vector3(0, -currentGravity, 0);
//Zur currentGravity die neue Gravitation hinzufügen
currentGravity += gravity * Time.deltaTime;
//Wenn der Character auf dem Boden ist
if(_characterController.isGrounded)
{
if (currentGravity > 1f)
{
//Auf 1 setzen
currentGravity = 1f;
}
}
return gravityMove;
}
Vector3 Movement()
{
//Vector3 moveCh auf nichts setzen
Vector3 moveCh = Vector3.zero;
//W-S Steuerung hinzufügen (Vorne - Hinten)
moveCh += transform.forward * Input.GetAxis("Vertical");
//A-D Steuerung hinzufügen (Links - Rechts)
moveCh += transform.right * Input.GetAxis("Horizontal");
//Die Geschwindigkeit mit speed erhöhen
moveCh *= speed;
//moveCh zurückgeben.
return moveCh;
}
}
And my second problem is: I can't add a jump button. If I try moveCh += transform.up it's not working.
unity-2020-03-16-14-43-32.png
(297.0 kB)
Comment