| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using DG.Tweening;
 
- using UnityEngine.Serialization;
 
- public enum AniType
 
- {
 
-     buYuan,
 
-     taoKou
 
- }
 
- public class ModelAniTool : MonoBehaviour
 
- {
 
-     public string moveModelName;
 
-     public int objectCount=0;
 
-     private Vector3[] oriV3;
 
-     
 
-     public float speed=2.0f;
 
-     public GameObject[] targetObjs;
 
-     public AniType aniType;
 
-     private float[] openValues;
 
-     private void Update()
 
-     {
 
-         // if (aniType == AniType.buYuan) {
 
-         //     if (GlobalData.buYuanSensorData.data.Count > 0) {
 
-         //         for (int i = 0; i < targetObjs.Length; i++) {
 
-         //             Debug.Log(GlobalData.buYuanSensorData.data[0].opening_degree);
 
-         //         }
 
-         //     }
 
-         // }
 
-     }
 
-     public void FindObje()
 
-     {
 
-         targetObjs = new GameObject[objectCount];
 
-         oriV3 = new Vector3[objectCount];
 
-         for (int i = 0; i < objectCount; i++)
 
-         {
 
-             switch (aniType)
 
-             {
 
-                 case AniType.buYuan:
 
-                     targetObjs[i] = this.transform.Find(moveModelName+"(Clone)").GetChild(objectCount-1-i).gameObject;
 
-                     oriV3[i] = targetObjs[i].transform.localPosition;
 
-                     break;
 
-                 case AniType.taoKou:
 
-                     targetObjs[i] = this.transform.Find(moveModelName+"(Clone)").GetChild(i).gameObject;
 
-                     oriV3[i] = targetObjs[i].transform.localEulerAngles;
 
-                     break;
 
-             }
 
-         }
 
-         ActionInstance._Instance.ModelAni_On += Ani_On;
 
-         ActionInstance._Instance.ModelAni_Off += Ani_Off;
 
-     }
 
-     public void Ani_On(AniType type,float[] v3s)
 
-     {
 
-         if (type != aniType)
 
-         {
 
-             return;
 
-         }
 
-         if (v3s == null)
 
-         {
 
-             v3s = new float[targetObjs.Length];
 
-             for (int i = 0; i < v3s.Length; i++)
 
-             {
 
-                 v3s[i] = 1;
 
-             }
 
-         }
 
-         openValues = v3s;
 
-         switch (aniType)
 
-         {
 
-             case AniType.buYuan:
 
-                 for (int i = 0; i < targetObjs.Length; i++)
 
-                 {
 
-                     int tempIndex = i;
 
-                     targetObjs[i].transform.localPosition = oriV3[tempIndex];
 
-                     targetObjs[i].transform.DOLocalMoveZ(1.2f*openValues[tempIndex], speed);
 
-                     //Debug.Log($"{targetObjs[i].name}:{openValues[tempIndex]}");
 
-                 }
 
-                 break;
 
-             case AniType.taoKou:
 
-                 for (int i = 0; i < targetObjs.Length; i++)
 
-                 {
 
-                     int tempIndex = i;
 
-                     targetObjs[i].transform.localEulerAngles = oriV3[tempIndex];
 
-                     targetObjs[i].transform.DOLocalRotate(new Vector3(-45.0f,0,0) * (openValues[tempIndex]/5.0f), speed);
 
-                 }
 
-                 break;
 
-         }
 
-     }
 
-     public void Ani_Off()
 
-     {
 
-         switch (aniType)
 
-         {
 
-             case AniType.buYuan:
 
-                 for (int i = 0; i < targetObjs.Length; i++)
 
-                 {
 
-                     int tempIndex = i;
 
-                     targetObjs[i].transform.localPosition = oriV3[tempIndex] + new Vector3(0, 0, 1.2f);
 
-                     targetObjs[i].transform.DOLocalMoveZ(0, speed);
 
-                 }
 
-                 break;
 
-             case AniType.taoKou:
 
-                 for (int i = 0; i < targetObjs.Length; i++)
 
-                 {
 
-                     int tempIndex = i;
 
-                     targetObjs[i].transform.localEulerAngles = new Vector3(-45.0f,0,0)*(openValues[tempIndex]/5.0f);
 
-                     targetObjs[i].transform.DOLocalRotate(Vector3.zero, speed);
 
-                 }
 
-                 break;
 
-         }
 
-     }
 
- }
 
 
  |