174 lines
4.3 KiB
C#
174 lines
4.3 KiB
C#
using DG.Tweening;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
public class WebInteraction : MonoBehaviour
|
|
{
|
|
public static WebInteraction Inst;
|
|
|
|
public string current_videoNumber = null;
|
|
|
|
/// <summary>
|
|
/// 视频监控是否为打开状态
|
|
/// </summary>
|
|
public bool isVideoPlay = false;
|
|
|
|
/// <summary>
|
|
/// 工作票是否为打开状态
|
|
/// </summary>
|
|
public bool isWorkPlay = false;
|
|
|
|
public GameManager gameManager;
|
|
|
|
private void Awake()
|
|
{
|
|
Inst = this;
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
Application.ExternalCall("OnSceneLoaded");
|
|
//三维场景加载时显示地图
|
|
}
|
|
|
|
//前端调用Unity 方法逻辑
|
|
//参数1 脚本所挂载的物体名 GameManager
|
|
//参数2 脚本内方法名 unity_token_value
|
|
//参数3 传递的参数 token值
|
|
|
|
/// <summary>
|
|
/// 前端调用此方法传递Token
|
|
/// </summary>
|
|
/// <param name="token"></param>
|
|
public void unity_token_value(string token)
|
|
{
|
|
gameManager.token = token;
|
|
gameManager.enabled = true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 发送视频监控坐标的函数
|
|
/// </summary>
|
|
/// <param name="x"></param>
|
|
/// <param name="y"></param>
|
|
public void SendVideoPosition(float x, float y)
|
|
{
|
|
// 在此处将视频监控坐标发送给前端
|
|
Debug.Log("Sending video position: (" + x + ", " + y + ")");
|
|
Application.ExternalCall("web_video_position", x + "," + y);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭视频监控的函数
|
|
/// </summary>
|
|
/// <param name="videoNumber"></param>
|
|
public void CloseVideo(string videoNumber)
|
|
{
|
|
// 在此处处理关闭视频监控的逻辑
|
|
Debug.Log("Closing video number: " + videoNumber);
|
|
isVideoPlay= false;
|
|
Application.ExternalCall("web_video_close", videoNumber);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 打开视频监控的函数
|
|
/// </summary>
|
|
/// <param name="videoNumber"></param>
|
|
public void OpenVideo(string videoNumber)
|
|
{
|
|
// 在此处处理打开视频监控的逻辑
|
|
Debug.Log("Opening video number: " + videoNumber);
|
|
Application.ExternalCall("web_video_open", videoNumber);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 打开现场作业的函数
|
|
/// </summary>
|
|
public void OpenTicket()
|
|
{
|
|
// 在此处处理打开现场作业的逻辑
|
|
Debug.Log("Opening ticket");
|
|
Application.ExternalCall("web_ticket_open", "");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭现场作业的函数
|
|
/// </summary>
|
|
public void CloseTicket()
|
|
{
|
|
// 在此处处理关闭现场作业的逻辑
|
|
Debug.Log("Closing ticket");
|
|
Application.ExternalCall("web_ticket_close", "");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 工作票设备关联的函数
|
|
/// </summary>
|
|
/// <param name="deviceNumbers"></param>
|
|
public void unity_ticket_cabinet(string deviceNumbers)
|
|
{
|
|
//,
|
|
Array.ForEach(deviceNumbers.Split(','), (device) =>
|
|
{
|
|
GameObject go = null;
|
|
List<GameObject> ls = new List<GameObject>();
|
|
ls.AddRange(GameManager.Inst.Cabinets_go);
|
|
ls.AddRange(GameManager.Inst.Racks_go);
|
|
ls.AddRange(GameManager.Inst.MachineSlots_go);
|
|
ls.AddRange(GameManager.Inst.TmsCards_go);
|
|
go = Array.Find(ls.ToArray(), item =>
|
|
{
|
|
return (item.GetComponent<DeviceQuery>().deviceList.id == device);
|
|
});
|
|
if (go != null)
|
|
{
|
|
try
|
|
{
|
|
var c = go.GetComponent<Renderer>().materials[0].color;
|
|
GameManager.Inst.ChangeMaterialColor(go, 0, new Color(1, 109f / 255, 0, 1));
|
|
DOVirtual.Float(0, 10, 1f, null).OnComplete(() => GameManager.Inst.ChangeMaterialColor(go, 0, c));
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Debug.Log(e.Message);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
public static class BoolMonitor
|
|
{
|
|
private static bool _value = false;
|
|
|
|
public static bool Value
|
|
{
|
|
get { return _value; }
|
|
set
|
|
{
|
|
if (_value != value)
|
|
{
|
|
_value = value;
|
|
OnValueChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static event EventHandler ValueChanged;
|
|
|
|
static void OnValueChanged()
|
|
{
|
|
ValueChanged?.Invoke(null, EventArgs.Empty);
|
|
}
|
|
}
|
|
|
|
}
|