Страница 1 из 2

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

СообщениеДобавлено: 31 окт 2016, 01:36
Peccator.es
Друзья, подскажите что сделать с ошибками? Хочу понять принцип, чтобы в дальнейшем самостоятельно разбираться.

Вылезло 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

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

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

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

СообщениеДобавлено: 31 окт 2016, 07:34
samana
Эти ошибки говорят о том, что в каком-то скрипте используется класс или пространство имён ImageEffectBase, но либо таких классов в вашем проекте нет, либо не прописан их "импорт" через using.

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

СообщениеДобавлено: 31 окт 2016, 11:09
Peccator.es
То есть нужно прописать в соответствующих файлах... что?

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

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

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

СообщениеДобавлено: 31 окт 2016, 16:27
ewoera
ImageEffectBase относится к эффектам камеры, который можно импортнуть через меню редактора
скорей всего ты баловался с эффектами для камеры, потом решил что оставить а что то удалить, и потер лишние
пере импортни эффекты для камеры, либо чисти все от этих эффектов

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

СообщениеДобавлено: 31 окт 2016, 19:10
Peccator.es
Скрипт по адресу из первой ошибки выглядит так:

Синтаксис:
Используется 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

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

СообщениеДобавлено: 31 окт 2016, 19:35
samana
Проблема в том, что в вашем проекте видимо нет скрипта ImageEffectBase.

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

СообщениеДобавлено: 31 окт 2016, 19:41
ewoera
ewoera писал(а):пере импортни эффекты для камеры, либо чисти все от этих эффектов

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

СообщениеДобавлено: 31 окт 2016, 19:49
Peccator.es
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, так что не судите строго )

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

СообщениеДобавлено: 31 окт 2016, 20:05
ewoera
Assets->Import Package->Effects

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

СообщениеДобавлено: 31 окт 2016, 20:11
Peccator.es
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 добавить? Но как именно?

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

СообщениеДобавлено: 31 окт 2016, 20:26
samana
Peccator.es писал(а):Может надо через using добавить? Но как именно?

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

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

СообщениеДобавлено: 31 окт 2016, 20:35
Peccator.es
samana писал(а):
Peccator.es писал(а):Может надо через using добавить? Но как именно?

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


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

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

СообщениеДобавлено: 31 окт 2016, 21:27
Peccator.es
Какая-то жесть жесткая, удалил папку Effects, импортнул через Ассеты, вылезло сразу 18 ошибок о несовпадении классов...

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

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

СообщениеДобавлено: 01 ноя 2016, 13:48
Peccator.es
Осталось исправить одну ошибку:

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?


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

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

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

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

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

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