Ошибка в работе с EditorUtility в Unity

88
05 декабря 2020, 05:10

Создал скрипт, который пользуется библиотекой UnityEditor и в нем используется класс EditorUtility, для вызова проводника, чтобы выдать путь к файлу. В самом Unity удается удачно протестировать программу, однако при сборке выдает ошибку: Assets\CreatePack.cs(242,23): error CS0234: The type or namespace name 'EditorUtility' does not exist in the namespace 'UnityEditor' (are you missing an assembly reference?) Не понимаю где именно я не указал ссылку, учитывая, что на тесте все работает.

Если нужно. прилагаю вырезку самого кода:

string path = UnityEditor.EditorUtility.OpenFilePanel("Open picture", "", "png,jpg");
BinaryQimage = File.ReadAllBytes(path);
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(BinaryQimage);
Qimage.texture = texture;

(Все try-catch убрал, чтобы не загромождать)

Спасибо.

Answer 1

Пространство имен UnityEditor доступно только в редакторе. Соответственно, при компиляции это работать не будет.

Используйте

#if UNITY_EDITOR
using UnityEditor;
#endif
<...>
#if UNITY_EDITOR
string path = UnityEditor.EditorUtility.OpenFilePanel("Open picture", "", "png,jpg");
BinaryQimage = File.ReadAllBytes(path);
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(BinaryQimage);
Qimage.texture = texture;
#endif

Но помните, что вне редактора Вам нужно будет открывать проводник другим образом.

READ ALSO
C# передача делегата в качестве параметра метода

C# передача делегата в качестве параметра метода

Ошибка CS1061 "T" не содержит определения "CompareTo", и не удалось найти доступный метод расширения "CompareTo", принимающий тип "T" в качестве первого...

121
Чтение данных с NetworkStream C#

Чтение данных с NetworkStream C#

Пишу редактор кода на Windows Forms с возможностью следить за процессом написания с других компьютеровКогда клиент(писатель) пишет, каждое изменение...

126
Ошибка подключения базы Битрик (bitrix)

Ошибка подключения базы Битрик (bitrix)

Разворачиваю бекап сайта на локалке (опен сервер), в фале settingsphp и dbconn

115
Как заменить текст между точками?

Как заменить текст между точками?

Делаю вывод даты с текстовым месяцемОт даты отнимается несколько дней

117