Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Скрипт выдает ошибки CS0103

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
 в скрипте должно быть стандартное управление CharacterController вперед/назад/влево/вправо/ 
задумка такова что голова(меш) персонажа должна крутиться вслед за камерой только по оси Y, а всё остальное тело вращаться вслед за камерой только по оси X, при этом голова должна иметь какие не какие ограничения по вращению. 
задумка не плохая но в скриптах буквально неделю, воплощение даётся с трудом, а найти ребят которые в один проект (на ютубе и различных форумах) сделают сразу всё что мне нужно, невозможно

текст ошибок:
Assets\AllScript\Player\PlayerController.cs(42,9): error CS0103: The name 'rotationX' does not exist in the current context

Assets\AllScript\Player\PlayerController.cs(43,9): error CS0103: The name 'rotationX' does not exist in the current context

Assets\AllScript\Player\PlayerController.cs(43,33): error CS0103: The name 'rotationX' does not exist in the current context

Assets\AllScript\Player\PlayerController.cs(45,52): error CS0103: The name 'rotationX' does not exist in the current context




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

public class PlayerController : MonoBehaviour
{
    public enum RotationAxes {
        MouseXAndY = 0,
        MouseX = 1,
        MouseY = 2
    }

    public RotationAxes axes = RotationAxes.MouseXAndY;

    public float sensitivity = 2.0f;

    private float _rotationX = 0;

    public float moveSpeed = 20f;
    public GameObject bulletPrefab;
    public Transform firePoint;

    public float speed = 5.0f; // Скорость движения
    public float rotationSpeed = 3.0f; // Скорость поворота

    private bool isGamePaused = false;

    void Start()
    {
        Cursor.visible = false; // Скрываем курсор при начале игры
        Cursor.lockState = CursorLockMode.Locked; // Блокируем курсор внутри игрового окна
        Rigidbody body = GetComponent<Rigidbody>();
        if (body != null)
        body.freezeRotation = true;
    }

    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X") * sensitivity;
        float mouseY = Input.GetAxis("Mouse Y") * sensitivity;

        rotationX -= mouseY;
        rotationX = Mathf.Clamp(rotationX, -90, 90); // Ограничиваем угол вращения

        transform.localRotation = Quaternion.Euler(rotationX, 0, 0); // Вращаем голову по вертикали
        transform.parent.Rotate(Vector3.up * mouseX); // Вращаем тело по горизонтали
        
        // Стрельба
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (isGamePaused)
            {
                ResumeGame();
            }
            else
            {
                PauseGame();
            }

            if(isGamePaused && Input.GetMouseButtonDown(0)) // Проверяем, было ли нажатие кнопки мыши
            {
                Cursor.lockState = CursorLockMode.Locked; // Блокируем курсор внутри игрового окна
            }
        }
    }

    

    void Shoot()
    {
        Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        // Добавьте звук выстрела или эффект взрыва
    }

    void PauseGame()
    {
        Cursor.visible = true; // Показываем курсор при паузе
        Cursor.lockState = CursorLockMode.None; // Разблокируем курсор, чтобы он мог покинуть игровое окно
        Time.timeScale = 0f; // Останавливаем время
        isGamePaused = true;
    }

    void ResumeGame()
    {
        Cursor.visible = false; // Скрываем курсор при продолжении игры
        Cursor.lockState = CursorLockMode.Locked; // Блокируем курсор внутри игрового окна
        Time.timeScale = 1f; // Возобновляем время
        isGamePaused = false;
    }
} 
По дате
По рейтингу
Аватар пользователя
Знаток

Ошибки CS0103 указывают на то, что имя “rotationX” не существует в текущем контексте. Вам необходимо проверить правильность написания имени переменной и ее наличие в коде.

Также, проверьте, правильно ли вы используете переменные в коде. Убедитесь, что вы не пытаетесь использовать переменные, которые не были объявлены или инициализированы.

Аватар пользователя
Знаток
11мес

Поставьте вместо "rotationX" "_rotationX"

Аватар пользователя
Искусственный Интеллект

C# это не пистон, если чо... и это не скрипт