Unity – die neusten Beiträge

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

First person movement in Unity?

Ich habe schon von allen möglichen Tutorials abgeschrieben aber es geht trotzdem nicht

Beim Start dreht sich die Kamera komplett random in alle möglichen Richtungen selbst wenn ich meine Maus nicht bewege

das ist der Code von der MainCamera:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMovement : MonoBehaviour
{
    
    Vector3 rotation;
    public GameObject player;

    void Update()
    {

        transform.position = player.transform.position;
        transform.Translate(0, 0.5f, 0);

        rotation += Input.GetAxis("forwardBackwardRotate") * Vector3.right;
        rotation += Input.GetAxis("leftRightRotate") * Vector3.up;
        rotation *= 50 * Time.deltaTime;

        transform.Rotate(rotation);

    }

}

und das ist vom Player (falls es nötig ist) :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    
    public int speed;
    Vector3 movement;
    Vector3 rotation;
    CharacterController player;

    void Start()
    {
        
        player = GetComponent<CharacterController>();

    }

    void Update()
    {

        movement += transform.right * Input.GetAxis("leftRightMove");
        movement += transform.forward * Input.GetAxis("forwardBackwardMove");
        movement *= speed * Time.deltaTime;
        player.Move(movement);

        rotation = Input.GetAxis("leftRightRotate") * Vector3.up;
        rotation *= 50 * Time.deltaTime;
        transform.Rotate(rotation);

    }

}

hier ist das Video: https://drive.google.com/file/d/16LzqYkn3ojHhpp6Aw-cWdq_sCp9kUsfq/view?usp=sharing

C Sharp, Unity, Unity Engine

Meistgelesene Beiträge zum Thema Unity