Parcourir la source

【+】
1.内部结构功能完善

lxd il y a 3 semaines
Parent
commit
f91f58ac9b
100 fichiers modifiés avec 1220 ajouts et 426 suppressions
  1. 511 20
      ModeDisplay/Assets/Scenes/内部结构拆解动画/01.500kV_变压器-ODFPS型.unity
  2. 11 1
      ModeDisplay/Assets/Scripts/AudioHelper.cs
  3. 8 0
      ModeDisplay/Assets/Scripts/MoveItem.meta
  4. 0 0
      ModeDisplay/Assets/Scripts/MoveItem/MoveItem.cs
  5. 0 0
      ModeDisplay/Assets/Scripts/MoveItem/MoveItem.cs.meta
  6. 384 0
      ModeDisplay/Assets/Scripts/MoveItem/MoveItemManager.cs
  7. 0 0
      ModeDisplay/Assets/Scripts/MoveItem/MoveItemManager.cs.meta
  8. 0 200
      ModeDisplay/Assets/Scripts/MoveItemManager.cs
  9. 1 1
      ModeDisplay/Assets/Scripts/PrincipleUIControl.cs
  10. 0 192
      ModeDisplay/Assets/Scripts/SimpleMoveItem.cs
  11. 0 11
      ModeDisplay/Assets/Scripts/SimpleMoveItem.cs.meta
  12. 4 1
      ModeDisplay/Assets/Scripts/UI/QFramework/PrinciplePanel.cs
  13. BIN
      ModeDisplay/Assets/StreamingAssets/500kV_变压器-ODFPS型.xlsx
  14. 7 0
      ModeDisplay/Assets/StreamingAssets/500kV_变压器-ODFPS型.xlsx.meta
  15. 0 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解.meta
  16. 0 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型.meta
  17. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装主储油柜.mp3
  18. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装主储油柜.mp3.meta
  19. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连气管.mp3
  20. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连气管.mp3.meta
  21. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连管.mp3
  22. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连管.mp3.meta
  23. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装冷却器.mp3
  24. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装冷却器.mp3.meta
  25. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装分接开关.mp3
  26. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装分接开关.mp3.meta
  27. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座.mp3
  28. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座.mp3.meta
  29. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座法兰.mp3
  30. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座法兰.mp3.meta
  31. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装压力释放阀.mp3
  32. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装压力释放阀.mp3.meta
  33. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装取气盒.mp3
  34. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装取气盒.mp3.meta
  35. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装呼吸器.mp3
  36. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装呼吸器.mp3.meta
  37. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装器身.mp3
  38. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装器身.mp3.meta
  39. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装均压环.mp3
  40. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装均压环.mp3.meta
  41. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管上瓷件.mp3
  42. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管上瓷件.mp3.meta
  43. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管下瓷件.mp3
  44. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管下瓷件.mp3.meta
  45. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管安装法兰.mp3
  46. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管安装法兰.mp3.meta
  47. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封垫.mp3
  48. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封垫.mp3.meta
  49. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封盖.mp3
  50. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封盖.mp3.meta
  51. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封罩.mp3
  52. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封罩.mp3.meta
  53. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装导电杆.mp3
  54. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装导电杆.mp3.meta
  55. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接地套管.mp3
  56. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接地套管.mp3.meta
  57. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线板.mp3
  58. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线板.mp3.meta
  59. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线端子.mp3
  60. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线端子.mp3.meta
  61. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装放气螺栓.mp3
  62. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装放气螺栓.mp3.meta
  63. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装末屏.mp3
  64. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装末屏.mp3.meta
  65. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装机构箱.mp3
  66. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装机构箱.mp3.meta
  67. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油位表.mp3
  68. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油位表.mp3.meta
  69. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕人孔盖板.mp3
  70. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕人孔盖板.mp3.meta
  71. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕及弹簧.mp3
  72. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕及弹簧.mp3.meta
  73. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕支架.mp3
  74. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕支架.mp3.meta
  75. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油泵管.mp3
  76. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油泵管.mp3.meta
  77. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油流继电器.mp3
  78. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油流继电器.mp3.meta
  79. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油温度指示控制器.mp3
  80. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油温度指示控制器.mp3.meta
  81. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装潜油泵.mp3
  82. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装潜油泵.mp3.meta
  83. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装瓦斯继电器.mp3
  84. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装瓦斯继电器.mp3.meta
  85. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装突发压力继电器.mp3
  86. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装突发压力继电器.mp3.meta
  87. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装绕阻线圈.mp3
  88. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装绕阻线圈.mp3.meta
  89. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装胶囊.mp3
  90. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装胶囊.mp3.meta
  91. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装连接端子.mp3
  92. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装连接端子.mp3.meta
  93. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铁芯.mp3
  94. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铁芯.mp3.meta
  95. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铭牌.mp3
  96. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铭牌.mp3.meta
  97. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风冷控制箱.mp3
  98. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风冷控制箱.mp3.meta
  99. BIN
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风扇.mp3
  100. 7 0
      ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风扇.mp3.meta

