![](images/chestnut/misc/left.gif) |
2D/GUI Вопросы на тему 2D графики и интерфейсов |
12.08.2010, 13:49
|
#1
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Проблема с GUI
По примеру в User Manual создаю скрипт, пишу там
function OnGUI () {
GUI.Box (Rect (0,0,100,50), "Top-left");
GUI.Box (Rect (Screen.width - 100,0,100,50), "Top-right");
GUI.Box (Rect (0,Screen.height - 50,100,50), "Bottom-right");
GUI.Box (Rect (Screen.width - 100,Screen.height - 50,100,50), "Bottom-left");
}
Запускаю, ругается, говорит
Assets/Scripts/GUI.js(2,13): BCE0019: 'Box' is not a member of 'GUI'.
|
И так ругается на все элементы.
В чем проблема?
|
(Offline)
|
|
12.08.2010, 13:53
|
#2
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с GUI
У меня всё работает.
Возможно ты скрипт както неправильно повесил.
А у тебя в скрипте ничего больше нету?
--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js
|
(Offline)
|
|
12.08.2010, 13:54
|
#3
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Проблема с GUI
В скрипте больше ничего нету, создал пустой обьект, повесил на него.
Ругается даже когда убираю обьект со скриптом.
А еще почему-то постоянно внизу в статусе висит
Loading script assembly "Library/ScriptAssemblies/Assembly - UnityScript.dll" failed!
|
|
(Offline)
|
|
12.08.2010, 13:59
|
#4
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Проблема с GUI
Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.
|
(Offline)
|
|
12.08.2010, 13:59
|
#5
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с GUI
Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.
|
--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js
|
невнимательность
|
(Offline)
|
|
12.08.2010, 14:02
|
#6
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Проблема с GUI
Откуда же я знал, что нельзя так файл называть?
Ты это позже добавил, вот я и не заметил.
|
(Offline)
|
|
12.08.2010, 14:04
|
#7
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Проблема с GUI
Нужно скрипты называть не абы как, а с особой системой. Я, например, все скрипты называю scr_+общее назначение, очень удобно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.08.2010, 14:07
|
#8
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с GUI
А получилось это потому что JS в юнити использует клас как его назвали. В твоём случае скрипт пытался создать клас "GUI", но такой клас уже есть. Вот и выскакивали ошибки.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо den за это полезное сообщение:
|
|
12.08.2010, 14:08
|
#9
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Проблема с GUI
Буду знать ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
12.08.2010, 14:14
|
#10
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Проблема с GUI
Чтобы не создавать новую тему из-за пустяка, спрошу тут: какая команда выхода из игры? Чтобы вставить сюда:
if (GUI.Button (Rect (20,200,80,20), "Exit")) {
}
|
(Offline)
|
|
12.08.2010, 14:23
|
#11
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Проблема с GUI
Application.Quit();
В официальном платформер-туториале это рассматривается.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2010, 04:40
|
#12
|
AnyKey`щик
Регистрация: 06.12.2010
Сообщений: 3
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Проблема с GUI
Подскажите как при загрузке уровня отобразить прогресс загрузки? Если можно по подробнее. Заранее Спс!
|
(Offline)
|
|
27.12.2010, 05:38
|
#13
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблема с GUI
Сообщение от hitner
Подскажите как при загрузке уровня отобразить прогресс загрузки? Если можно по подробнее. Заранее Спс!
|
Загружать уровень надо асинхронно (Pro версия Unity)
http://unity3d.com/support/documenta...evelAsync.html
Прогресс отрисовывать можно как угодно, используя поле progress следующего класса:
http://unity3d.com/support/documenta...Operation.html
|
(Offline)
|
|
27.12.2010, 13:03
|
#14
|
AnyKey`щик
Регистрация: 06.12.2010
Сообщений: 3
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Проблема с GUI
Сообщение от pax
Прогресс отрисовывать можно как угодно, используя поле progress следующего класса:
|
А можно на примере показать (для чайника) ![:dontknow:](images/smilies/dontknow.gif)
|
(Offline)
|
|
27.12.2010, 14:20
|
#15
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблема с GUI
Комментировать не буду:
using UnityEngine;
public class LevelLoadScreen : MonoBehaviour { public Texture2D background; public string levelNameToLoad; private AsyncOperation _loadingProgress; private bool _readeyToDestroy = false;
public void Start() { DontDestroyOnLoad(gameObject); _loadingProgress = Application.LoadLevelAsync(levelNameToLoad); }
public void Update() { if (_readeyToDestroy) { Destroy(gameObject); } }
public void OnGUI() { if (background) { GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), background, ScaleMode.StretchToFill); } GUI.Box(new Rect(10, Screen.height / 2 - 20, (Screen.width - 20) * _loadingProgress.progress, 40), "");
if (_loadingProgress.isDone) { if(GUI.Button(new Rect(Screen.width/2 - 100, Screen.height / 2 - 10, 200, 20), "Continue")) { _readeyToDestroy = true; } } }
}
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:55.
|