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

136 lines
4.5 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;
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;
void Start()
{
Init();
}
public void Init()
{
for (int i = 0; i < GameObjectSlider.Length; i++)
{
GameObjectSlider[i].GetComponent<HighlightEffect>().enabled = false;
}
}
/// <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 (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.0075f, 0.0089f), 1f);
Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
break;
}
}
//else
//{
// Debug.Log("线盒还在");
//}
}
}
if (AreAllObjectsHidden())
{
iscover = true;
TransparentlidObj.transform.DOLocalMove(new Vector3(0, -0.0914f, 0), 2f);
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
}
}