Explorar el Código

【+】
1.设备结构UI点击名称设备其余设备对应取消勾选/隐藏功能添加

lxd hace 2 semanas
padre
commit
32424211b0

+ 367 - 0
ModeDisplay/Assets/GameAssets/06.UIPrefabs/ShowPartNamePanel.prefab

@@ -0,0 +1,367 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2291580810621939277
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4062138397462611899}
+  - component: {fileID: 4910951690757595332}
+  - component: {fileID: 6396241076116324834}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4062138397462611899
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2291580810621939277}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 318974701001595778}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 1252, y: 46}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4910951690757595332
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2291580810621939277}
+  m_CullTransparentMesh: 0
+--- !u!114 &6396241076116324834
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2291580810621939277}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: e68bd587d4614bc468b6e2bdbbfe21b6, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &3856721687085646727
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4062974542048353521}
+  - component: {fileID: 6754851428351568030}
+  - component: {fileID: 8471168093831016683}
+  - component: {fileID: 7211634054802530674}
+  - component: {fileID: 2154928014383226535}
+  m_Layer: 5
+  m_Name: SubTitlesText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4062974542048353521
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3856721687085646727}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 318974701001595778}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -0.000015258789, y: 0}
+  m_SizeDelta: {x: 1136.5739, y: 60.709854}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6754851428351568030
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3856721687085646727}
+  m_CullTransparentMesh: 0
+--- !u!114 &8471168093831016683
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3856721687085646727}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 1acaacc45176e17419cae61a68eb2f1d, type: 3}
+    m_FontSize: 24
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u8FD9\u662F\u5B57\u5E55"
+--- !u!114 &7211634054802530674
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3856721687085646727}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: SubTitlesText
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Text
+--- !u!114 &2154928014383226535
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3856721687085646727}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0, g: 0, b: 0, a: 0.4392157}
+  m_EffectDistance: {x: 1, y: -3.2}
+  m_UseGraphicAlpha: 1
+--- !u!1 &6421478191907933078
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1641346402271870707}
+  - component: {fileID: 8686675686844218047}
+  - component: {fileID: 5650272247679079348}
+  - component: {fileID: -6703682396695607829}
+  m_Layer: 5
+  m_Name: ShowPartNamePanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1641346402271870707
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6421478191907933078}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 318974701001595778}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8686675686844218047
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6421478191907933078}
+  m_CullTransparentMesh: 0
+--- !u!114 &5650272247679079348
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6421478191907933078}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 0
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &-6703682396695607829
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6421478191907933078}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 01dfba46dc7ca1247aa0f3846ed5d121, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  SubTitlesText: {fileID: 8471168093831016683}
+--- !u!1 &8747131942490840359
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 318974701001595778}
+  - component: {fileID: 2937788236398388303}
+  - component: {fileID: 1339259183278071226}
+  - component: {fileID: 1587000740741609561}
+  m_Layer: 5
+  m_Name: Bg
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &318974701001595778
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8747131942490840359}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4062138397462611899}
+  - {fileID: 4062974542048353521}
+  m_Father: {fileID: 1641346402271870707}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0}
+  m_AnchorMax: {x: 0.5, y: 0}
+  m_AnchoredPosition: {x: 0, y: 87}
+  m_SizeDelta: {x: 1252, y: 46}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2937788236398388303
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8747131942490840359}
+  m_CullTransparentMesh: 0
+--- !u!114 &1339259183278071226
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8747131942490840359}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: c1d190b418dbb9343916f30f8b2baaaf, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1587000740741609561
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8747131942490840359}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowMaskGraphic: 0

+ 7 - 0
ModeDisplay/Assets/GameAssets/06.UIPrefabs/ShowPartNamePanel.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a962501bc75c4cc4d95dd4f972dadde7
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: showpartnamepanel_prefab
+  assetBundleVariant: 

+ 8 - 0
ModeDisplay/Assets/Scenes/内部结构拆解动画.meta

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

+ 0 - 1
ModeDisplay/Assets/Scenes/内部结构拆解动画/01.500kV_变压器-ODFPS型.unity

@@ -3715,7 +3715,6 @@ MonoBehaviour:
     finish: 0
   m_Reverse: 1
   m_PlayButton: {fileID: 664718571}
-  m_CloseButton: {fileID: 1715204275}
 --- !u!4 &1718874986
 Transform:
   m_ObjectHideFlags: 0

+ 7 - 3
ModeDisplay/Assets/Scripts/CameraSurround.cs

@@ -24,6 +24,10 @@ public class CameraSurround : MonoBehaviour
         CameraCtrlMouseScrllMove();
     }
 