Fichier diff supprimé car celui-ci est trop grand
+ 511 - 20
ModeDisplay/Assets/Scenes/内部结构拆解动画/01.500kV_变压器-ODFPS型.unity


+ 11 - 1
ModeDisplay/Assets/Scripts/AudioHelper.cs

@@ -133,7 +133,7 @@ public class AudioHelper
     /// <param name="_folderName"></param>
     /// <param name="_audioName"></param>
     /// <returns></returns>
-    public static IEnumerator LoadSpecifiedAudioFile(string _folderName, string _audioName)
+    public static IEnumerator LoadSpecifiedAudioFile(string _folderName, string _audioName,Action<float> audioClipLengthCall = null,Action audioPlayFinishCall = null)
     {
         // 合并完整路径信息
         string audioPath = PathHelper.CombineFilePath(PathHelper.m_ReadOnlyPath, _folderName, _audioName + ".mp3");
@@ -154,6 +154,14 @@ public class AudioHelper
                     // 获取到 AudioClip
                     AudioClip audioClip = DownloadHandlerAudioClip.GetContent(webRequest);
 
+                    if (audioClip != null)
+                    {
+                        audioClipLengthCall?.Invoke(audioClip.length);
+                    }else
+                    {
+                        audioClipLengthCall?.Invoke(0);
+                    }
+
                     if (m_CurrentAudoiSource == null)
                     {
                         GetAudioComponent();
@@ -171,6 +179,8 @@ public class AudioHelper
                         m_CurrentAudoiSource.Stop();
                         m_CurrentAudoiSource.Play();
 
+                        yield return new WaitForSeconds(audioClip.length);
+                        audioPlayFinishCall?.Invoke();
                     }
                 }
             }

+ 8 - 0
ModeDisplay/Assets/Scripts/MoveItem.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e0da534af564e44a8a3a4512b442792
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 0
ModeDisplay/Assets/Scripts/MoveItem.cs → ModeDisplay/Assets/Scripts/MoveItem/MoveItem.cs


+ 0 - 0
ModeDisplay/Assets/Scripts/MoveItem.cs.meta → ModeDisplay/Assets/Scripts/MoveItem/MoveItem.cs.meta


+ 384 - 0
ModeDisplay/Assets/Scripts/MoveItem/MoveItemManager.cs

