2016-04-11 8 views
4

Ich verwende Unity 5.3.3f1 Personal und in meinen Code muss ich die Unity Ping-Klasse (http://docs.unity3d.com/ScriptReference/Ping.html) verwenden. Das Erstellen und Ausführen im internen Unity Player (http://i.stack.imgur.com/0kHmN.jpg) wird ordnungsgemäß ausgeführt. Jedoch wenn ich versuche, diese Lösung zu WebGL zu exportieren, erhalte ich die nächsten Fehler:Unity-Lösung für WebGL exportieren

"error CS0246: The type or namespace name 'Ping' could not be found. Are you missing a using directive or an assembly reference?"

Dies ist der C# Quellcode mit dem zugehörigen Ping-Code:

using UnityEngine; 
using System.Collections; 
using System.Text; 
using System.Collections.Generic; 
using LitJson; 

public class PingScript : MonoBehaviour 
{ 
    string Url = null, pingAddress = "192.168.0.180"; 

    float pingStartTime; 

    // Use this for initialization 
    void Start() 
    {   
     CheckServerIp(); 
     if (Url == null) 
     {       
      pingAddress = "192.168.1.210"; 
      CheckServerIp(); 
     } 
     print(Url); 
    } 

    // Update is called once per frame 
    void Update() 
    { 
     if (Url != null) 
     { 
      //Do something 
     } 
    } 

    void CheckServerIp() 
    { 
     bool internetPossiblyAvailable; 
     switch (Application.internetReachability) 
     { 
      case NetworkReachability.ReachableViaLocalAreaNetwork: 
       internetPossiblyAvailable = true; 
       break; 
      default: 
       internetPossiblyAvailable = false; 
       break; 
     } 
     if (!internetPossiblyAvailable) 
     { 
      Url = null; 
     } 
     Ping ping = new Ping(pingAddress); 
     pingStartTime = Time.time; 
     if (ping != null) 
     {    
      if (ping.isDone) 
      {     
       if (ping.time >= 0) 
       {      
        Url = "http://" + pingAddress + ":3200/api/pumpvalues"; 
       } 
      } 
     } 
    } 
} 
+2

WebGL hat viele Einschränkungen und seltsame Fehler. Sie können denselben Code in JavaScript schreiben und ihn von Unity aus remote aufrufen. Das wird sicher funktionieren. [Dokumente zum Schreiben von Browser-Plugins für Unity] (http://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html) –

Antwort

4

Die nur Netzwerk Sachen unterstützt in Unity WebGL sind die WWW und die UnityWebRequest Klasse. Sie können immer noch Ihre eigene Ping-Funktion mit WWW schreiben, die prüft, ob der Server verfügbar ist, indem Sie sich mit ihm verbinden und prüfen, ob die Verbindung erfolgreich war.