|
|
|
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace EduCoderTool
|
|
|
|
|
{
|
|
|
|
|
/*
|
|
|
|
|
* web端通讯中转器
|
|
|
|
|
* @author lz
|
|
|
|
|
**/
|
|
|
|
|
public class WebConnecter : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private static WebConnecter instance = null;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单例
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static WebConnecter Singleton
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if(instance == null)
|
|
|
|
|
{
|
|
|
|
|
instance = GameObject.FindObjectOfType<WebConnecter>();
|
|
|
|
|
if(instance == null)
|
|
|
|
|
{
|
|
|
|
|
GameObject go = new GameObject("WebConnecter");
|
|
|
|
|
instance = go.AddComponent<WebConnecter>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//引用jslib的方法
|
|
|
|
|
[DllImport("__Internal")]
|
|
|
|
|
private static extern void SendMsgToWeb(string str);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//接收数据
|
|
|
|
|
public Action<string> dataHandle;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Awake()
|
|
|
|
|
{
|
|
|
|
|
if(instance == null)
|
|
|
|
|
{
|
|
|
|
|
instance = this;
|
|
|
|
|
}else
|
|
|
|
|
{
|
|
|
|
|
Destroy(gameObject);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 接收web端发送数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="jsonStr"></param>
|
|
|
|
|
public void RecData(string jsonStr)
|
|
|
|
|
{
|
|
|
|
|
dataHandle?.Invoke(jsonStr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 发送数据到web端
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
public void SendDataToWeb(string data)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Debug.LogFormat(">>>>>> unity send web data{0}",data);
|
|
|
|
|
if (Application.platform == RuntimePlatform.WebGLPlayer)
|
|
|
|
|
{
|
|
|
|
|
SendMsgToWeb(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void SendResultToWeb(bool success)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, string> data = new Dictionary<string, string>();
|
|
|
|
|
data.Add("GameState", success ? "Success" : "Fail");
|
|
|
|
|
data.Add("Data", "");
|
|
|
|
|
string json = JsonConvert.SerializeObject(data);
|
|
|
|
|
SendDataToWeb(json);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SendResultToWeb(bool success, double score)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, object> data = new Dictionary<string, object>();
|
|
|
|
|
data.Add("GameState", success ? "Success" : "Fail");
|
|
|
|
|
data.Add("Data", score);
|
|
|
|
|
string json = JsonConvert.SerializeObject(data);
|
|
|
|
|
SendDataToWeb(json);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|