有没有办法在 Airconsole 对象上切换 HTML 控制器?
Posted
技术标签:
【中文标题】有没有办法在 Airconsole 对象上切换 HTML 控制器?【英文标题】:Is there way to switch the HTML controller on the Airconsole object? 【发布时间】:2015-11-14 21:46:36 【问题描述】:问题: 当我切换到不同的 scene.unity 文件时,我想将 controller.html 更改为 myNewController.html。
示例: 我在同一个项目中有 2 个迷你游戏。我正在使用 controller.html 玩 GAME_1,我已经完成了 GAME_1 的目标,它会将我切换到 GAME_2,这将需要我使用不同的控制器布局,因此需要使用 myNewController.html。
我知道的: 当场景切换时,它立即将 GAME_1 的 Airconsole 对象扔到 GAME_2 中并继续使用 GAME_1 的 controller.html 文件。
代码片段: 此脚本附加了我创建的 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”是console.controllerHtml。它在“public Object controllerHtml”中给出的描述
任何提示或提示将不胜感激和/或我在 AirConsole 变量“console”上使用的选项的参考页面将不胜感激。
谢谢!
【问题讨论】:
【参考方案1】:关于更改控制器布局。不用更改文件,只需更改controller.html中显示的内容
例如您可以为要显示的每个游戏手柄制作一个容器元素。然后在所有控制器应该更改容器的可见性时向所有控制器广播消息。
例如在你的 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 事件来做到这一点。
【讨论】:
我对 Airconsole 还是很陌生,所以感谢您富有洞察力的回复。我了解您的最后一部分:现在您只需要让您的控制器知道何时显示/隐藏哪个容器。您可以通过 onMessage 或侦听 onDeviceStateChange 事件来执行此操作您是指 controller.html 文件中的 onMessage 还是乒乓球游戏中的逻辑 c-sharp 文件(github.com/AirConsole/airconsole-unity-plugin/blob/master/…)。我可以不做,让我们说开始按钮,切换这个吗?或者这会导致问题吗? 基本上两者都有。您的游戏(统一代码)需要告诉控制器何时显示哪个容器 div。这意味着您可以例如统一使用 .setCustomDeviceState(container: "gamepad-1") ,然后在您的控制器中使用 onDeviceStateChange() 监听并检查自定义数据。我目前正在建设 s.t.用于处理视图(尚未 100% 完成):github.com/AirConsole/airconsole-view-manager 但如果您查看代码可能会对您有所帮助:) 谢谢!我一定会研究它以彻底了解 Unity 和 controller.html 的通信之间发生了什么。几天后我们会看到我的表现:)以上是关于有没有办法在 Airconsole 对象上切换 HTML 控制器?的主要内容,如果未能解决你的问题,请参考以下文章