Почему Unity отказывается добавлять данный скин к объекту? Пишет ошибку "Cant add script."
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookMouse : MonoBehaviour
{
public enum RorationAxes
{
XandY,
X,
Y
}
public RorationAxes _axes = RorationAxes.XandY;
public float _rorationSpeedHor = 5.0f;
private void Update()
{
//Проверим ось движения
if (_axes == RorationAxes.XandY)
{
}
else if(_axes == RorationAxes.X)
{
transform.Rotate(0, _rorationSpeedHor, 0);
}
else if(_axes == RorationAxes.Y)
{
}
}
}
Ошибка "Can't add script" в Unity чаще всего означает, что Unity не может прикрепить скрипт к объекту, потому что внутри кода есть ошибка, из-за которой компилятор не может правильно собрать класс.
Вот что может быть не так в твоём коде:
🔴 1.
Опечатка в названии RorationAxes
Ты написал RorationAxes, но, скорее всего, хотел написать RotationAxes.
Это не критично, но может быть путаница, если в других местах ты пишешь правильно, а тут нет.
🔴 2.
Скрипт не совпадает с именем файла
Если файл называется, например, LookMouse.cs, то класс обязан называться точно так же:
public class LookMouse : MonoBehaviour
✅ Ты это сделал правильно — молодец.
НО! Проверь, что:
в проекте нет другого класса с тем же именем (в другом .cs файле),
нет синтаксических ошибок в других скриптах — это тоже может вызвать Can't add script.
🔴 3.
Поля не сериализуются или тип не поддерживается
В твоём случае это не так. Все поля нормальные (enum, float), так что причина не в этом.
🔴 4.
Класс LookMouse не public?
Нет, он у тебя public — всё хорошо.
✅ Что делать:
Проверь консоль Unity (Ctrl + Shift + C) — там должна быть реальная ошибка компиляции, из-за которой скрипт не добавляется.
Переименуй RorationAxes → RotationAxes, чтобы не путаться.
Если другие скрипты тоже есть — временно закомментируй всё и проверь только этот.
Перекомпилируй проект (Unity делает это сам, но можно помочь: Assets > Reimport All).
💡 Советы
Если хочешь протестировать добавление — можно упростить:
using UnityEngine;
public class LookMouse : MonoBehaviour
{
void Update()
{
transform.Rotate(0, 1, 0);
}
}
Если этот скрипт добавляется — значит проблема в предыдущей версии (либо в enum, либо в ошибках где-то ещё).
Хочешь — можешь скинуть скриншот ошибок в консоли Unity, я точно скажу, в чём проблема.