+    /// <summary>
+    /// 相机聚焦定位
+    /// </summary>
+    /// <param name="reset"></param>
     public void SetCameraPosition(bool reset = false)
     {
         Bounds tmpBounds = GetBounds(DeviceController.instance.transform);
@@ -120,15 +124,15 @@ public class CameraSurround : MonoBehaviour
     /// </summary>
     /// <param name="transform"></param>
     /// <returns></returns>
-    private static Bounds GetBounds(Transform transform)
+    private static Bounds GetBounds(Transform target)
     {
-        PartMark[] tmpPartMarks = transform.GetComponentsInChildren<PartMark>(true);
+        PartMark[] tmpPartMarks = target.GetComponentsInChildren<PartMark>(true);
 
         List<MeshRenderer> tmpMeshRenders = new List<MeshRenderer>();
 
         foreach (var item in tmpPartMarks)
         {
-            tmpMeshRenders.AddRange(item.GetMeshRender());
+            tmpMeshRenders.AddRange(item.GetMeshRender(item.transform));
         }
 
         Bounds bounds = new Bounds(GetModelGroupBoundesConent(tmpMeshRenders.ToArray()), Vector3.zero);

+ 19 - 4
ModeDisplay/Assets/Scripts/DeviceController.cs

@@ -36,6 +36,15 @@ public class DeviceController : MonoBehaviour
     }
 
     private void Update()
+    {
+        PartLabelCheck();
+        ClikPartMarkCheck();
+    }
+
+    /// <summary>
+    /// 标签部分检测
+    /// </summary>
+    private void PartLabelCheck()
     {
         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit hit;
@@ -54,18 +63,24 @@ public class DeviceController : MonoBehaviour
         {
             UIKit.HidePanel<PartLabelPanel>();
         }
+    }
 
+    /// <summary>
+    /// 点击物体检测
+    /// </summary>
+    private void ClikPartMarkCheck()
+    {
         if (Input.GetMouseButtonDown(0))
         {
-            Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);
-            RaycastHit hit1;
-            if (Physics.Raycast(ray1, out hit1))
+            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
+            RaycastHit hit;
+
+            if (Physics.Raycast(ray, out hit))
             {
                 PartMark tmpMark = GetParentPartMarkWithPartMark(hit.collider.transform);
 
                 if (tmpMark != null)
                 {
-                    tmpMark.SetState(false);
                     m_OperationPartMarkStruct.Push(tmpMark);
                     UIKit.GetPanel<PartListPanel>().SetPartItemState(tmpMark, false);
                     CameraSurround.instance.SetCameraPosition();

+ 7 - 1
ModeDisplay/Assets/Scripts/MoveItem/MoveItemManager.cs

@@ -23,6 +23,7 @@ public class MoveItemManager : MonoBehaviour
     [TabGroup("配置相关")]
     [TableList]
     public List<MoveItemInfo> moveItemInfos;
+   
     [TabGroup("配置相关")]
     [LabelText("播完反向播放")]
     public bool m_Reverse;
@@ -54,6 +55,7 @@ public class MoveItemManager : MonoBehaviour
         StopAllCoroutines();
 
         Debug.Log("播放" + moveItemInfos[index].moveItem.name);
+        UIKit.OpenPanel<ShowPartNamePanel>(new ShowPartNamePanelData() {partName = "拆下" + moveItemInfos[index].moveItem.name });
 
         StartCoroutine(AudioHelper.LoadSpecifiedAudioFile("Config/Audios/内部结构拆解/" + deviceName, "拆下" + moveItemInfos[index].moveItem.name,
         len =>
@@ -101,6 +103,7 @@ public class MoveItemManager : MonoBehaviour
         if (index + 1 > moveItemInfos.Count - 1)
         {
             Debug.Log("正播播放序列完成");
+            UIKit.ClosePanel<ShowPartNamePanel>();
             if (m_Reverse)
             {
                 PlayMoveItemByReverseIndex(moveItemInfos.Count - 1);
@@ -127,6 +130,8 @@ public class MoveItemManager : MonoBehaviour
 
         Debug.Log("反向播放" + moveItemInfos[index].moveItem.name);
 
+        UIKit.OpenPanel<ShowPartNamePanel>(new ShowPartNamePanelData() { partName = "安装" + moveItemInfos[index].moveItem.name });
+
         StartCoroutine(AudioHelper.LoadSpecifiedAudioFile("Config/Audios/内部结构拆解/" + deviceName, "安装" + moveItemInfos[index].moveItem.name,len => 
         {
             if (len > moveItemInfos[index].moveItem.m_Duration)
@@ -171,6 +176,7 @@ public class MoveItemManager : MonoBehaviour
         if (index - 1 < 0)
         {
             Debug.Log("反向播放序列完成");
+            UIKit.ClosePanel<ShowPartNamePanel>();
         }
         else
         {
@@ -234,7 +240,7 @@ public class MoveItemManager : MonoBehaviour
             moveItemInfos.Add(moveItemInfo);
         }
     }
-
+    
     private Color GetColor()
     {
         if (moveItemInfos.Count == 0 || moveItemInfos == null)

+ 24 - 12
ModeDisplay/Assets/Scripts/PartMark.cs

@@ -16,13 +16,21 @@ public enum ShowState
     Tran
 }
 
-
 public class PartMark : MonoBehaviour
 {
+    /// <summary>
+    /// 子物体
+    /// </summary>
     public List<PartMark> m_ChildPartMarks;
 
+    /// <summary>
+    /// 初始材质球
+    /// </summary>
     public Dictionary<MeshRenderer, Material> m_DicOldMeshRender;
 
+    /// <summary>
+    /// 目前的状态
+    /// </summary>
     private bool m_CurrentState;
 
     private void Awake()
@@ -75,13 +83,12 @@ public class PartMark : MonoBehaviour
     public void SetState(bool state)
     {
         SetInitState();
-
+        
+        //如果是点击半透模式
         if (DeviceController.instance.m_ShowState == ShowState.Tran)
         {
             Material tmpTransMaterial = Resources.Load<Material>("Trans");
 
-            this.gameObject.SetActive(true);
-
             foreach (var item in m_DicOldMeshRender)
             {
                 if (state)
@@ -96,7 +103,7 @@ public class PartMark : MonoBehaviour
                 }
             }
         }
-        else
+        else //点击隐藏模式
         {
             this.gameObject.SetActive(state);
         }
@@ -128,7 +135,6 @@ public class PartMark : MonoBehaviour
         }
     }
 
-
     /// <summary>
     /// 切换到正常状态
     /// </summary>
@@ -144,21 +150,27 @@ public class PartMark : MonoBehaviour
         this.gameObject.SetActive(true);
     }
 
-    public List<MeshRenderer> GetMeshRender()
+    public List<MeshRenderer> GetMeshRender(Transform target)
     {
         List<MeshRenderer> tmpMeshRenders = new List<MeshRenderer>();
 
         if (m_CurrentState)
         {
-            if (transform.GetComponent<MeshRenderer>() != null) tmpMeshRenders.Add(transform.GetComponent<MeshRenderer>());
+            if (target.GetComponent<MeshRenderer>() != null) tmpMeshRenders.Add(target.GetComponent<MeshRenderer>());
 
-            for (int i = 0; i < transform.childCount; i++)
+            for (int i = 0; i < target.childCount; i++)
             {
-                Transform tmpChild = transform.GetChild(i);
+                Transform tmpChild = target.GetChild(i);
 
-                if (tmpChild.GetComponent<PartMark>() == null && tmpChild.GetComponent<MeshRenderer>() != null)
+                if (tmpChild.GetComponent<PartMark>() == null)
                 {
-                    tmpMeshRenders.Add(tmpChild.GetComponent<MeshRenderer>());
+                    if (tmpChild.GetComponent<MeshRenderer>())
+                    {
+                        tmpMeshRenders.Add(tmpChild.GetComponent<MeshRenderer>());
+                    }else
+                    {
+                        tmpMeshRenders.AddRange(GetMeshRender(tmpChild));
+                    }
                 }
 
             }

+ 14 - 4
ModeDisplay/Assets/Scripts/UI/QFramework/PartListPanel.cs

@@ -15,6 +15,8 @@ namespace QFramework
     {
         bool m_Expand = false;
 
+        PartItem SelfPartItem;
+
         protected override void OnInit(IUIData uiData = null)
         {
             mData = uiData as PartListPanelData ?? new PartListPanelData();
@@ -43,16 +45,24 @@ namespace QFramework
             GameObject tmpObj = Instantiate(PartItem.gameObject, Content);
             tmpObj.gameObject.SetActive(true);
 
-            PartItem tmpPartItem = tmpObj.GetComponent<PartItem>();
+            SelfPartItem = tmpObj.GetComponent<PartItem>();
 
-            tmpPartItem.InitData(mData.m_PartInfo);
+            SelfPartItem.InitData(mData.m_PartInfo);
 
-            tmpPartItem.OnSelectToggleChange(true, true);
-            tmpPartItem.ExpandChildPartItem();
+            SelfPartItem.OnSelectToggleChange(true, true);
+            SelfPartItem.ExpandChildPartItem();
 
             CameraSurround.instance.SetCameraPosition(true);
         }
 
+        public void CloseAllPartItem() 
+        {
+            if (SelfPartItem != null)
+            {
+                SelfPartItem.OnSelectToggleChange(false,true);
+            }
+        }
+
         protected override void OnShow()
         {
         }

+ 6 - 3
ModeDisplay/Assets/Scripts/UI/QFramework/PartListPanel/PartItem.cs

@@ -72,13 +72,12 @@ namespace QFramework
             SelectBtn.onClick.AddListener(() => 
             {
                 OnSelectToggleChange(true, true);
-                CameraSurround.instance.SetCameraPosition();
+                
             });
             //È¡ÏûÑ¡Öа´Å¥
             UnSelectBtn.onClick.AddListener(() => 
             {
                 OnSelectToggleChange(false, true);
-                CameraSurround.instance.SetCameraPosition();
             });
 
             ClickBtn.onClick.AddListener(OnClickBtnClick);
@@ -176,6 +175,8 @@ namespace QFramework
             {
                 DeviceController.instance.m_OperationPartMarkStruct.Push(m_PartMark);
             }
+
+            CameraSurround.instance.SetCameraPosition();
         }
 
         /// <summary>
@@ -266,7 +267,9 @@ namespace QFramework
         /// </summary>
         private void OnClickBtnClick()
         {
-            Debug.LogError(m_PartMark.name);
+            UIKit.GetPanel<PartListPanel>().CloseAllPartItem();
+
+            OnSelectToggleChange(true, true);
 
             DeviceOfPartDataProxy deviceOfPartDataProxy = DAL.Instance.Get<DeviceOfPartDataProxy>();
 

+ 46 - 0
ModeDisplay/Assets/Scripts/UI/QFramework/ShowPartNamePanel.Designer.cs

@@ -0,0 +1,46 @@
+using System;
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+
+namespace QFramework
+{
+	// Generate Id:47c95443-6e58-41a3-b735-dc1924d250b8
+	public partial class ShowPartNamePanel
+	{
+		public const string Name = "ShowPartNamePanel";
+		
+		[SerializeField]
+		public UnityEngine.UI.Text SubTitlesText;
+		
+		private ShowPartNamePanelData mPrivateData = null;
+		
+		protected override void ClearUIComponents()
+		{
+			SubTitlesText = null;
+			
+			mData = null;
+		}
+		
+		public ShowPartNamePanelData Data
+		{
+			get
+			{
+				return mData;
+			}
+		}
+		
+		ShowPartNamePanelData mData
+		{
+			get
+			{
+				return mPrivateData ?? (mPrivateData = new ShowPartNamePanelData());
+			}
+			set
+			{
+				mUIData = value;
+				mPrivateData = value;
+			}
+		}
+	}
+}

+ 11 - 0
ModeDisplay/Assets/Scripts/UI/QFramework/ShowPartNamePanel.Designer.cs.meta

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

+ 57 - 0
ModeDisplay/Assets/Scripts/UI/QFramework/ShowPartNamePanel.cs

@@ -0,0 +1,57 @@
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+using System.Collections.Generic;
+using System.Collections;
+
+namespace QFramework
+{
+	public class ShowPartNamePanelData : UIPanelData
+	{
+		/// <summary>
+		/// ²¿¼þÃû³Æ
+		/// </summary>
+		public string partName;
+	}
+	public partial class ShowPartNamePanel : UIPanel
+	{
+		protected override void ProcessMsg(int eventId, QMsg msg)
+		{
+			throw new System.NotImplementedException();
+		}
+		
+		protected override void OnInit(IUIData uiData = null)
+		{
+			mData = uiData as ShowPartNamePanelData ?? new ShowPartNamePanelData();
+			
+		}
+		
+		protected override void OnOpen(IUIData uiData = null)
+		{
+			mData = uiData as ShowPartNamePanelData ?? new ShowPartNamePanelData();
+
+			StopAllCoroutines();
+			SubTitlesText.text = mData.partName;
+		}
+		
+		protected override void OnShow()
+		{
+		}
+		
+		protected override void OnHide()
+		{
+		}
+		
+		protected override void OnClose()
+		{
+		}
+
+	    IEnumerator DelayClosePanel(float second)
+        {
+			yield return new  WaitForSeconds(second);
+			Debug.LogError(1);
+			CloseSelf();
+        }
+		
+	}
+}

+ 11 - 0
ModeDisplay/Assets/Scripts/UI/QFramework/ShowPartNamePanel.cs.meta

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

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

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