U3D_TobaccoWarehouseISMDTSy.../Assets/Scripts/YL/Warehousingdata.cs

780 lines
32 KiB
C#

using DefaultNamespace;
using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static InterfaceManager;
public class Warehousingdata : MonoBehaviour
{
[Header("设备ID")]
public string ID;
[Header("位移速度")]
public float Speed = 3.5f;
[Header("正传判断点位是否有箱子")]
public Transform Onschedule;
[Header("正转需要位移的点位")]
public Transform Onschedule2;
[Header("反转需要判断点位有箱子")]
public Transform Antipoint1;
[Header("反转需要位移的点位")]
public Transform Antipoint2;
[Header("提升机反转需要位移的点位")]
public Transform Reversing;
[Header("提升机反转需要位移点位2")]
public Transform Reversing2;
/// <summary>
/// 初始化判断
/// </summary>
private bool ispcon = false;
/// <summary>
/// 普通实箱
/// </summary>
public Material Commonfruitbox;
/// <summary>
/// 普通空箱
/// </summary>
public Material Normalairbox;
/// <summary>
/// 特殊实箱
/// </summary>
public Material Specialkernelbox;
/// <summary>
/// 特殊空箱
/// </summary>
public Material Specialbox;
/// <summary>
/// 一个箱子
/// </summary>
public GameObject Boxgame;
/// <summary>
/// 两个箱子
/// </summary>
public GameObject Boxgame2;
[Header("初始化位置")]
public Transform Points;
void Start()
{
}
public void Equipmentdata(Convoyorequipment convoyorequipment)
{
if (convoyorequipment.TaskNumber != "0")
{
if (convoyorequipment.TaskNumber.Length > 0 && convoyorequipment.BoxesNumber != "0" && !ispcon)
{
if (convoyorequipment.BoxesNumber == "2" && ID == "5203" && !ispcon)
{
Hoistmovement hoistmovement = transform.GetComponent<Hoistmovement>();
if (hoistmovement)
{
if (hoistmovement.Floor == 1)
{
Debug.Log("提升机初始化一层");
IntiPos(convoyorequipment, hoistmovement.Downpoint);
}
else if (hoistmovement.Floor == 2)
{
Debug.Log("提升机初始化二层");
IntiPos2(convoyorequipment, hoistmovement.UPpoint);
}
}
ispcon = true;
}
else if(convoyorequipment.BoxesNumber == "2" && ID == "5236" && !ispcon)
{
Hoistmovement hoistmovement = transform.GetComponent<Hoistmovement>();
if (hoistmovement)
{
if (hoistmovement.Floor == 1)
{
Debug.Log("提升机初始化一层");
IntiPos(convoyorequipment, hoistmovement.Downpoint);
}
else if (hoistmovement.Floor == 2)
{
Debug.Log("提升机初始化二层");
IntiPos2(convoyorequipment, hoistmovement.UPpoint);
}
}
ispcon = true;
}
if(convoyorequipment.BoxesNumber == "2" && ID == "5249" && !ispcon)
{
Hoistmovement hoistmovement = transform.GetComponent<Hoistmovement>();
if (hoistmovement)
{
if (hoistmovement.Floor == 1)
{
Debug.Log("提升机初始化一层");
IntiPos(convoyorequipment, hoistmovement.Downpoint);
}
else if (hoistmovement.Floor == 2)
{
Debug.Log("提升机初始化二层");
IntiPos2(convoyorequipment, hoistmovement.UPpoint);
}
}
ispcon = true;
}
Debug.Log("初始化输出机");
if (convoyorequipment.BoxesNumber == "1" && !ispcon)
{
Init(convoyorequipment);
}
else if (convoyorequipment.BoxesNumber == "2" && !ispcon)
{
Init2(convoyorequipment);
}
ispcon = true;
}
else if (convoyorequipment.TaskNumber.Length > 0)
{
if (transform.childCount > 0)
{
if (transform.GetChild(0).GetComponent<Boxtasknumber>())
{
Boxtasknumber boxtasknumber = transform.GetChild(0).GetComponent<Boxtasknumber>();
if (boxtasknumber != null)
{
boxtasknumber.ID = convoyorequipment.TaskNumber;
}
}
}
}
ispcon = true;
if (convoyorequipment.TaskNumber.Length > 0 && ID == "5103")
{
Colourdata(convoyorequipment.TaskNumber);
}
else if (convoyorequipment.TaskNumber.Length > 0 && ID == "5106")
{
Colourdata(convoyorequipment.TaskNumber);
}
else if (convoyorequipment.TaskNumber.Length > 0 && ID == "5226")
{
Colourdata2(convoyorequipment.TaskNumber);
}
else
{
Debug.Log("没到指定位置不需要改变颜色");
}
if (convoyorequipment.ForwardRotation == "True")
{
Intotheforword();
}
else if (convoyorequipment.ReverseRotation == "True")
{
Tothereversal();
}
}
ispcon = true;
}
/// <summary>
/// 改变箱子颜色
/// </summary>
/// <param name="boxid"></param>
public void Colourdata(string boxid)
{
if (Onschedule.childCount > 0)
{
GameObject box = Onschedule.GetChild(0).gameObject;
string url = Tasknumber + boxid;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null)
{
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
//Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
//if (renderer1 != null)
//{
// renderer1.material = Normalairbox;
//}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
// Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
//if (renderer3 != null)
//{
// renderer3.material = Commonfruitbox;
//}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
//Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
//if (renderer1 != null)
//{
// renderer1.material = Specialbox;
//}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
//Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
//if (renderer3 != null)
//{
// renderer3.material = Specialkernelbox;
//}
}
break;
default:
break;
}
Debug.Log("给箱子添加对应的颜色");
}
}));
}
}
private void Colourdata2(string boxid)
{
if (Onschedule.childCount > 0)
{
GameObject box = Onschedule.GetChild(0).gameObject;
string url = Tasknumber + boxid;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null)
{
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
if (renderer1 != null)
{
renderer1.material = Normalairbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
if (renderer3 != null)
{
renderer3.material = Commonfruitbox;
}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
if (renderer1 != null)
{
renderer1.material = Specialbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
if (renderer3 != null)
{
renderer3.material = Specialkernelbox;
}
}
break;
default:
break;
}
Debug.Log("给箱子添加对应的颜色");
}
}));
}
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="boxid"></param>
private void Init2(Convoyorequipment boxid)
{
string url = Tasknumber + boxid.TaskNumber;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null && Boxgame2)
{
Debug.Log("初始化完成");
GameObject box = Instantiate(Boxgame2, transform);
Boxtasknumber boxtasknumber = box.GetComponent<Boxtasknumber>();
boxtasknumber.ID = initdata.result[0].transferId;
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
if (renderer1 != null)
{
renderer1.material = Normalairbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
if (renderer3 != null)
{
renderer3.material = Commonfruitbox;
}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
if (renderer1 != null)
{
renderer1.material = Specialbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
if (renderer3 != null)
{
renderer3.material = Specialkernelbox;
}
}
break;
default:
break;
}
//box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0);
//box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 1.3f, box.transform.position.z);
box.gameObject.transform.SetParent(Points, false);
MqttManager.Instance.firstbox.Add(box);
if (boxid.ForwardRotation == "True")
{
Intotheforword();
}
else if (boxid.ReverseRotation == "True")
{
Tothereversal();
}
}
}));
}
private void Init(Convoyorequipment boxid)
{
string url = Tasknumber + boxid.TaskNumber;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null && Boxgame)
{
GameObject box = Instantiate(Boxgame, transform);
Boxtasknumber boxtasknumber = box.GetComponent<Boxtasknumber>();
boxtasknumber.ID = initdata.result[0].transferId;
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
//Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
//if (renderer1 != null)
//{
// renderer1.material = Normalairbox;
//}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
// Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
//if (renderer3 != null)
//{
// renderer3.material = Commonfruitbox;
//}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
//Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
//if (renderer1 != null)
//{
// renderer1.material = Specialbox;
//}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
//Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
//if (renderer3 != null)
//{
// renderer3.material = Specialkernelbox;
//}
}
break;
default:
break;
}
//box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0);
//box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 0.65f, box.transform.position.z);
box.gameObject.transform.SetParent(Points, false);
MqttManager.Instance.firstbox.Add(box);
if (boxid.ForwardRotation == "True")
{
Intotheforword();
}
else if (boxid.ReverseRotation == "True")
{
Tothereversal();
}
}
}));
}
/// <summary>
/// 正传点位
/// </summary>
public void Intotheforword()
{
if (Onschedule.childCount > 0)
{
GameObject box = Onschedule.transform.GetChild(0).gameObject;
if (box != null)
{
box.transform.SetParent(null);
box.transform.DOMove(Onschedule2.position, (Vector3.Distance(box.transform.position, Onschedule2.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() =>
{
box.transform.SetParent(Onschedule2);
});
}
}
}
/// <summary>
/// 反转点位需要判断
/// </summary>
public void Tothereversal()
{
if (Antipoint1)
{
if (Antipoint1.childCount > 0)
{
Debug.Log("可以反转");
GameObject box = Antipoint1.transform.GetChild(0).gameObject;
if (box != null)
{
Debug.Log("获取到反转箱子");
box.transform.SetParent(null);
box.transform.DOMove(Antipoint2.position, (Vector3.Distance(box.transform.position, Antipoint2.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() =>
{
Debug.Log("反转完成");
box.transform.SetParent(Antipoint2);
});
}
}
}
else if (transform.GetComponent<Hoistmovement>() != null)
{
Debug.Log("提升机反转");
Hoistmovement hoistmovement = transform.GetComponent<Hoistmovement>();
if (hoistmovement)
{
if (hoistmovement.Downpoint.transform.childCount > 0 && Reversing)
{
Debug.Log("反转第一层");
GameObject box = hoistmovement.Downpoint.transform.GetChild(0).gameObject;
if (box)
{
box.transform.SetParent(null);
box.transform.DOMove(Reversing.position, (Vector3.Distance(box.transform.position, Reversing.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() =>
{
box.transform.SetParent(Reversing);
});
}
}
else if (hoistmovement.UPpoint.transform.childCount > 0 && Reversing2)
{
Debug.Log("反转第二层");
GameObject box = hoistmovement.UPpoint.transform.GetChild(0).gameObject;
if (box)
{
box.transform.SetParent(null);
box.transform.DOMove(Reversing2.position, (Vector3.Distance(box.transform.position, Reversing2.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() =>
{
box.transform.SetParent(Reversing2);
});
}
}
}
}
else
{
Debug.Log("没有反转条件");
}
}
/// <summary>
/// 提升机点位二层
/// </summary>
/// <param name="convoyorequipment"></param>
/// <param name="uPpoint"></param>
private void IntiPos2(Convoyorequipment boxid, Transform point)
{
string url = Tasknumber + boxid.TaskNumber;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null && Boxgame2)
{
GameObject box = Instantiate(Boxgame2, point);
Boxtasknumber boxtasknumber = box.GetComponent<Boxtasknumber>();
boxtasknumber.ID = initdata.result[0].transferId;
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
if (renderer1 != null)
{
renderer1.material = Normalairbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
if (renderer3 != null)
{
renderer3.material = Commonfruitbox;
}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
if (renderer1 != null)
{
renderer1.material = Specialbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
if (renderer3 != null)
{
renderer3.material = Specialkernelbox;
}
}
break;
default:
break;
}
//box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0);
//box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 1.3f, box.transform.position.z);
box.gameObject.transform.SetParent(point, false);
MqttManager.Instance.firstbox.Add(box);
if (boxid.ForwardRotation == "True")
{
Intotheforword();
}
else if (boxid.ReverseRotation == "True")
{
Tothereversal();
}
}
}));
}
/// <summary>
/// 提升机点位一层
/// </summary>
/// <param name="convoyorequipment"></param>
/// <param name="downpoint"></param>
private void IntiPos(Convoyorequipment boxid, Transform point)
{
string url = Tasknumber + boxid.TaskNumber;
StartCoroutine(Getstring(url, (data) =>
{
Initdata initdata = JsonUtility.FromJson<Initdata>(data);
if (initdata != null && Boxgame2)
{
GameObject box = Instantiate(Boxgame2, point);
Boxtasknumber boxtasknumber = box.GetComponent<Boxtasknumber>();
boxtasknumber.ID = initdata.result[0].transferId;
switch (initdata.result[0].palletType)
{
case "QBox":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Normalairbox;
}
if (renderer1 != null)
{
renderer1.material = Normalairbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Commonfruitbox;
}
if (renderer3 != null)
{
renderer3.material = Commonfruitbox;
}
}
break;
case "Box":
if (initdata.result[0].itemType == "EmptyBox")
{
Renderer renderer = box.GetComponent<Renderer>();
Renderer renderer1 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer != null)
{
renderer.material = Specialbox;
}
if (renderer1 != null)
{
renderer1.material = Specialbox;
}
}
else
{
Renderer renderer2 = box.GetComponent<Renderer>();
Renderer renderer3 = box.transform.GetChild(0).GetComponent<Renderer>();
if (renderer2 != null)
{
renderer2.material = Specialkernelbox;
}
if (renderer3 != null)
{
renderer3.material = Specialkernelbox;
}
}
break;
default:
break;
}
//box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0);
//box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 1.3f, box.transform.position.z);
box.gameObject.transform.SetParent(point, false);
MqttManager.Instance.firstbox.Add(box);
if (boxid.ForwardRotation == "True")
{
Intotheforword();
}
else if (boxid.ReverseRotation == "True")
{
Tothereversal();
}
}
}));
}
}