2015-11-14 2 views
1

Редакция: Я хочу изменить controller.html на, пусть говорит myNewController.html, когда я переключаюсь на другой файл scene.unity.Есть ли способ переключить HTML-контроллер на объект Airconsole?

Пример: У меня есть 2 мини-игры в том же проекте. Я играю в GAME_1 с контроллером.html, и я выполнил цель для GAME_1, и он переключает меня на GAME_2, что потребует от меня использовать другой макет контроллера, следовательно myNewController.html.

То, что я знаю: Когда сцена переключается, он немедленно бросает объект Aircomsole GAME_1 в GAME_2 и продолжает использовать файл controller.html GAME_1.

Отрывки Код: Этот сценарий прилагается к объекту AirConsole, который я создал

общественного класса What_Level: MonoBehaviour { AirConsole консоль;

// Use this for initialization 
void Start() { 
    console = GetComponent<AirConsole>(); 

} 

// Update is called once per frame 
void Update() { 
    whatScene (Application.loadedLevel); 
} 

void whatScene(int levelNumber){ 
    if (levelNumber == 1) { 
     Debug.Log ("Were in the GAME_1); 
     //use some code to change the HTML file for GAME_1 
    } else if (levelNumber == 2) { 
     Debug.Log("We're in GAME_2"); 
     //use some code to change the HTML file for GAME_2 
    } 
} 

}

Единственная функция, переменная "консоль", что имеет смысл это console.controllerHtml. Описание, которое оно дает в «public Object controllerHtml»

Любые советы или подсказки будут очень признательны и/или ссылка на параметры, которые у меня есть для использования на переменной «консоли» AirConsole.

Спасибо!

ответ

0

Относительно изменения расположения контроллера. Вместо изменения файла просто измените отображаемое содержимое в контроллере.html

E.g. вы можете создать элемент контейнера для каждого геймпада, который вы хотите показать. Затем передайте сообщение всем контроллерам, когда они должны изменить видимость контейнеров.

Например, в вашем controller.html:

<div id="gamepad-1">Controller 1 stuff here ...</div> 
<div id="gamepad-2">Controller 2 stuff here ...</div> 

В JavaScript (также controller.html)

var container_1 = document.getElementById('gamepad-1'); 
var container_2 = document.getElementById('gamepad-2'); 
// Show or hide containers like (general function would be better :) 
container_2.style.display = 'none'; 
container_1.style.display = 'block'; 

Теперь вам просто нужно, чтобы ваши контроллеры знать, когда, чтобы показать/скрыть какой контейнер , Вы можете сделать это, прослушивая события onDeviceStateChange.

+0

Я все еще довольно новичок в Airconsole, поэтому благодарим за проницательный ответ. Я понимаю до последней своей части: Теперь вам нужно только сообщить своим контроллерам, когда показывать/скрывать какой контейнер. Вы можете сделать это с помощью onMessage или прослушивания событий onDeviceStateChange Вы имеете в виду onMessage в файле controller.html или логическом c-sharp файле, таком как игра в понг (https://github.com/AirConsole/airconsole- единство-плагин/блоб/ведущий/активы/AirConsole/примеры/теннис/ExamplePongLogic.cs). Не могу ли я сделать, пусть говорит кнопка запуска, переключить это? или это вызовет проблемы? – yeungninja

+0

Ну в основном оба. Ваша игра (код единства) должна сообщить контроллеру, когда отображать, какой контейнер-div. Это означает, что вы можете, например, использовать .setCustomDeviceState ({container: "gamepad-1"}) в единстве, а затем в вашем контроллере прослушать с onDeviceStateChange() и проверить пользовательские данные. Я в настоящее время строю s.t. для обработки просмотров (пока еще не выполнено 100%): github.com/AirConsole/airconsole-view-manager, но, возможно, это поможет вам, если вы посмотрите на код :) – Zeus

+0

Спасибо! Я обязательно изучу его, чтобы полностью понять, что происходит между сообщением Unity и controller.html. Посмотрим, как я это сделаю через несколько дней :) – yeungninja

Смежные вопросы