2016-03-22 68 views
0

我們已經使用Unity調試器中的AirConsole-plugin創建了Unity3D的小型演示。 (如果我按下播放按鈕,瀏覽器打開,有時會起作用,有時候不起作用,如果沒有,則可以重新啓動Unity,然後它就會起作用。) 如果我們創建一個發行版或開發人員版本,它不會更長的工作。它會正確加載圖像,但控制器(虛擬+手機)大部分時間都處於「加載」狀態。有時他們會到達第一個正確的HTML頁面,但是他們發送的消息似乎並沒有到達屏幕上。 當我在構建之後單擊「打開導出的端口」時,它不起作用,除了一次。AirConsole Unity插件 - WebGL構建在Unity調試器工作時不起作用

一個錯誤消息,我得到了一次: 「遺漏的類型錯誤:無法讀取的未定義的屬性‘postQueue’」

總是出現此錯誤消息: 「,前期主要準備時間:176個毫秒UnityLoader.js:1 Module.printErr @ UnityLoader.js:1「

你知道這些錯誤信息是什麼意思嗎?

+0

將遺漏的類型錯誤消息應指示在你的控制器文件中的一行代碼,這可能會幫助你找到問題的綜合網絡服務器。 除此之外:你確定你已經正確導入了一切嗎? – Alice

+0

你的意思是將文件導入Unity?我會看看。 === 詳細信息: VM192 UnityLoader.js:3386 pre-main prep time:94 msModule.printErr @ VM192 UnityLoader.js:3386doRun @ blob:http%3A // 192.168.1.3%3A7842/a1c4b233-2afc-4aaa -ba85-b9433253e5b5:3646758(匿名函數)@ blob:http%3A // 192.168.1.3%3A7842/a1c4b233-2afc-4aaa-ba85-b9433253e5b5:3646770 VM192 UnityLoader.js:3382PlayerConnection initialized from(debug = 0) –

+0

這個錯誤是什麼意思? 'UnityLoader.js:1 pre-main prep time:603 msModule.printErr @ UnityLoader.js:1doRun @ blob:http%3A // airconsole.septem.ch/056d3d86-5c6b-4b2b-812d-c299b85fbbd5:36(匿名函數)@ blob:http%3A // airconsole.septem.ch/056d3d86-5c6b-4b2b-812d-c299b85fbbd5:36 UnityLoader.js:1初始化引擎版本:5.3.3f1(910d71450a97)' –

回答

0

我試了很多,但這似乎解決了這個問題:一定要在喚醒方法中附加事件偵聽器,就像他們在基本示例應用程序中那樣。

public class AirConsoleService : MonoBehaviour 
{ 
    void Awake() 
    { 
     // register events 
     AirConsole.instance.onReady += OnReady; 
     AirConsole.instance.onMessage += OnMessage; 
     AirConsole.instance.onConnect += OnConnect; 
     AirConsole.instance.onDisconnect += OnDisconnect; 
     // etc. ... 
    } 
    // etc. ... 
} 

我的問題是,我AirConsoleService是靜態的,而不是一個MonoBehaviour,以確保有是AirConsoleService只有一個實例。它完美適用於調試「播放」模式,但在發佈版本中,AirConsole以某種方式不知道發送消息的設備ID(這意味着我們從方法ConvertDeviceIdToPlayerNumber獲得-1),這解釋了爲什麼控制器不從屏幕上得到任何信號

我的解決辦法:我已附加它作爲對AirConsole對象的成分

附加說明:

  • 反病毒可能會阻止內容
  • 。您的電腦/服務器必須快速運行。
  • 在開發過程中,記錄deviceID和playerID以及當前活動設備ID。
  • 經常重新啓動統一或插件