forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D/GUI (http://forum.boolean.name/forumdisplay.php?f=167)
-   -   Проблема с GUI (http://forum.boolean.name/showthread.php?t=13121)

Andvrok 12.08.2010 13:49

Проблема с 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'.
И так ругается на все элементы.

В чем проблема?

den 12.08.2010 13:53

Ответ: Проблема с GUI
 
У меня всё работает.
Возможно ты скрипт както неправильно повесил.
А у тебя в скрипте ничего больше нету?
--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js

Andvrok 12.08.2010 13:54

Ответ: Проблема с GUI
 
В скрипте больше ничего нету, создал пустой обьект, повесил на него.
Ругается даже когда убираю обьект со скриптом.
А еще почему-то постоянно внизу в статусе висит
Цитата:

Loading script assembly "Library/ScriptAssemblies/Assembly - UnityScript.dll" failed!

Andvrok 12.08.2010 13:59

Ответ: Проблема с GUI
 
Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.

den 12.08.2010 13:59

Ответ: Проблема с GUI
 
Цитата:

Я идиот. Файл этого скрипта я назвал GUI, вот оно и ругается. Переименовал скрипт всё работает.
Цитата:

--------
Попробуй переименовать скрипт.
GUI.js -> Bla.js
невнимательность

Andvrok 12.08.2010 14:02

Ответ: Проблема с GUI
 
Откуда же я знал, что нельзя так файл называть?

Цитата:

невнимательность
Ты это позже добавил, вот я и не заметил.

Nuprahtor 12.08.2010 14:04

Ответ: Проблема с GUI
 
Нужно скрипты называть не абы как, а с особой системой. Я, например, все скрипты называю scr_+общее назначение, очень удобно.

den 12.08.2010 14:07

Ответ: Проблема с GUI
 
А получилось это потому что JS в юнити использует клас как его назвали. В твоём случае скрипт пытался создать клас "GUI", но такой клас уже есть. Вот и выскакивали ошибки.

Andvrok 12.08.2010 14:08

Ответ: Проблема с GUI
 
Буду знать :)

Andvrok 12.08.2010 14:14

Ответ: Проблема с GUI
 
Чтобы не создавать новую тему из-за пустяка, спрошу тут: какая команда выхода из игры? Чтобы вставить сюда:
Код:

        if (GUI.Button (Rect (20,200,80,20), "Exit")) {
        }


Nuprahtor 12.08.2010 14:23

Ответ: Проблема с GUI
 
Application.Quit();
В официальном платформер-туториале это рассматривается.

hitner 27.12.2010 04:40

Ответ: Проблема с GUI
 
Подскажите как при загрузке уровня отобразить прогресс загрузки? Если можно по подробнее. Заранее Спс!

pax 27.12.2010 05:38

Ответ: Проблема с GUI
 
Цитата:

Сообщение от hitner (Сообщение 173259)
Подскажите как при загрузке уровня отобразить прогресс загрузки? Если можно по подробнее. Заранее Спс!

Загружать уровень надо асинхронно (Pro версия Unity)
http://unity3d.com/support/documenta...evelAsync.html
Прогресс отрисовывать можно как угодно, используя поле progress следующего класса:
http://unity3d.com/support/documenta...Operation.html

hitner 27.12.2010 13:03

Ответ: Проблема с GUI
 
Цитата:

Сообщение от pax (Сообщение 173260)
Прогресс отрисовывать можно как угодно, используя поле progress следующего класса:

А можно на примере показать (для чайника) :dontknow:

pax 27.12.2010 14:20

Ответ: Проблема с GUI
 
Комментировать не буду:
PHP код:

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;
            }
        }
    }





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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot