Unity Character Controller verbuggt?

Hey Leute,

ich habe mir gerade dieses:

(44) Basic Third Person Character Controller in Unity - Unity C# Tutorial 2022 - YouTube

Tutoral für third person controller angeschaut. Nach programmierung der Scripts habe ich aber zwei Bugs:

Mein Character "slided" weiter über den Boden auch wenn ich aufhöre w zu drücken. Man kann sich das vorstellen wie auf einer Eisbahn.

Obwohl ich eine Rigidbody eingefügt habe, fällt der Character nicht auf den Boden! Mein leicht abgeänderter Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
  public Animator playerAnim;
  public Rigidbody playerRigid;
  public float w_speed, wb_speed, olw_speed, rn_speed, ro_speed;
  public bool walking;
  public Transform playerTrans;
  void FixedUpdate()
  {
    if (Input.GetKey(KeyCode.W))
    {
      playerRigid.velocity = transform.forward * w_speed * Time.deltaTime;
    }
    if (Input.GetKey(KeyCode.S))
    {
      playerRigid.velocity = -transform.forward * wb_speed * Time.deltaTime;
    }
  }
  void Update()
  {
    if (Input.GetKeyDown(KeyCode.W))
    {
       playerAnim.SetTrigger("walk");
       playerAnim.ResetTrigger("idle");
       walking = true;
       //steps1.SetActive(true);
    }
    
    if (Input.GetKeyUp(KeyCode.W))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
  //steps1.SetActive(false);
    }
    
    if (Input.GetKeyDown(KeyCode.S))
    {
      playerAnim.SetTrigger("walk");
      playerAnim.ResetTrigger("idle");
      walking = true;
    }
    
    if (Input.GetKeyUp(KeyCode.S))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
    }
    
    if (Input.GetKey(KeyCode.A))
    {
      playerTrans.Rotate(0, -ro_speed * Time.deltaTime, 0);
    }
    
    if (Input.GetKey(KeyCode.D))
    {
      playerTrans.Rotate(0, ro_speed * Time.deltaTime, 0);
    }
  }
}

Danke für alle Antworten

Computer, programmieren, Unity, Spiele und Gaming
Figur bewegt sich nicht aber Kamera (Unity)?

Hallo zsm.

Ich habe folgendes Problem.

Ich bin gerade dabei eine Figur das Laufen beizubringen in Unity. Das Laufen Funktioniert aber das Bewegen/ herumschauen mit der Kamera funktioniert noch nicht ganz.

Wenn ich die Maus bewege sie sich die Kamer Ultra komisch aus und ich finde einfach das Problem nicht.

Die Anleitung habe ich von einem YouTube Video -> Unity Third-Person-Shooter Tutorial [Deutsch] #007 :: Kamera-Steuerung

Script ist das da hier.

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Laufen2 : MonoBehaviour

{

  public CharacterController cc;

  public GameObject player;

  public GameObject cam;

  public float speed;

  public float normalspeed;

  public float highspeed;

  public float gravity;

  private float MouseX;

  private float MouseY;

  private Vector3 movedir;

  void Start()

  {

    cc = GetComponent<CharacterController>();

  }

  // Update is called once per frame

  void Update()

  {

    MouseX = Input.GetAxis("Mouse X");

    MouseY = Input.GetAxis("Mouse Y");

    speed = normalspeed;

    if(cc.isGrounded)

    {

      movedir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

      movedir *= speed;

    }

    cam.transform.Rotate(0, 0, -MouseY * 3);

    player.transform.Rotate(0, MouseX * 3, 0);

    movedir.y -= gravity * Time.deltaTime;

    cc.Move(movedir * Time.deltaTime);

  }

}

Schönen Tag noch

Bild zum Beitrag
programmieren, Unity

Meistgelesene Beiträge zum Thema Unity