有没有办法在 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 控制器?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 AirConsole 获得每个用户的持久数据?

与airconsole统一的脚本结构

在标准大学/公司网络上使用 Airconsole 进行开发

手机上的 AirConsole 对开发人员不起作用?

AirConsole 控制器生成器

Unity 和 onGameReady 未定义