240 lines
11 KiB
C#
240 lines
11 KiB
C#
using DefaultNamespace.ProcessMode;
|
||
using DG.Tweening;
|
||
using MotionFramework;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using HighlightPlus;
|
||
using UnityEngine.EventSystems;
|
||
|
||
public class JunctionBox : MonoBehaviour
|
||
{
|
||
/// <summary>
|
||
/// 透明盖
|
||
/// </summary>
|
||
public Transform TransparentlidObj;
|
||
|
||
/// <summary>
|
||
/// 端子排上所有封印和螺丝
|
||
/// </summary>
|
||
public GameObject[] AllObjects;
|
||
|
||
/// <summary>
|
||
/// 接线盒滑块
|
||
/// </summary>
|
||
public GameObject[] GameObjectSlider;
|
||
|
||
/// <summary>
|
||
/// 高亮物体
|
||
/// </summary>
|
||
//public GameObject[] AllHightObj;
|
||
|
||
/// <summary>
|
||
/// 接线盒是否盖上
|
||
/// </summary>
|
||
public bool iscover;
|
||
|
||
/// <summary>
|
||
/// 滑块的原始位置
|
||
/// </summary>
|
||
private List<Vector3> originalPosition=new List<Vector3>();
|
||
|
||
/// <summary>
|
||
/// 滑块的原始旋转
|
||
/// </summary>
|
||
private Quaternion originalRotation;
|
||
|
||
bool isanzhaung =false;
|
||
|
||
/// <summary>
|
||
/// 接线盒上的封印和螺丝
|
||
/// </summary>
|
||
public GameObject[] tool;
|
||
//public static JunctionBox intance;
|
||
|
||
//public void Awake()
|
||
//{
|
||
// intance = this;
|
||
//}
|
||
void Start()
|
||
{
|
||
Init();
|
||
}
|
||
|
||
public void Init()
|
||
{
|
||
for (int i = 0; i < GameObjectSlider.Length; i++)
|
||
{
|
||
GameObjectSlider[i].GetComponent<HighlightEffect>().enabled = false;
|
||
originalPosition.Add(GameObjectSlider[i].transform.localPosition);
|
||
//originalRotation = GameObjectSlider[i].transform.localRotation;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 是否高亮
|
||
/// </summary>
|
||
/// <param name="ObjName">高亮物体</param>
|
||
/// <param name="Highlight">高亮</param>
|
||
/// <param name="Ishighlight">是否高亮</param>
|
||
//public void HighligtOfObj(string ObjName, HighlightEffect Highlight,bool Ishighlight)
|
||
//{
|
||
// for (int i = 0; i < AllObjects.Length; i++)
|
||
// {
|
||
// if (Ishighlight)
|
||
// {
|
||
// if (AllObjects[i].name.Equals(ObjName))
|
||
// {
|
||
// Highlight.enabled = false;
|
||
// }
|
||
// }
|
||
// else
|
||
// {
|
||
// if (AllObjects[i].name.Equals(ObjName))
|
||
// {
|
||
// Highlight.enabled = true;
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
|
||
void Update()
|
||
{
|
||
|
||
if (EventSystem.current.IsPointerOverGameObject())
|
||
return;
|
||
if (Input.GetMouseButtonDown(0))
|
||
{
|
||
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||
RaycastHit hit;
|
||
bool raycast = Physics.Raycast(ray, out hit);
|
||
if (raycast)
|
||
{
|
||
if (iscover)
|
||
{ //判断盖子是否打开
|
||
switch (hit.collider.gameObject.name)
|
||
{
|
||
// case "接线盒纵向滑块001":
|
||
// hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.06131744f, -0.0075f, 0.0089f), 1f);
|
||
// Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
// break;
|
||
// case "接线盒纵向滑块002":
|
||
// hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.02013969f, -0.0075f, 0.0089f), 1f);
|
||
// Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
// break;
|
||
// case "接线盒纵向滑块003":
|
||
// hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.02001452f, -0.0075f, 0.0089f), 1f);
|
||
// Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
// break;
|
||
case "接线盒纵向滑块004":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.06075525f, -0.00784f, 0.0089f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒横向上滑块003":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.04339f, 0.0058f, -0.00263f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块003":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.02001452f, -0.0074f, 0.0089f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒横向上滑块001":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.00316f, 0.0058f, -0.00263f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块002":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.02013969f, -0.008f, 0.0089f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒横向上滑块002":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.0372f, 0.0058f, -0.0026f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块001":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.06131744f, -0.0079f, 0.0089f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
|
||
case "三相_有互感器_无光伏_接线盒_A相_横向下滑块_正确":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(-0.0404f, -0.0058f, -0.0026f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "三相_有互感器_无光伏_接线盒_B相_横向下滑块_正确":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(0f, -0.0058f, -0.0026f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "三相_有互感器_无光伏_接线盒_C相_横向下滑块_正确":
|
||
hit.collider.gameObject.transform.DOLocalMove(new Vector3(0.0408f, -0.0058f, -0.0026f), 1f);
|
||
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
}
|
||
}
|
||
if (AreAllTool())
|
||
{
|
||
switch (hit.collider.gameObject.name)
|
||
{
|
||
case "接线盒纵向滑块001":
|
||
hit.collider.gameObject.transform.DOLocalMove(originalPosition[0], 1f);
|
||
Debug.Log(hit.collider.gameObject.name);
|
||
MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块002":
|
||
hit.collider.gameObject.transform.DOLocalMove(originalPosition[1], 1f);
|
||
Debug.Log(hit.collider.gameObject.name);
|
||
MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块003":
|
||
hit.collider.gameObject.transform.DOLocalMove(originalPosition[2], 1f);
|
||
Debug.Log(hit.collider.gameObject.name);
|
||
MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
case "接线盒纵向滑块004":
|
||
hit.collider.gameObject.transform.DOLocalMove(originalPosition[3], 1f);
|
||
Debug.Log(hit.collider.gameObject.name);
|
||
MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
//
|
||
if (AreAllObjectsHidden())
|
||
{
|
||
TransparentlidObj.transform.DOLocalMove(new Vector3(0, -0.0914f, 0), 2f);
|
||
iscover = true;
|
||
//isanzhaung = true;
|
||
for (int i = 0; i < GameObjectSlider.Length; i++)
|
||
{
|
||
GameObjectSlider[i].GetComponent<HighlightEffect>().enabled = true;
|
||
}
|
||
}
|
||
}
|
||
public bool AreAllObjectsHidden()
|
||
{
|
||
// 检查每个对象的激活状态
|
||
foreach (GameObject obj in AllObjects)
|
||
{
|
||
if (obj.activeInHierarchy) // 使用 activeInHierarchy 如果你想检查对象是否在其父级结构中被激活
|
||
{
|
||
return false; // 如果找到任何一个激活的对象,返回false
|
||
}
|
||
}
|
||
return true; // 如果所有对象都未激活,返回true
|
||
}
|
||
//判断新集中器上的螺丝和封印是否全部显示
|
||
public bool AreAllTool()
|
||
{
|
||
// 检查每个对象的激活状态
|
||
foreach (GameObject obj in tool)
|
||
{
|
||
if (obj.activeInHierarchy) // 使用 activeInHierarchy 如果你想检查对象是否在其父级结构中被激活
|
||
{
|
||
TransparentlidObj.gameObject.GetComponent<BoxCollider>().enabled = true;
|
||
return true; // 如果找到任何一个激活的对象,返回
|
||
}
|
||
}
|
||
return false; // 如果所有对象都未激活,返回false
|
||
}
|
||
}
|