ShanxiKnowledgeBase/SXElectricityInformationAcq.../Assets/JunctionBox.cs

240 lines
11 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}