Почему персонаж летает

Общие вопросы о Unity3D

Почему персонаж летает

Сообщение TinyColonel 20 янв 2020, 21:23

Пробовал менять Y в программе на минусовой, но после этого он очень быстро перемещался туда куда показываю мышкой
Код передвижения
[unity 3D]
Синтаксис:
Используется csharp
public class PlayerMovement : MonoBehaviour
{
    public CharacterController cc;
    Vector3 movement;
    public float speed = 5.0f;
    private float X;
    private float Z;
    void Start()
    {
        cc = GetComponent<CharacterController>();
    }

    void Update()
    {
        X = Input.GetAxis("Horizontal") * speed;
        Z = Input.GetAxis("Vertical") * speed;
        movement = new Vector3(X, 0, Z);
        movement = Vector3.ClampMagnitude(movement, speed);
        movement *= Time.deltaTime;
        movement = transform.TransformDirection(movement);
        cc.Move(movement);
       
    }
}
 


Код поворота камеры

Синтаксис:
Используется csharp
public class PlayerRotation : MonoBehaviour
{
    public enum RotationAxes
    {
        MouseXAndY = 0,
        MouseX = 1,
        MouseY = 2
    }
    public Rigidbody rb;
    public RotationAxes axes = RotationAxes.MouseXAndY;
    public float sensitivity = 9.0f;
    public float minimumVert = -45.0f;
    public float maximumVert = 45.0f;
    private float _rotationX = 0;
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        if (rb != null)
            rb.freezeRotation = true;
    }
    void Update()
    {
       
        {
            _rotationX -= Input.GetAxis("Mouse Y") * sensitivity;
            _rotationX = Mathf.Clamp(_rotationX, minimumVert, maximumVert);
            float delta = Input.GetAxis("Mouse X") * sensitivity;
            float rotationY = transform.localEulerAngles.y + delta;
            transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);
        }
    }
}
 
TinyColonel
UNец
 
Сообщения: 3
Зарегистрирован: 20 янв 2020, 21:16

Re: Почему персонаж летает

Сообщение 1max1 20 янв 2020, 21:42

Так не работает что-ли? movement = new Vector3(X, -9.8f, Z);
В идеале там надо ускорение придавать конечно, но это чисто для проверки.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Почему персонаж летает

Сообщение TinyColonel 23 янв 2020, 19:18

Когда двигаю камерой двигается и сам персонаж и из-за этого гравитация действует неправильно
TinyColonel
UNец
 
Сообщения: 3
Зарегистрирован: 20 янв 2020, 21:16

Re: Почему персонаж летает

Сообщение 1max1 23 янв 2020, 19:38

Ну а зачем ты его всунул в дочернии к камере.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Почему персонаж летает

Сообщение TinyColonel 23 янв 2020, 21:35

Камера это дочерний к персонажу
TinyColonel
UNец
 
Сообщения: 3
Зарегистрирован: 20 янв 2020, 21:16


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 10