Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

abso1ute talant)) Ученик (118), на голосовании 7 месяцев назад
 в скрипте должно быть стандартное управление 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();
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;
}
}
Голосование за лучший ответ
Art Man Знаток (385) 9 месяцев назад
Ошибки CS0103 указывают на то, что имя “rotationX” не существует в текущем контексте. Вам необходимо проверить правильность написания имени переменной и ее наличие в коде.

Также, проверьте, правильно ли вы используете переменные в коде. Убедитесь, что вы не пытаетесь использовать переменные, которые не были объявлены или инициализированы.
/bin/laden Искусственный Интеллект (110817) 9 месяцев назад
C# это не пистон, если чо... и это не скрипт
abso1ute talant))Ученик (118) 9 месяцев назад
что ты имеешь ввиду
/bin/laden Искусственный Интеллект (110817) abso1ute talant)), я имею ввиду вот это: _rotationX
abso1ute talant))Ученик (118) 9 месяцев назад
я написал что в скриптах неделю и как я должен понять что не так в "этом"
/bin/laden Искусственный Интеллект (110817) abso1ute talant)), зачем там _?
abso1ute talant))Ученик (118) 9 месяцев назад
честно без понятия, но ошибки те что были ушли, на замену пришла эта:
NullReferenceException: Object reference not set to an instance of an object
PlayerController.Update () (at Assets/AllScript/Player/PlayerController.cs:46)
/bin/laden Искусственный Интеллект (110817) abso1ute talant)), transform.parent видимо не определен
Olgaeztka Знаток (343) 2 месяца назад
Поставьте вместо "rotationX" "_rotationX"
Похожие вопросы