95 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
| using DG.Tweening;
 | |
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| 
 | |
| /// <summary>
 | |
| /// 柜门
 | |
| /// </summary>
 | |
| public class Device_CabinetDoor : Device_Base
 | |
| {
 | |
|     /// <summary>
 | |
|     /// 验电位置
 | |
|     /// </summary>
 | |
|     public Transform testPosAndRot;
 | |
|     /// <summary>
 | |
|     /// 是否打开
 | |
|     /// </summary>
 | |
|     public bool isOpen;
 | |
|     /// <summary>
 | |
|     /// 是否带点
 | |
|     /// </summary>
 | |
|     public bool hasElectricity;
 | |
|     public void Open()
 | |
|     {
 | |
|         Debug.Log("开门");
 | |
|         startAction?.Invoke();
 | |
|         //开锁
 | |
|         transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(-45f, 0, 0), 1).OnComplete(() =>
 | |
|         {
 | |
|             //开门
 | |
|             transform.DOLocalRotate(new Vector3(0, 0, 180), 3).OnComplete(() =>
 | |
|             {
 | |
|                 isOpen = true;
 | |
|                 int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
 | |
|                 endAction?.Invoke();
 | |
|             });
 | |
|         });
 | |
|     }
 | |
|     public void Close()
 | |
|     {
 | |
|         Debug.Log("关门");
 | |
|         startAction?.Invoke();
 | |
|         //关门
 | |
|         transform.DOLocalRotate(new Vector3(0, 0, 0), 3).OnComplete(() =>
 | |
|           {
 | |
|               //关锁
 | |
|               transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(0, 0, 0), 1).OnComplete(() =>
 | |
|                 {
 | |
|                     isOpen = false;
 | |
|                     int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
 | |
|                     endAction?.Invoke();
 | |
|                 });
 | |
|           });
 | |
|     }
 | |
|     protected override void OnMDown()
 | |
|     {
 | |
|         if (LiveSceneManager.Instance.currentTool != null && LiveSceneManager.Instance.currentTool.name == "验电笔")
 | |
|             return;
 | |
| 
 | |
|         if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
 | |
|         {
 | |
|             base.OnMDown();
 | |
|             if (isOpen)
 | |
|             {
 | |
|                 Close();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Open();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 门打开状态
 | |
|     /// </summary>
 | |
|     public void OpenState()
 | |
|     {
 | |
|         SiteManager.instance.measuringCabinet.cabinetDoor.isOpen = true;
 | |
|         SiteManager.instance.measuringCabinet.cabinetDoor.transform.localEulerAngles = new Vector3(0, 0, 180);
 | |
|         SiteManager.instance.measuringCabinet.cabinetDoor.transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = new Vector3(-45f, 0, 0);
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 门关闭状态
 | |
|     /// </summary>
 | |
|     public void CloseState()
 | |
|     {
 | |
|         isOpen = false;
 | |
|         transform.localEulerAngles = Vector3.zero;
 | |
|         transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = Vector3.zero;
 | |
|     }
 | |
| 
 | |
| }
 |