Как исправить ошибку компиляции в юнити

Compiler errors can be a roadblock to your game development process. It can seem like a daunting task to fix them, especially in Unity – a game development engine popular with both beginners and seasoned game developers. Fortunately, there are some simple steps that can help you identify and fix compiler errors in Unity. Let’s take a look.

Troubleshooting Compiler Errors

If you’ve just received a compiler error in Unity, the first step should be to troubleshoot the issue. Here are some tips you can follow to identify and fix the compiler errors:

  1. Check your script for any typos and errors in punctuation, syntax or spelling.
  2. Ensure your script is formatted correctly and includes all necessary closing braces, parenthesis, etc.
  3. Double-check that you’re using the correct namespace, class, method and property names.
  4. Verify that you’re using the correct version of the .NET framework.
  5. Check if there are any incompatibilities between different packages or libraries you’re trying to use.
  6. Try disabling any third-party scripts or assets you’re using.
  7. Try uninstalling and reinstalling the IDE or game engine.
  8. Check if you’re allowed to use the assets you’re trying to import.

FAQ

How Do I Fix Compiler Errors in Unity?

There are multiple steps you can take to identify and fix compiler errors in Unity. These include checking your script for typos and errors, ensuring your script is formatted correctly, verifying the correct version of the .NET framework is being used,checking if there are any incompatibilities between different packages or libraries you’re using, disabling any third-party scripts or assets, uninstalling and reinstalling the IDE or game engine and checking if you’re allowed to use the assets you’re trying to import.

What Are Compilation Errors?

Compilation errors are errors that occur when code is trying to be compiled. They’re also referred to as compiler errors. It’s important to investigate the cause of compiler errors before attempting to fix them, as the cause may be due to typos, punctuation or formatting errors, incompatibilities between packages, or other issues.

What Is the .NET Framework?

The .NET framework is a platform developed by Microsoft to allow developers to create applications using multiple languages, libraries and tools. It provides a runtime environment that enables developers to write code and build applications without having to worry about the underlying infrastructure. It also offers both type-safety and memory-management features that simplify code writing and allow developers to focus on the logic of their applications.

What Is a Namespace in C#?

A namespace is a way to logically group related classes and functionalities in C#. It is a container that provides a way to avoid class conflicts and organize code. Namespaces are usually composed of a hierarchical structure and can contain other namespaces, classes, and other data types.

What is Syntax?

Syntax is the set of rules that specify how a programming language is written and structured. It defines how words, symbols and commands are combined to create a program. Examples of syntax rules include the use of case sensitivity, parentheses, braces, and semicolons, among others.

Conclusion

Compiler errors in Unity can be a roadblock to your game development process, but with some troubleshooting steps, you can identify and fix them quickly. By double-checking your script for typos, ensuring the correct version of the .NET framework is used, and disabling any third-party scripts or assets, you can efficiently identify and resolve the compiler errors in Unity.

https://support.unity.com/hc/en-us/articles/205637689-Why-do-I-get-a-All-compiler-errors-have-to-be-fixed-before-you-can-enter-playmode-error-

If you ever stumble upon error messages and don’t understand their description, try to look up their codes on the internet. For example https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1519 can give you some insights about your first error. The same goes for other stuff.

Regarding error CS1519: invalid token ‘;’ in class, record, struct or interface member declaration you can read in the documentation:

This error is generated whenever a token is encountered in a location where it does not belong. A token is a keyword; an identifier (the name of a class, struct, method, and so on); a string, character, or numeric literal value such as 108, “Hello”, or ‘A’; or an operator or punctuator such as == or ;.

In your case the token is ; and it doesn’t belong in here: private void OnDisable();

This semicolon is the issue, as it made your method bodyless (when it should have one), as well as your method call onFoot.Disable(); is now treated as if made just inside a class, not method, which is not valid.

In general, this error usually indicate typos of all kind.

error CS1022: Type or namespace definition, or end of file expected is just a consequence of formerly mentioned semicolon, that propagates further down the file.

As for error CS8124: Tuple must contain atleast two elements. I can’t see this error in the code I pasted to my project, maybe that’s an error in another file you didn’t paste here. But the message clearly indicates the reason: you are using a tuple, that contain less than 2 elements. Alternatively, it might be another typo, that made compiler think you are using a tuple.



Ученик

(82),
закрыт



6 лет назад

” />

Дополнен 6 лет назад

East RX

Просветленный

(24247)


6 лет назад

Это значит “все ошибки компилятора должны быть устранены прежде, чем ты сможешь войти в playmode”. Сами ошибки написаны внизу, видишь там красная строчка “Assets/CharacterControllerScript.cs(35, 40): error CS1061…” – вот это и есть сообщение об ошибке. Что в нём есть:
“Assets/CharacterControllerScript.cs” – файл, в котором ошибка
“(35, 40)” – место в файле (строка, номер символа) где эту ошибку искать
“error CS1061” – код ошибки
“Type ‘UnityEngine.Component’ does not contain a definition for ‘velocity'” – описание ошибки (тип UnityEngine.Component не содержит объявления для ‘velocity’)

