Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > 2D/GUI

2D/GUI Вопросы на тему 2D графики и интерфейсов

Ответ
 
Опции темы
Старый 12.08.2010, 13:49   #1
Andvrok
Бывалый
 
Регистрация: 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
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Проблема с GUI

У меня всё работает.
Возможно ты скрипт както неправильно повесил.
А у тебя в скрипте ничего больше нету?
--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 13:54   #3
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Проблема с GUI

В скрипте больше ничего нету, создал пустой обьект, повесил на него.
Ругается даже когда убираю обьект со скриптом.
А еще почему-то постоянно внизу в статусе висит
Loading script assembly "Library/ScriptAssemblies/Assembly - UnityScript.dll" failed!
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 13:59   #4
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Проблема с GUI

Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 13:59   #5
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Проблема с GUI

Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.
--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js
невнимательность
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 14:02   #6
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Проблема с GUI

Откуда же я знал, что нельзя так файл называть?

невнимательность
Ты это позже добавил, вот я и не заметил.
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 14:04   #7
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Проблема с GUI

Нужно скрипты называть не абы как, а с особой системой. Я, например, все скрипты называю scr_+общее назначение, очень удобно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (12.08.2010)
Старый 12.08.2010, 14:07   #8
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Проблема с GUI

А получилось это потому что JS в юнити использует клас как его назвали. В твоём случае скрипт пытался создать клас "GUI", но такой клас уже есть. Вот и выскакивали ошибки.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо den за это полезное сообщение:
Andvrok (12.08.2010), Nex (12.08.2010)
Старый 12.08.2010, 14:08   #9
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Проблема с GUI

Буду знать
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 14:14   #10
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Проблема с GUI

Чтобы не создавать новую тему из-за пустяка, спрошу тут: какая команда выхода из игры? Чтобы вставить сюда:
	if (GUI.Button (Rect (20,200,80,20), "Exit")) {
	}
(Offline)
 
Ответить с цитированием
Старый 12.08.2010, 14:23   #11
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Проблема с GUI

Application.Quit();
В официальном платформер-туториале это рассматривается.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (12.08.2010)
Старый 27.12.2010, 04:40   #12
hitner
AnyKey`щик
 
Аватар для hitner
 
Регистрация: 06.12.2010
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Сообщение Ответ: Проблема с GUI

Подскажите как при загрузке уровня отобразить прогресс загрузки? Если можно по подробнее. Заранее Спс!
(Offline)
 
Ответить с цитированием
Старый 27.12.2010, 05:38   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.12.2010, 13:03   #14
hitner
AnyKey`щик
 
Аватар для hitner
 
Регистрация: 06.12.2010
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Сообщение Ответ: Проблема с GUI

Сообщение от pax Посмотреть сообщение
Прогресс отрисовывать можно как угодно, используя поле progress следующего класса:
А можно на примере показать (для чайника)
(Offline)
 
Ответить с цитированием
Старый 27.12.2010, 14:20   #15
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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(00Screen.widthScreen.height), backgroundScaleMode.StretchToFill);
        }
        
GUI.Box(new Rect(10Screen.height 20, (Screen.width 20) * _loadingProgress.progress40), "");

        if (
_loadingProgress.isDone)
        {
            if(
GUI.Button(new Rect(Screen.width/100Screen.height 1020020), "Continue"))
            {
                
_readeyToDestroy true;
            }
        }
    }


__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
hitner (27.12.2010), Sef (27.12.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 09:22.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com