253 lines
7.5 KiB
C#
253 lines
7.5 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
/// <summary>
|
|
/// ¶ÏÏß
|
|
/// </summary>
|
|
public class Disconnected : MonoBehaviour
|
|
{
|
|
public static Disconnected ins;
|
|
[SerializeField] int Timer;
|
|
public string fileName;
|
|
public DisconnectedData DisconnectedData;
|
|
[SerializeField] Transform PlayerTrans;
|
|
[SerializeField] string name;
|
|
private void Awake()
|
|
{
|
|
//if (ins == null)
|
|
//{
|
|
// ins = this;
|
|
//}
|
|
//else
|
|
//{
|
|
// Destroy(ins);
|
|
// return;
|
|
//}
|
|
//try
|
|
//{
|
|
// PlayerTrans = GameManager.Instance.Player.transform;
|
|
DisconnectedData = new DisconnectedData();
|
|
DisconnectedData.PlayerPosition = new pos();
|
|
DisconnectedData.PlayerRotions = new pos();
|
|
DisconnectedData.toolsName = new List<string>();
|
|
DisconnectedData.keyValuePairs = new Dictionary<string, bool>();
|
|
DateTime currentTime = DateTime.Now;
|
|
// fileName = Application.streamingAssetsPath + "/" + currentTime.Year.ToString() + currentTime.Month.ToString() + currentTime.Day.ToString() + ".json";
|
|
// StartCoroutine(LoadJSON(fileName));
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// Debug.LogError(ex.Message);
|
|
// throw;
|
|
//}
|
|
}
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
//try
|
|
//{
|
|
// StartCoroutine(Starts());
|
|
//}
|
|
//catch (System.Exception ex)
|
|
//{
|
|
// Debug.LogError("Òì³£" + ex);
|
|
// throw;
|
|
//}
|
|
}
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
|
|
if (other.name.Equals(name))
|
|
{
|
|
//OnBackUp();
|
|
}
|
|
|
|
}
|
|
private void OnTriggerExit(Collider other)
|
|
{
|
|
if (other.name.Equals(name))
|
|
{
|
|
//UIManager.Instance.Reconnection.isDuanDianok = true;
|
|
}
|
|
}
|
|
void OnBackUp()
|
|
{
|
|
//Debug.Log("¿ªÊ¼±¸·Ý");
|
|
DisconnectedData.toolsPos = new List<pos>();
|
|
DisconnectedData.toolsRot = new List<pos>();
|
|
int tempInt = UIManager.Instance.toolsItemManager.toolItems.Count;
|
|
for (int i = 0; i < tempInt; i++)
|
|
{
|
|
pos pos = new pos();
|
|
pos.x = ToolsItemManager.Instance.toolItems[i].originPos.x;
|
|
pos.y = ToolsItemManager.Instance.toolItems[i].originPos.y;
|
|
pos.z = ToolsItemManager.Instance.toolItems[i].originPos.z;
|
|
DisconnectedData.toolsPos.Add(pos);
|
|
}
|
|
for (int i = 0; i < tempInt; i++)
|
|
{
|
|
pos pos = new pos();
|
|
pos.x = ToolsItemManager.Instance.toolItems[i].originAngle.x;
|
|
pos.y = ToolsItemManager.Instance.toolItems[i].originAngle.y;
|
|
pos.z = ToolsItemManager.Instance.toolItems[i].originAngle.z;
|
|
DisconnectedData.toolsRot.Add(pos);
|
|
}
|
|
DisconnectedData.PlayerPosition.x = PlayerTrans.position.x;
|
|
DisconnectedData.PlayerPosition.y = PlayerTrans.position.y;
|
|
DisconnectedData.PlayerPosition.z = PlayerTrans.position.z;
|
|
DisconnectedData.PlayerRotions.x = PlayerTrans.localEulerAngles.x;
|
|
DisconnectedData.PlayerRotions.y = PlayerTrans.localEulerAngles.y;
|
|
DisconnectedData.PlayerRotions.z = PlayerTrans.localEulerAngles.z;
|
|
DisconnectedData.SceneName = GameManager.Instance.SceneName;
|
|
DisconnectedData.UserID = UIManager.Instance.loginController.PassWord;
|
|
DisconnectedData.UserName = UIManager.Instance.loginController.userName;
|
|
DisconnectedData.userBianHao = GlobalFlag.userId;
|
|
DisconnectedData.toolsName = new List<string>();
|
|
DisconnectedData.timuAnd = new timuAndOptoin();
|
|
DisconnectedData.timuAnd = UIManager.Instance.jobCardController.hide();
|
|
DisconnectedData.Timer = UIManager.Instance.time.countTime;
|
|
foreach (var item in WorkingPersonnel.instance.keyValuePairs)
|
|
{
|
|
if (DisconnectedData.keyValuePairs.ContainsKey(item.Key))
|
|
{
|
|
DisconnectedData.keyValuePairs[item.Key] = item.Value;
|
|
}
|
|
else
|
|
{
|
|
DisconnectedData.keyValuePairs.Add(item.Key, item.Value);
|
|
}
|
|
}
|
|
if (ToolsItemManager.Instance.currentTool)
|
|
{
|
|
|
|
DisconnectedData.HandGameObject = ToolsItemManager.Instance.currentTool.name;
|
|
}
|
|
for (int i = 0; i < ToolsItemManager.Instance.toolItems.Count; i++)
|
|
{
|
|
DisconnectedData.toolsName.Add(ToolsItemManager.Instance.toolItems[i].toolName);
|
|
}
|
|
WriteToLocal(DisconnectedData.UserID, DisconnectedData.UserName, DisconnectedData);
|
|
gameObject.GetComponent<BoxCollider>().enabled = false;
|
|
|
|
}
|
|
public void WriteToLocal<T>(string id, string name, T monoBehaviour)
|
|
{
|
|
// ½«Êý¾Ý¶ÔÏóÐòÁл¯ÎªJSON
|
|
string json = JsonConvert.SerializeObject(monoBehaviour, Formatting.Indented);
|
|
//File.WriteAllText(path, json);
|
|
ExaminationLoad load = new ExaminationLoad();
|
|
StartCoroutine(load.LoadAsyncPost(name, id, json));
|
|
}
|
|
|
|
IEnumerator LoadJSON(string fileName)
|
|
{
|
|
string sPath = fileName;
|
|
using (UnityWebRequest oReq = UnityWebRequest.Get(sPath))
|
|
{
|
|
yield return oReq.SendWebRequest();
|
|
if (!string.IsNullOrEmpty(oReq.error))
|
|
{
|
|
Debug.Log("»ñÈ¡ÅäÖÃÐÅϢʧ°Ü!");
|
|
yield break;
|
|
}
|
|
string json = oReq.downloadHandler.text;
|
|
DisconnectedData settings = JsonConvert.DeserializeObject<DisconnectedData>(json);
|
|
}
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
public class DisconnectedData
|
|
{
|
|
/// <summary>
|
|
/// Óû§Ãû³Æ
|
|
/// </summary>
|
|
public string UserName;
|
|
/// <summary>
|
|
/// Óû§Éí·ÝÖ¤
|
|
/// </summary>
|
|
public string UserID;
|
|
/// <summary>
|
|
/// Óû§±àºÅ
|
|
/// </summary>
|
|
public string userBianHao;
|
|
/// <summary>
|
|
/// ³¡¾°Ãû³Æ
|
|
/// </summary>
|
|
public string SceneName;
|
|
/// <summary>
|
|
/// µ±Ç°Íæ¼ÒλÖÃ
|
|
/// </summary>
|
|
public pos PlayerPosition;
|
|
/// <summary>
|
|
/// µ±Ç°Íæ¼ÒλÖÃ
|
|
/// </summary>
|
|
public pos PlayerRotions;
|
|
/// <summary>
|
|
/// Íæ¼ÒÊÖÉϹ¤¾ß
|
|
/// </summary>
|
|
public string HandGameObject;
|
|
/// <summary>
|
|
/// ¹¤¾ß¼¯ºÏ
|
|
/// </summary>
|
|
public List<string> toolsName;
|
|
/// <summary>
|
|
/// ¹¤¾ßλÖÃ
|
|
/// </summary>
|
|
public List<pos> toolsPos;
|
|
/// <summary>
|
|
/// ¹¤¾ßÐýת
|
|
/// </summary>
|
|
public List<pos> toolsRot;
|
|
/// <summary>
|
|
/// µ±Ç°ÊÇ·ñÒª³öÏÖ¸Ð̾ºÅ
|
|
/// </summary>
|
|
public Dictionary<string, bool> keyValuePairs;
|
|
public timuAndOptoin timuAnd;
|
|
|
|
public float Timer;//ʱ¼ä
|
|
}
|
|
[Serializable]
|
|
public class pos
|
|
{
|
|
public float x;
|
|
public float y;
|
|
public float z;
|
|
}
|
|
[Serializable]
|
|
public class timuAndOptoin
|
|
{
|
|
public string userSum;
|
|
/// <summary>
|
|
/// ×Öµä
|
|
/// </summary>
|
|
public Dictionary<string, string> keyValuePairs;
|
|
/// <summary>
|
|
/// Óû§±àºÅ
|
|
/// </summary>
|
|
public List<string> userID;
|
|
/// <summary>
|
|
/// ¿Í»§Ãû³Æ
|
|
/// </summary>
|
|
public List<string> userName;
|
|
/// <summary>
|
|
/// ¹¤×÷µØµã
|
|
/// </summary>
|
|
public List<string> workSpace;
|
|
/// <summary>
|
|
/// ×¢ÒâÊÂÏî¼°°²È«´ëÊ©
|
|
/// </summary>
|
|
public List<string> aqcss;
|
|
/// <summary>
|
|
/// ÏÖ³¡·çÏÕµã·ÖÎö
|
|
/// </summary>
|
|
public List<string> fxdfx;
|
|
/// <summary>
|
|
/// ´ò¹³¿ò
|
|
/// </summary>
|
|
public List<bool> bools;
|
|
}
|