Ошибки компилятора

Ошибки компилятора

Друзья, подскажите что сделать с ошибками? Хочу понять принцип, чтобы в дальнейшем самостоятельно разбираться.

Вылезло 7 ошибок (связано либо с First Person Controller, либо с Day and Night Controller – больше ничего не трогал в это время, скорее даже ближе к FPS контроллеру – его перекосило и сбились настройи input (стал как-то бочком ходить), ошибки такие:

Assets/Standard Assets/Effects/ImageEffects/EdgeDetectEffect.cs(7,33): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs(6,38): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs(5,32): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs(12,27): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs(5,32): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs(5,28): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?
Assets/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs(5,29): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?

они же на скрине:

http://prnt.sc/d10jbj

Откуда они взялись если в скрипты не лазил (локацией занимаюсь, модельки расставляю по террейну)?..

Спасибо за помощь.

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение samana 31 окт 2016, 07:34

Эти ошибки говорят о том, что в каком-то скрипте используется класс или пространство имён ImageEffectBase, но либо таких классов в вашем проекте нет, либо не прописан их “импорт” через using.

Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 11:09

То есть нужно прописать в соответствующих файлах… что?

Нашел пример тут:
using UnityStandardAssets.Characters.FirstPerson;

но ощущение, что в нашем случае по-другому

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение ewoera 31 окт 2016, 16:27

ImageEffectBase относится к эффектам камеры, который можно импортнуть через меню редактора
скорей всего ты баловался с эффектами для камеры, потом решил что оставить а что то удалить, и потер лишние
пере импортни эффекты для камеры, либо чисти все от этих эффектов

__immeasurability

skype elseway
youtube.com/user/immeasurability/videos

ewoera
UNец
 
Сообщения: 32
Зарегистрирован: 27 окт 2016, 13:55

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 19:10

Скрипт по адресу из первой ошибки выглядит так:

Используется csharp

using UnityEngine;

[ExecuteInEditMode]
[AddComponentMenu(“Image Effects/Edge Detection (Color)”)]
public class EdgeDetectEffect : ImageEffectBase
{
        public float threshold = 0.2F;

       
        // Called by camera to apply image effect
        void OnRenderImage (RenderTexture source, RenderTexture destination)
        {
                material.SetFloat (“_Treshold”, threshold * threshold);
                Graphics.Blit (source, destination, material);
        }
}

Строка ошибки: №7. Разве это не тот самый потерянный публичный класс там прописан?

В остальных скриптах присутствуют аналогичные записи, соответственно:

public class ColorCorrectionEffect : ImageEffectBase
public class GrayscaleEffect : ImageEffectBase
public class MotionBlur : ImageEffectBase
public class SepiaToneEffect : ImageEffectBase
public class TwirlEffect : ImageEffectBase
public class VortexEffect : ImageEffectBase

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение samana 31 окт 2016, 19:35

Проблема в том, что в вашем проекте видимо нет скрипта ImageEffectBase.

Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Ошибки компилятора

Сообщение ewoera 31 окт 2016, 19:41

ewoera писал(а):пере импортни эффекты для камеры, либо чисти все от этих эффектов

__immeasurability

skype elseway
youtube.com/user/immeasurability/videos

ewoera
UNец
 
Сообщения: 32
Зарегистрирован: 27 окт 2016, 13:55

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 19:49

samana писал(а):Проблема в том, что в вашем проекте видимо нет скрипта ImageEffectBase.

Как так? Все было ок и потом пропал? При том что я не трогал скрипты до того момента вообще.

Путем курения гугла добавил namespace, получилось так:

Используется csharp

namespace names {
public class EdgeDetectEffect : ImageEffectBase
{
        public float threshold = 0.2F;

       
        // Called by camera to apply image effect
        void OnRenderImage (RenderTexture source, RenderTexture destination)
        {
                material.SetFloat (“_Treshold”, threshold * threshold);
                Graphics.Blit (source, destination, material);
        }
}
}

Все ошибки с эффектами пропали, но появилась новая:

Assets/Standard Assets/Effects/ImageEffects/EdgeDetectEffect.cs(7,11): error CS1671: A namespace declaration cannot have modifiers or attributes

ewoera писал(а):

ewoera писал(а):пере импортни эффекты для камеры, либо чисти все от этих эффектов

Вот это больше похоже на правду, так как ошибки полезли именно после экспериментов с камерой FPS Controller… Я даже пытался из другого проекта из Стандартных Ассетов выдрать FPS Controller, не помогло… Надо видимо реально переимпортировать (вопрос – как и что именно?). Я всего неделю как серьезно увлекся Unity, так что не судите строго )

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение ewoera 31 окт 2016, 20:05

Assets->Import Package->Effects

__immeasurability

skype elseway
youtube.com/user/immeasurability/videos

ewoera
UNец
 
Сообщения: 32
Зарегистрирован: 27 окт 2016, 13:55

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 20:11

ewoera писал(а):Assets->Import Package->Effects

Сделал. Причем импорт не переписал файлы (не все, во всяком случае, файл с добавленным namespace так и остался с добавленным, и ошибка соответственно тоже). Убрал namespace из файла – вылезла опять ошибка:

Assets/Standard Assets/Effects/ImageEffects/EdgeDetectEffect.cs(9,33): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?

Радует, что сейчас она одна, 6 других пропали. Может надо через using добавить? Но как именно?

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение samana 31 окт 2016, 20:26

Peccator.es писал(а):Может надо через using добавить? Но как именно?

Подсмотреть в других скриптах, где прописан using для ImageEffectBase. Но почему вы не пользуетесь рефакторингом? Конечно я не знаю в какой программе вы пишите код, но если это MonoDevelop или VisualStudio, то ПКМ по слову, которое подчёркнуто или выделено как-то (там где указывается ошибка в классе) и выберите “рефакторинг” или подсказки будут какие-то.

Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 20:35

samana писал(а):

Peccator.es писал(а):Может надо через using добавить? Но как именно?

Подсмотреть в других скриптах, где прописан using для ImageEffectBase. Но почему вы не пользуетесь рефакторингом? Конечно я не знаю в какой программе вы пишите код, но если это MonoDevelop или VisualStudio, то ПКМ по слову, которое подчёркнуто или выделено как-то (там где указывается ошибка в классе) и выберите “рефакторинг” или подсказки будут какие-то.

Я до кода еще не добрался даже ) расставлял модельки + экспериментировал с камерой на фпс контроллере. Пытался подсмотреть как в других проектах эти скрипты оформлены (где не было проблем с игровым режимом), но они там аналогичны слово в слово…

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение Peccator.es 31 окт 2016, 21:27

Какая-то жесть жесткая, удалил папку Effects, импортнул через Ассеты, вылезло сразу 18 ошибок о несовпадении классов…

Вернул на место папку со старыми эффектами, ошибки пропали и осталась только предыдущая одна. Получается что эффекты сильно отличаются от стандартных, как так если я их не трогал (вот реально совсем ничего не менял в скриптах)

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение Peccator.es 01 ноя 2016, 13:48

Осталось исправить одну ошибку:

Assets/Standard Assets/Effects/ImageEffects/EdgeDetectEffect.cs(8,33): error CS0246: The type or namespace name `ImageEffectBase’ could not be found. Are you missing a using directive or an assembly reference?

В чем здесь проблема может быть?

Peccator.es
UNец
 
Сообщения: 25
Зарегистрирован: 22 окт 2016, 21:50

Re: Ошибки компилятора

Сообщение ewoera 02 ноя 2016, 16:34

сделай копию проекта
удали ВСЕ эффекты вообще
проверь чтоб не было ошибок
проверь какие эффекты тебе нужны действительно
импортирую весь пакет Assets->Import Package->Effects
поставь на нужную камеру нужные эффекты и радуйся

второй вариант если все еще будут ошибки по эффектам
создай новый проект
импортни Assets->Import Package->Effects
если в пустом проекте будут ошибки с нетронутым пакетом эффектов, значит проблема с в исходнике
закачай еще раз нужную версию юнити

ну не кто не может тебе помочь если ты говаришь что не чего не трогал и при этом у тебя все равно ошибки в стандартном пакете эффектов
либо скидывай проект с этими твоими ошибками, либо ковыряйся сам, не должно быть проблем на ровном месте

если что у меня не 14 сообщений на этом форуме, мой основной акк забанили на две недели

__immeasurability

skype elseway
youtube.com/user/immeasurability/videos

ewoera
UNец
 
Сообщения: 32
Зарегистрирован: 27 окт 2016, 13:55


Вернуться в Почемучка

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

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



Здравствуйте!

Столкнулся со следующей проблемой:

При запуске проекта в Unity все работает отлично (Игрок подбирает предметы, враги стреляют и т.д.).Однако при компиляции проекта (File-Build Settings-Build) все благополучно ломается (Игрок не подбирает предметы, враги не стреляют и т.д. Если кто-то сталкивался с подобной проблемой помогите, пожалуйста!

Заранее Спасибо!


  • Вопрос задан

    более года назад

  • 87 просмотров

Пригласить эксперта

Враги просто пацифистами стали.
з.ы. нам видимо гадать необходимо почему? Или как ты себе ответ вообще представляешь?

1) Собрать Development build, возможно напишет ошибку текстом, прямо в игре.

2) Собрать Development build с птицей Script Debugging, прицепить в дебаг режиме к Visual Studio, посмотреть на ошибку там.

6266386fed785603508917.jpeg


  • Показать ещё
    Загружается…

24 мая 2023, в 02:58

1500 руб./за проект

24 мая 2023, в 02:03

5000 руб./за проект

23 мая 2023, в 23:46

4000 руб./за проект

Минуточку внимания

Добавить комментарий