forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Загрузка сцены. (http://forum.boolean.name/showthread.php?t=15772)

Nazgul 04.11.2011 22:26

Загрузка сцены.
 
Я хочу загрузить сцену с использованием экрана загрузки. Для этого использую функцию Application.LoadLevelAsync. Как сделать так, чтобы сцена после завершения загрузки показывалась не сразу а при нажатии на левую кнопку мыши?

pax 04.11.2011 22:29

Ответ: Загрузка сцены.
 
Напиши скрипт для новой сцены, которая загружается, который закрывает сцену с помощью GUI например. Потом просто перестает рисовать GUI при нажатии на кнопку.

Nazgul 05.11.2011 10:02

Ответ: Загрузка сцены.
 
Мне приходил в голову такой способ. Я просто думал, что есть какой-нибудь стандартный метод.

pax 05.11.2011 10:38

Ответ: Загрузка сцены.
 
Других методов нет для данной задачи.
Скрипт который отображает загрузку может перейти из одной сцены в другую. и После загрузки отобразить "Нажмите для продолжения". Для этого надо сделать DontDestroyOnLoad(gameObject)

Nazgul 05.11.2011 11:46

Ответ: Загрузка сцены.
 
Ага, понятно. Спасибо!

Duskly 11.12.2011 22:21

Ответ: Загрузка сцены.
 
а можно написать подробней? :''((

pax 11.12.2011 23:13

Ответ: Загрузка сцены.
 
Как-то так:


PHP код:

public class LevelLoaderScreen MonoBehaviour
{
    public 
string levelName;
    public 
Texture2D loadingScreenTexture;

    private 
AsyncOperation _loadingProgress;

    public 
void Start()
    {
        
DontDestroyOnLoad(gameObject);
        
DontDestroyOnLoad(loadingScreenTexture);
        
_loadingProgress Application.LoadLevelAsync(levelName);
    }

    public 
void OnGUI()
    {
        var 
screenRect = new Rect(00Screen.widthScreen.height);
        
GUI.DrawTexture(screenRectloadingScreenTexture);

        if(!
_loadingProgress.isDone)
        {
            var 
labelStyle = new GUIStyle(GUI.skin.label);
            
labelStyle.alignment TextAnchor.MiddleCenter;

            
GUI.Label(screenRect"Lading: "+(_loadingProgress.progress 100).ToString("000"));
        }
        else
        {
            var 
buttonRect = new Rect(Screen.width/80Screen.height/3016060);
            if(
GUI.Button(buttonRect,"Press to continue"))
            {
                
Destroy(loadingScreenTexture);
                
Destroy(gameObject);
            }
        }
    }





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

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