@@ -0,0 +1,384 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Sirenix.OdinInspector;
+using System;
+using UnityEngine.UI;
+using System.IO;
+using System.Linq;
+using QFramework;
+
+public class MoveItemManager : MonoBehaviour
+{
+    [TabGroup("配置相关")]
+    [LabelText("设备名称")]
+    [ValidateInput("IsValid")]
+    public string deviceName;
+
+    private bool IsValid(string value)
+    {
+        return !string.IsNullOrEmpty(value);
+    }
+    [TabGroup("配置相关")]
+    [TableList]
+    public List<MoveItemInfo> moveItemInfos;
+    [TabGroup("配置相关")]
+    [LabelText("播完反向播放")]
+    public bool m_Reverse;
+
+    
+    [TabGroup("UI相关")]
+    [LabelText("播放按钮")]
+    public Button m_PlayButton;
+    [TabGroup("UI相关")]
+    [LabelText("关闭按钮")]
+    public Button m_CloseButton;
+
+    private void Awake()
+    {
+        ResKit.Init();
+    }
+
+    private void Start()
+    {
+        m_PlayButton?.onClick.AddListener(OnPlayButtonClick);
+
+        m_CloseButton?.onClick.AddListener(OnCloseBtnClick);
+
+        PlayMoveItemByIndex(0);
+
+        UIKit.OpenPanel<PrinciplePanel>(new PrinciplePanelData() { TitleName = deviceName});
+    }
+
+    /// <summary>
+    /// 正向播放
+    /// </summary>
+    /// <param name="index"></param>
+    public void PlayMoveItemByIndex(int index = 0)
+    {
+        StopAllCoroutines();
+
+        Debug.Log("播放" + moveItemInfos[index].moveItem.name);
+
+        StartCoroutine(AudioHelper.LoadSpecifiedAudioFile("Config/Audios/内部结构拆解/" + deviceName, "拆下" + moveItemInfos[index].moveItem.name,
+        len =>
+        {
+            if (len > moveItemInfos[index].moveItem.m_Duration)
+            {
+                Debug.Log("音频长");
+                useAudioCtrl = true;
+            }else
+            {
+                Debug.Log("动画长");
+                useAudioCtrl = false;
+            }
+        },
+        () =>
+        {
+            if (useAudioCtrl)
+            {
+                Debug.Log("音频回调");
+                OnPlayMoveItemByIndexCallBack(index);
+            }
+
+        }));
+
+        StartCoroutine(MovePathByItem(moveItemInfos[index], false,
+        () =>
+        {
+            if (!useAudioCtrl)
+            {
+                Debug.Log("动画回调");
+                OnPlayMoveItemByIndexCallBack(index);
+            }
+        }));
+    }
+
+    /// <summary>
+    /// 正向播放完成一条回调
+    /// </summary>
+    /// <param name="index"></param>
+    public void  OnPlayMoveItemByIndexCallBack(int index)
+    {
+        moveItemInfos[index].moveItem.gameObject.SetActive(false);
+        moveItemInfos[index].finish = true;
+
+        if (index + 1 > moveItemInfos.Count - 1)
+        {
+            Debug.Log("正播播放序列完成");
+            if (m_Reverse)
+            {
+                PlayMoveItemByReverseIndex(moveItemInfos.Count - 1);
+            }
+        }
+        else 
+        {
+            PlayMoveItemByIndex(index + 1);
+        }
+    }
+
+    /// <summary>
+    /// 使用音频控制结束
+    /// </summary>
+    bool useAudioCtrl;
+
+    /// <summary>
+    /// 反向播放
+    /// </summary>
+    /// <param name="index"></param>
+    public void PlayMoveItemByReverseIndex(int index)
+    {
+        StopAllCoroutines();
+
+        Debug.Log("反向播放" + moveItemInfos[index].moveItem.name);
+
+        StartCoroutine(AudioHelper.LoadSpecifiedAudioFile("Config/Audios/内部结构拆解/" + deviceName, "安装" + moveItemInfos[index].moveItem.name,len => 
+        {
+            if (len > moveItemInfos[index].moveItem.m_Duration)
+            {
+                Debug.Log("音频长");
+                useAudioCtrl = true;
+            }
+            else 
+            {
+                Debug.Log("动画长");
+                useAudioCtrl = false;
+            }
+        },
+        () => 
+        {
+            if (useAudioCtrl)
+            {
+                Debug.Log("音频回调");
+                OnPlayMoveItemByReverseIndexCallBack(index);
+            }
+        }));
+
+        StartCoroutine(MovePathByItem(moveItemInfos[index], true,
+        () =>
+        {
+            if (!useAudioCtrl)
+            {
+                Debug.Log("动画回调");
+                OnPlayMoveItemByReverseIndexCallBack(index);
+            }
+        }));
+    }
+
+    /// <summary>
+    /// 反向播放完成一条回调
+    /// </summary>
+    /// <param name="index"></param>
+    public void OnPlayMoveItemByReverseIndexCallBack(int index)
+    {
+        moveItemInfos[index].finish = false;
+
+        if (index - 1 < 0)
+        {
+            Debug.Log("反向播放序列完成");
+        }
+        else
+        {
+            PlayMoveItemByReverseIndex(index - 1);
+        }
+    }
+
+    IEnumerator MovePathByItem(MoveItemInfo moveItemInfo, bool isReverse, Action finishedCallBack = null)
+    {
+        float timer = 0;
+        float lerp = 0;
+
+        while (timer < moveItemInfo.moveItem.m_Duration)
+        {
+            MoveItem moveItem = moveItemInfo.moveItem;
+
+            moveItem.gameObject.SetActive(true);
+            moveItem.OpenHighter(true);
+
+            lerp = isReverse? (1 - timer / moveItem.m_Duration) :timer / moveItem.m_Duration;
+
+            if (moveItem.m_UserGlobalDirection)
+            {
+               moveItemInfo.moveItem.transform.position = Vector3.Lerp(moveItemInfo.initPosition, 
+                   moveItemInfo.initPosition + moveItem.m_Direction, lerp);
+            }
+            else
+            {
+               moveItemInfo.moveItem.transform.position = Vector3.Lerp(moveItemInfo.initPosition, 
+                   moveItemInfo.initPosition + moveItem.transform.TransformDirection(moveItem.m_Direction), lerp);
+            }
+
+            timer += Time.deltaTime;
+
+            yield return new WaitForEndOfFrame();
+        }
+        moveItemInfo.moveItem?.OpenHighter(false);
+        finishedCallBack.Invoke();
+    }
+
+    /// <summary>
+    /// 获取所有的组件
+    /// </summary>
+    [TabGroup("配置相关")]
+    [Button("获取所有的组件")]
+    [GUIColor("GetColor")]
+    private void GetAllMoveItems()
+    {
+        moveItemInfos = new List<MoveItemInfo>();
+
+        MoveItem[] moveItems = transform.GetComponentsInChildren<MoveItem>();
+
+        foreach (var item in moveItems)
+        {
+            MoveItemInfo moveItemInfo = new MoveItemInfo();
+
+            moveItemInfo.moveItem = item;
+
+            moveItemInfo.initPosition = item.transform.position;
+
+            moveItemInfos.Add(moveItemInfo);
+        }
+    }
+
+    private Color GetColor()
+    {
+        if (moveItemInfos.Count == 0 || moveItemInfos == null)
+        {
+            return Color.red;
+        }else
+        {
+            return Color.green;
+        }
+    }
+
+    /// <summary>
+    /// 播放按钮点击
+    /// </summary>
+    private void OnPlayButtonClick()
+    {
+        if (Time.timeScale == 0)
+        {
+            Time.timeScale = 1;
+
+            if (m_PlayButton)
+            {
+                m_PlayButton.transform.Find("Text").GetComponent<Text>().text = "暂停";
+            }
+
+            AudioHelper.AudioPlay();
+
+        }
+        else
+        {
+            Time.timeScale = 0;
+
+            if (m_PlayButton)
+            {
+                m_PlayButton.transform.Find("Text").GetComponent<Text>().text = "播放";
+            }
+
+            AudioHelper.AudioPause();
+        } 
+    }
+
+    private void OnCloseBtnClick()
+    {
+        Application.Quit();
+    }
+
+    /// <summary>
+    /// 导出部件数据
+    /// </summary>
+    [TabGroup("工具相关")]
+    [Button("导出所有部件名称到表格")]
+    private void ExportPartData()
+    {
+        List<MoveData> partMarkNames = new List<MoveData>();
+
+        foreach (var item in moveItemInfos)
+        {
+            MoveData partMarkName = new MoveData();
+            partMarkName.moveName = "拆下" + item.moveItem.name;
+
+            if (partMarkNames.Find(t => t.moveName == partMarkName.moveName) == null) partMarkNames.Add(partMarkName);
+        }
+
+        foreach (var item in moveItemInfos)
+        {
+            MoveData partMarkName = new MoveData();
+            partMarkName.moveName = "安装" + item.moveItem.name;
+
+            if (partMarkNames.Find(t => t.moveName == partMarkName.moveName) == null) partMarkNames.Add(partMarkName);
+        }
+
+        ExcelHelper.WriteInfoToExcel<MoveData>(Application.streamingAssetsPath + "/" + deviceName + GlobalConfig.excelSuffix, partMarkNames);
+    }
+
+    /// <summary>
+    /// 重命名音频名称
+    /// </summary>
+    [TabGroup("工具相关")]
+    [Button("重命名音频名称")]
+    private void ReNameAudioClipName()
+    {
+        //表格路径
+        string tmpExcelPath = PathHelper.CombineFilePath(PathHelper.m_ReadOnlyPath,deviceName) + GlobalConfig.excelSuffix;
+
+        //音频路径完整路径信息
+        string audioPath = PathHelper.CombineFilePath(PathHelper.m_ReadOnlyPath, "Config/Audios/内部结构拆解/" + deviceName);
+
+        List<MoveData> tmpMoveDatas = ExcelHelper.ReadInfoFromExcel<MoveData>(tmpExcelPath,1);
+
+        DirectoryInfo directoryInfo = new DirectoryInfo(audioPath);
+
+        FileInfo[] files = directoryInfo.GetFiles("*.mp3");
+
+        FileInfo[] sortedFiles = files.OrderBy(f => int.Parse(Path.GetFileNameWithoutExtension(f.FullName))).ToArray();
+
+        if (tmpMoveDatas.Count != sortedFiles.Length)
+        {
+            Debug.LogError("重命名失败");
+        }
+        else
+        {
+            for (int i = 0; i < tmpMoveDatas.Count; i++)
+            {
+                string newPath = Path.Combine(directoryInfo.FullName, tmpMoveDatas[i].moveName) + ".mp3";
+
+                sortedFiles[i].MoveTo(newPath);
+            }
+        }
+
+    }
+}
+
+[Serializable]
+public class MoveItemInfo 
+{
+    [GUIColor("FinishedStateColor")]
+    public MoveItem moveItem;
+    [LabelText("父级对象")]
+    /// <summary>
+    /// 初始化位置
+    /// </summary>
+    [HideInInspector]
+    public Vector3 initPosition;
+    [LabelText("是否完成")]
+    public bool finish;
+
+    private Color FinishedStateColor()
+    {
+        if (finish)
+        {
+            return new Color(0.7f, 1f, 0.7f);
+        }
+
+        return GUI.color;
+    }
+
+}
+
+public class MoveData
+{
+    public string moveName;
+}

+ 0 - 0
ModeDisplay/Assets/Scripts/MoveItemManager.cs.meta → ModeDisplay/Assets/Scripts/MoveItem/MoveItemManager.cs.meta


+ 0 - 200
ModeDisplay/Assets/Scripts/MoveItemManager.cs

@@ -1,200 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using Sirenix.OdinInspector;
-using System;
-using UnityEngine.UI;
-
-public class MoveItemManager : MonoBehaviour
-{
-    [TableList]
-    public List<MoveItemInfo> moveItemInfos;
-
-    [LabelText("播完反向播放")]
-    public bool m_Reverse;
-
-    public Button m_PlayButton;
-
-    public Button m_CloseButton;
-
-    private void Start()
-    {
-        m_PlayButton?.onClick.AddListener(OnPlayButtonClick);
-
-        m_CloseButton?.onClick.AddListener(OnCloseBtnClick);
-
-        PlayMoveItemByIndex(0);
-    }
-
-    private bool runing;
-
-    private bool Runing
-    {
-        set
-        {
-            runing = value;
-        }
-
-        get
-        {
-            return runing;
-        }
-    }
-
-    /// <summary>
-    /// 
-    /// </summary>
-    /// <param name="index">index 从1开始</param>
-    public void PlayMoveItemByIndex(int index = 0)
-    {
-        if (index > moveItemInfos.Count - 1)
-        {
-            Debug.Log("正播播放序列完成");
-            if (m_Reverse)
-            {
-                PlayMoveItemByReverseIndex(moveItemInfos.Count - 1);
-            }
-        }
-        else
-        {
-            StopAllCoroutines();
-            Debug.Log("播放" + moveItemInfos[index].moveItem.name);
-            StartCoroutine(MovePathByItem(moveItemInfos[index], false, () => 
-            {
-                moveItemInfos[index].moveItem.gameObject.SetActive(false);
-                PlayMoveItemByIndex(index + 1);
-            }));
-        }
-    }
-
-    public void PlayMoveItemByReverseIndex(int index)
-    {
-        if (index < 0)
-        {
-            Debug.Log("反向播放序列完成");
-        }
-        else
-        {
-            StopAllCoroutines();
-            Debug.Log("反向播放" + moveItemInfos[index].moveItem.name);
-            StartCoroutine(MovePathByItem(moveItemInfos[index], true, () => 
-            {
-                PlayMoveItemByReverseIndex(index - 1);
-            }));
-        }
-    }
-
-    IEnumerator MovePathByItem(MoveItemInfo moveItemInfo, bool isReverse, Action finishedCallBack = null)
-    {
-        float timer = 0;
-        float lerp = 0;
-
-        while (timer < moveItemInfo.moveItem.m_Duration)
-        {
-            MoveItem moveItem = moveItemInfo.moveItem;
-
-            moveItem.gameObject.SetActive(true);
-            moveItem.OpenHighter(true);
-
-            lerp = isReverse? (1 - timer / moveItem.m_Duration) :timer / moveItem.m_Duration;
-
-            if (moveItem.m_UserGlobalDirection)
-            {
-               moveItemInfo.moveItem.transform.position = Vector3.Lerp(moveItemInfo.initPosition, 
-                   moveItemInfo.initPosition + moveItem.m_Direction, lerp);
-            }
-            else
-            {
-               moveItemInfo.moveItem.transform.position = Vector3.Lerp(moveItemInfo.initPosition, 
-                   moveItemInfo.initPosition + moveItem.transform.TransformDirection(moveItem.m_Direction), lerp);
-            }
-
-            timer += Time.deltaTime;
-
-            yield return new WaitForEndOfFrame();
-        }
-        moveItemInfo.finish = true;
-        moveItemInfo.moveItem?.OpenHighter(false);
-        finishedCallBack.Invoke();
-    }
-
-    /// <summary>
-    /// 获取所有的组件
-    /// </summary>
-    [Button("获取所有的组件")]
-    private void GetAllMoveItems()
-    {
-        moveItemInfos = new List<MoveItemInfo>();
-
-        MoveItem[] moveItems = transform.GetComponentsInChildren<MoveItem>();
-
-        foreach (var item in moveItems)
-        {
-            MoveItemInfo moveItemInfo = new MoveItemInfo();
-
-            moveItemInfo.moveItem = item;
-
-            moveItemInfo.initPosition = item.transform.position;
-
-            moveItemInfos.Add(moveItemInfo);
-        }
-    }
-
-    /// <summary>
-    /// 播放按钮点击
-    /// </summary>
-    private void OnPlayButtonClick()
-    {
-        if (Time.timeScale == 0)
-        {
-            Time.timeScale = 1;
-
-            if (m_PlayButton)
-            {
-                m_PlayButton.transform.Find("Text").GetComponent<Text>().text = "暂停";
-            }
-
-        }
-        else
-        {
-            Time.timeScale = 0;
-
-            if (m_PlayButton)
-            {
-                m_PlayButton.transform.Find("Text").GetComponent<Text>().text = "播放";
-            }
-
-        } 
-    }
-
-    private void OnCloseBtnClick()
-    {
-        Application.Quit();
-    }
-}
-
-[Serializable]
-public class MoveItemInfo 
-{
-    [GUIColor("FinishedStateColor")]
-    public MoveItem moveItem;
-    [LabelText("父级对象")]
-    /// <summary>
-    /// 初始化位置
-    /// </summary>
-    [HideInInspector]
-    public Vector3 initPosition;
-    [LabelText("是否完成")]
-    public bool finish;
-
-    private Color FinishedStateColor()
-    {
-        if (finish)
-        {
-            return new Color(0.7f, 1f, 0.7f);
-        }
-
-        return GUI.color;
-    }
-
-}

+ 1 - 1
ModeDisplay/Assets/Scripts/PrincipleUIControl.cs

@@ -13,7 +13,7 @@ public class PrincipleUIControl : MonoBehaviour
         instance = this;
         ResKit.Init();
 
-        UIKit.OpenPanel<PrinciplePanel>();
+        UIKit.OpenPanel<PrinciplePanel>(new PrinciplePanelData() {TitleName = PrincipleName });
     }
 
     // Update is called once per frame

+ 0 - 192
ModeDisplay/Assets/Scripts/SimpleMoveItem.cs

@@ -1,192 +0,0 @@
-using Sirenix.OdinInspector;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEditor;
-using UnityEngine;
-
-[ExecuteInEditMode]
-public class SimpleMoveItem : SerializedMonoBehaviour
-{
-    [DictionaryDrawerSettings()]
-    public Dictionary<GameObject, Transform> moveObjs = new Dictionary<GameObject, Transform>();
-
-    [LabelText("相对移动位置")]
-    public Vector3 localMovePos = new Vector3(0, 0, 0);
-    [LabelText("相对旋转角度")]
-    public float rotAngle = 0;
-    [LabelText("运行时长")]
-    public float duration = 1;
-
-    public void SetInitState(bool reverse)
-    {
-        foreach (var item in moveObjs)
-        {
-            if (!reverse)
-            {
-                item.Key.transform.position = item.Value.position;
-                item.Key.transform.rotation = item.Value.rotation;
-            }
-            else
-            {
-                item.Key.transform.rotation = item.Value.rotation;
-                item.Key.transform.RotateAround(item.Value.position, item.Value.TransformDirection(localMovePos), rotAngle);
-                item.Key.transform.position = item.Value.position + item.Value.TransformDirection(localMovePos);
-            }
-        }
-    }
-    public void SetFinishedState(bool reverse)
-    {
-        foreach (var item in moveObjs)
-        {
-            if (reverse)
-            {
-                item.Key.transform.position = item.Value.position;
-                item.Key.transform.rotation = item.Value.rotation;
-            }
-            else
-            {
-                item.Key.transform.rotation = item.Value.rotation;
-                item.Key.transform.RotateAround(item.Value.position, item.Value.TransformDirection(localMovePos), rotAngle);
-                item.Key.transform.position = item.Value.position + item.Value.TransformDirection(localMovePos);
-            }
-        }
-    }
-
-    public void SetKeyValue(GameObject target, float lerp)
-    {
-        lerp = Mathf.Clamp(lerp, 0, 1);
-        if (moveObjs.ContainsKey(target))
-        {
-            var item = moveObjs[target];
-            target.transform.position = Vector3.Lerp(item.position, item.position + item.TransformDirection(localMovePos), lerp);
-            target.transform.rotation = item.rotation;
-
-            target.transform.RotateAround(item.position, item.TransformDirection(localMovePos), rotAngle * lerp);
-        }
-    }
-
-#if UNITY_EDITOR
-
-    [FoldoutGroup("快捷编辑", Order = -1)]
-    [Button("刷新物体及锚点")]
-    public void AddSelectObj()
-    {
-        if (Selection.gameObjects.Length == 0) return;
-
-        foreach (var item in moveObjs)
-        {
-            if (item.Value != null)
-            {
-                DestroyImmediate(item.Value.gameObject);
-            }
-        }
-
-        moveObjs.Clear();
-
-        foreach (var item in Selection.gameObjects)
-        {
-            GameObject tmpItem = new GameObject("锚点_" + item.gameObject.name);
-            tmpItem.transform.parent = transform.parent;
-            tmpItem.transform.position = item.transform.position;
-            tmpItem.transform.rotation = item.transform.rotation;
-
-            moveObjs.Add(item, tmpItem.transform);
-        }
-    }
-
-    [HideInInspector]
-    public bool isShowPath = true;
-    public bool ShowPath { get { return isShowPath; } }
-
-
-    private void OnDrawGizmos()
-    {
-        DrawPathLine();
-    }
-
-    public void DrawPathLine()
-    {
-        if (!isShowPath) return;
-
-        foreach (var item in moveObjs)
-        {
-            Gizmos.color = Color.yellow;
-            Gizmos.DrawLine(item.Value.position, item.Value.position + item.Value.TransformDirection(localMovePos));
-        }
-    }
-    /// <summary>
-    /// 销毁所有子级信息
-    /// </summary>
-    /// <param name="item"></param>
-    private void DestroyChild(Transform item)
-    {
-        if (item.childCount == 0) return;
-
-        for (int i = item.childCount - 1; i >= 0; i--)
-        {
-            DestroyImmediate(item.GetChild(i).gameObject);
-        }
-    }
-
-    [Button("Play")]
-    public void Play()
-    {
-        isPlaying = true;
-        timer = 0;
-    }
-
-    [HideInInspector]
-    public bool isPlaying;
-
-    private void OnEnable()
-    {
-        EditorApplication.update += EditorUpdate;
-
-        Selection.selectionChanged += SelectionChanged;
-    }
-    private void OnDisable()
-    {
-        EditorApplication.update -= EditorUpdate;
-        Selection.selectionChanged -= SelectionChanged;
-    }
-
-    private float timer = 0;
-    void EditorUpdate()
-    {
-        if (!isPlaying) return;
-
-        foreach (var item in moveObjs)
-        {
-            item.Key.transform.position = Vector3.Lerp(item.Value.position, item.Value.position + item.Value.TransformDirection(localMovePos), timer / duration);
-            item.Key.transform.rotation = item.Value.rotation;
-
-            item.Key.transform.RotateAround(item.Value.position, item.Value.TransformDirection(localMovePos), rotAngle * timer / duration);
-        }
-        timer += Time.deltaTime;
-
-        if (timer > duration)
-        {
-            timer = 0;
-            isPlaying = false;
-            foreach (var item in moveObjs)
-            {
-                item.Key.transform.position = item.Value.position;
-                item.Key.transform.rotation = item.Value.rotation;
-            }
-        }
-    }
-
-    void SelectionChanged()
-    {
-        if (Selection.gameObjects.Contains(this.gameObject))
-        {
-            isShowPath = true;
-        }
-        else
-        {
-            isShowPath = false;
-        }
-    }
-#endif
-}

+ 0 - 11
ModeDisplay/Assets/Scripts/SimpleMoveItem.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3b77e9ff8f9f1b245b8f057d574c4e8c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 4 - 1
ModeDisplay/Assets/Scripts/UI/QFramework/PrinciplePanel.cs

@@ -6,6 +6,7 @@ namespace QFramework
 {
 	public class PrinciplePanelData : UIPanelData
 	{
+		public string TitleName;
 	}
 	public partial class PrinciplePanel : UIPanel
 	{
@@ -18,7 +19,9 @@ namespace QFramework
 		{
 			mData = uiData as PrinciplePanelData ?? new PrinciplePanelData();
 			// please add init code here
-			OperationTitle_Shadow.text = OperationTitle.text = PrincipleUIControl.instance.PrincipleName;
+
+			OperationTitle_Shadow.text = OperationTitle.text = mData.TitleName;
+
 			CloseBtn.onClick.AddListener(() => Application.Quit());
 
 		}

BIN
ModeDisplay/Assets/StreamingAssets/500kV_变压器-ODFPS型.xlsx


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/500kV_变压器-ODFPS型.xlsx.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1333e8bbd16579e4f9c669f2af98c511
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/动画拆解.meta → ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解.meta


+ 0 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/动画拆解/500kV_变压器-ODFPS型.meta → ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型.meta


BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装主储油柜.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装主储油柜.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c1e63945dcb5ecf4e98ed481a83b62cf
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连气管.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连气管.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 27983acbf3dbf2b4bbbcf92d2e2d05bb
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连管.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装储油柜连管.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3c5d0774626dc7449ac750b8a119fa90
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装冷却器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装冷却器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 92ef05abdb4be514482d63ea118ea687
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装分接开关.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装分接开关.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 265061e55ce2038458498c6c94142831
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 44ed3b81f16c86548a8b35528007cbbb
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座法兰.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装升高座法兰.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bf07340c1248dcf478375f2a4f0bef3e
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装压力释放阀.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装压力释放阀.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ac6d982e41f5e1249acf185e80418374
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装取气盒.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装取气盒.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 191d43f984d9ebc458a37c4c9316403f
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装呼吸器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装呼吸器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6c7ff20ee9b722d45944d2ede7837dfa
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装器身.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装器身.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a8ebd5327181d064bb65e7446e48aaff
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装均压环.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装均压环.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4f88832f19d63ee469435a89b1486649
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管上瓷件.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管上瓷件.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8dd8853a66f14a34f8a7aee28278e840
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管下瓷件.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管下瓷件.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: da6d8dc095cc6be47bb6c8414de0a814
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管安装法兰.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装套管安装法兰.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7754829e06641a14ba1499e5fb22911e
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封垫.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封垫.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5c15b6b4bb51bb849a4feaf49b098d3e
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封盖.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封盖.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7c1ace3d81de48d42991d15373c806b5
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封罩.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装密封罩.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5fe1c52719f188d40966a5cc79a9ba88
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装导电杆.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装导电杆.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 15902b435ce280f49a70d498fc92e564
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接地套管.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接地套管.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6b0d44f1a0bc5f148b4e784eced87f9b
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线板.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线板.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f5d8a915f019ad2489aa90eaa75e762c
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线端子.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装接线端子.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dda2e5304dfbb7844b3edac256457063
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装放气螺栓.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装放气螺栓.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cdc645c60039f8145835f0698ff42b3f
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装末屏.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装末屏.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a6091aa17e8dc2145a847033ceb44ad2
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装机构箱.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装机构箱.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c959043423d7f174b961e656105c0ccc
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油位表.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油位表.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0c2c5174e36102c49896d77a54b8d563
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕人孔盖板.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕人孔盖板.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7f00c3fdcb3d4c148bed02593325a4df
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕及弹簧.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕及弹簧.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c385ba19fe5d99144ae693397e10056f
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕支架.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油枕支架.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0f3821475c64fdb4e89ab631857665a3
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油泵管.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油泵管.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d270e8b87edf3534e80d191e599d0586
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油流继电器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油流继电器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6f4d48a3dc72b0645af8232d7d68457a
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油温度指示控制器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装油温度指示控制器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 258148b14ff15b944a1376c35537f2b9
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装潜油泵.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装潜油泵.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b87b01b4028fd2a4591a68824ea97442
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装瓦斯继电器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装瓦斯继电器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c584108043c68de4e960b03de9bb521a
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装突发压力继电器.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装突发压力继电器.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8f78bb53d5c062b4797c853a6954d89d
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装绕阻线圈.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装绕阻线圈.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e6c75523e481e7445aa2ce628f723f41
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装胶囊.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装胶囊.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 534bd37c120d8214b814e4edc72f0cf4
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装连接端子.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装连接端子.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2660f765dd7c7994e9bc0ba94e48b964
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铁芯.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铁芯.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f8a33ffcb983352468840b60640a510b
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铭牌.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装铭牌.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9bf5c557ebb5aec4c94a7733c6815b3e
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风冷控制箱.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风冷控制箱.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5e93903d6dd22df4391af2dc3c288912
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风扇.mp3


+ 7 - 0
ModeDisplay/Assets/StreamingAssets/Config/Audios/内部结构拆解/500kV_变压器-ODFPS型/安装风扇.mp3.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e7ccff7270b9a0740a7b326b3b09a0e1
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff