2809621200 3 天之前
父节点
当前提交
9ea4f3d932

+ 1 - 1
WindTurbinesMaintenance_2025/Assets/ChivaFrameWork

@@ -1 +1 @@
-Subproject commit 30a85001766c499e2139a10ad5e7b47320c58723
+Subproject commit c33e9cb800b8d6cc4459f5f325a35b9948e1f851

+ 26 - 10
WindTurbinesMaintenance_2025/Assets/Scenes/联合动力-发电机轴承更换.unity

@@ -126358,13 +126358,13 @@ Transform:
   - {fileID: 6688581376212067616}
   - {fileID: 5315431889038443713}
   - {fileID: 9185774426913946254}
-  - {fileID: 6584878590808557681}
   - {fileID: 3997344403739732539}
   - {fileID: 3232993219996213867}
   - {fileID: 6316701020331619259}
   - {fileID: 2618524210671135605}
   - {fileID: 1292372294847133016}
   - {fileID: 9182030499649749667}
+  - {fileID: 6584878590808557681}
   m_Father: {fileID: 677101010164889096}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -131480,7 +131480,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 12
+  m_RootOrder: 11
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &1292462042121843818
 Transform:
@@ -159242,7 +159242,7 @@ Transform:
   - {fileID: 7406207657097186907}
   - {fileID: 975502048737931475}
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 11
+  m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!23 &2619288691372228180
 MeshRenderer:
@@ -166353,6 +166353,7 @@ GameObject:
   - component: {fileID: 6584878590808557681}
   - component: {fileID: 7938795425245168849}
   - component: {fileID: 5892099179975298389}
+  - component: {fileID: 2986072841596146968}
   m_Layer: 0
   m_Name: "\u673A\u8231\u5916\u58F308"
   m_TagString: Untagged
@@ -166360,6 +166361,20 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!64 &2986072841596146968
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2986072841596146967}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 0
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 5335566974991028395, guid: 1a81b05c75edc7b4d86916e16029a5cb, type: 3}
 --- !u!4 &2987508240916189392
 Transform:
   m_ObjectHideFlags: 0
@@ -171195,7 +171210,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 9
+  m_RootOrder: 8
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &3234619209960599508
 GameObject:
@@ -185797,7 +185812,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 8
+  m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &3998299750065201912
 GameObject:
@@ -233879,7 +233894,7 @@ Transform:
   - {fileID: 6447493240499383459}
   - {fileID: 7423037138755088327}
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 10
+  m_RootOrder: 9
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &6317921901571264463
 Transform:
@@ -239077,12 +239092,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2986072841596146967}
-  m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -0, y: 0, z: 0}
+  m_LocalRotation: {x: -0.000000034915583, y: -0.0000000027939677, z: 9.755298e-17,
+    w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0.0001373291}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 7
+  m_RootOrder: 13
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &6585179106187034103
 Transform:
@@ -292510,7 +292526,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1003164535661775833}
-  m_RootOrder: 13
+  m_RootOrder: 12
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &9182326097424916034
 Transform:

+ 34 - 10
WindTurbinesMaintenance_2025/Assets/Scripts/Tool/Editor/MeshSelectionTool.cs

@@ -11,7 +11,6 @@ public class MeshSelectionTool : OdinEditor
 {
     MeshSelection selection;
 
-    private Mesh mesh;
     private HashSet<int> selectedTriangles = new HashSet<int>();
 
     private bool enableSelect;
@@ -42,12 +41,18 @@ public class MeshSelectionTool : OdinEditor
                 return;
 
             enableSelect = false;
-            selection.SelectedTrianglesIndex = selectedTriangles.ToList();
-            selection.GetBoundaryVertices(mesh);
+
             selection.CreateCenter();
             selectedTriangles.Clear();
         }
 
+        GUILayout.Space(10);
+        if (GUILayout.Button("清空"))
+        {
+            selection.Reset();
+
+            selectedTriangles.Clear();
+        }
     }
 
     private void OnSceneGUI()
@@ -63,18 +68,37 @@ public class MeshSelectionTool : OdinEditor
                 if (Physics.Raycast(ray, out hit))
                 {
                     if (hit.transform.gameObject != selection.ToolSelectObj)
-                    {
                         return;
-                    }
 
-                    int triangleIndex = hit.triangleIndex * 3;
+                    if (selection.ToolSelectObj.GetComponent<MeshFilter>() == null && selection.ToolSelectObj.GetComponent<MeshFilter>().sharedMesh == null)
+                        return;
+
+                    selectedTriangles.Add(hit.triangleIndex * 3);
 
-                    mesh = hit.transform.GetComponent<MeshFilter>().sharedMesh;
-                    selectedTriangles.Add(triangleIndex);
-                }
+                    selection.SelectedTrianglesIndex = selectedTriangles.ToList();
+                    selection.GetBoundaryVertices();
 
+                    DrawSelectedFaces();
+
+                    e.Use();
+                }
                 SceneView.RepaintAll();
-                e.Use();
             }
     }
+
+    private void DrawSelectedFaces()
+    {
+        Mesh mesh = selection.ToolSelectObj.GetComponent<MeshFilter>().sharedMesh;
+
+        Handles.color = Color.yellow; // 高亮颜色
+        Handles.zTest = UnityEngine.Rendering.CompareFunction.LessEqual;
+        Debug.LogError("mesh.vertices" + "--"  + mesh.vertices.Length);
+        foreach (int triangleIndex in selectedTriangles)
+        {
+            Debug.LogError(triangleIndex + "-----");
+            Handles.DrawLine(mesh.vertices[mesh.triangles[triangleIndex + 0]] , mesh.vertices[mesh.triangles[triangleIndex + 1]]);
+            Handles.DrawLine(mesh.vertices[mesh.triangles[triangleIndex + 1]] , mesh.vertices[mesh.triangles[triangleIndex + 2]]);
+            Handles.DrawLine(mesh.vertices[mesh.triangles[triangleIndex + 2]] , mesh.vertices[mesh.triangles[triangleIndex + 0]]);
+        }
+    }
 }

+ 23 - 14
WindTurbinesMaintenance_2025/Assets/Scripts/Tool/MeshSelection.cs

@@ -27,28 +27,29 @@ public class MeshSelection : MonoBehaviour
     bool showS = false;
     bool showC = false;
 
-
-    public void GetBoundaryVertices(Mesh mesh)
+    public void GetBoundaryVertices()
     {
+        Mesh mesh = ToolSelectObj.GetComponent<MeshFilter>().sharedMesh;
         Vector3[] vertices = mesh.vertices;
         int[] triangles = mesh.triangles;
 
-        Dictionary<(int, int), int> edgeFaces = new Dictionary<(int, int), int>();
+        Dictionary<(int, int), int> edgePos = new Dictionary<(int, int), int>();
 
-        foreach (var i in SelectedTrianglesIndex)
+        foreach (int i in SelectedTrianglesIndex)
         {
             int a = triangles[i];
             int b = triangles[i + 1];
             int c = triangles[i + 2];
 
-            RegisterEdge(a, b, edgeFaces);
-            RegisterEdge(b, c, edgeFaces);
-            RegisterEdge(c, a, edgeFaces);
+            Debug.LogError("i = - " + i);
+
 
-            
+            RegisterEdge(a, b, edgePos);
+            RegisterEdge(b, c, edgePos);
+            RegisterEdge(c, a, edgePos);
         }
 
-        foreach (var edge in edgeFaces)
+        foreach (var edge in edgePos)
         {
             if (edge.Value == 1)
             {
@@ -58,11 +59,11 @@ public class MeshSelection : MonoBehaviour
         }
 
     }
-    private static void RegisterEdge(int a, int b, Dictionary<(int, int), int> edgeFaces)
+    private static void RegisterEdge(int a, int b, Dictionary<(int, int), int> edgePos)
     {
         var edge = a < b ? (a, b) : (b, a);
-        edgeFaces.TryGetValue(edge, out int count);
-        edgeFaces[edge] = count + 1;
+        edgePos.TryGetValue(edge, out int count);
+        edgePos[edge] = count + 1;
     }
 
     public void CreateCenter()
@@ -96,8 +97,6 @@ public class MeshSelection : MonoBehaviour
             if (showF && showS) showC = true;
             return;
         }
-
-
     }
     [Button("生成中心点")]
     [ShowIf("showC")]
@@ -109,10 +108,20 @@ public class MeshSelection : MonoBehaviour
         obj.transform.rotation = Quaternion.LookRotation( (firstObj.transform.position - SecondObj.transform.position).normalized);
         obj.name = ToolSelectObj.name + "---生成点";
         ToolSelectObj.transform.SetParent(obj.transform);
+
         DestroyImmediate(firstObj);
         DestroyImmediate(SecondObj);
         showC= showF = showS = false;
         TrianglesVector3s.Clear();
     }
 
+   public void Reset()
+    {
+        ToolSelectObj = null;
+        DestroyImmediate(firstObj);
+        DestroyImmediate(SecondObj);
+        showC = showF = showS = false;
+        TrianglesVector3s.Clear();
+        SelectedTrianglesIndex.Clear();
+    }
 }

+ 0 - 85
WindTurbinesMaintenance_2025/Assets/Scripts/Tool/NewBehaviourScript.cs

@@ -1,85 +0,0 @@
-using Sirenix.OdinInspector;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class NewBehaviourScript : MonoBehaviour
-{
-    public GameObject 已分组;
-    public GameObject 待分组;
-
-    public GameObject 分组目标;
-
-    objTree ObjATree;
-
-   public Dictionary<Mesh, GameObject> objBDic ;
-
-    [Button("测试")]
-    void 生成树()
-    {
-        ObjATree = new objTree(已分组);
-        objBDic = new Dictionary<Mesh, GameObject>();
-        FindChild(待分组);
-        dui(ObjATree, 分组目标);
-    }
-
-    void FindChild(GameObject child)
-    {
-        MeshFilter meshFilter = child.GetComponent<MeshFilter>();
-        if (meshFilter != null && meshFilter.sharedMesh != null)
-        {
-            if (!objBDic.ContainsKey(meshFilter.sharedMesh))
-                objBDic.Add(meshFilter.sharedMesh, child);
-        }
-
-        for (int i = 0; i < child.transform.childCount; i++)
-            FindChild(child.transform.GetChild(i).gameObject);
-    }
-
-    void dui(objTree tree,GameObject 当前节点)
-    {
-        GameObject matchTmpObj;
-
-        if (tree.nodeMesh != null && objBDic.TryGetValue(tree.nodeMesh, out GameObject tmpObj))
-            matchTmpObj = tmpObj;
-        else
-        {
-            matchTmpObj = new GameObject();
-            matchTmpObj.name = tree.nodeObj.name;
-        }
-        matchTmpObj.transform.SetParent(当前节点.transform);
-
-        foreach (objTree tmp in tree.children)
-            dui(tmp, matchTmpObj);
-
-    }
-
-    [Serializable]
-    public class objTree
-    {
-        public Mesh nodeMesh;
-        public GameObject nodeObj;
-        public List<objTree> children = new List<objTree>();
-
-       public objTree(GameObject gameObj)
-        {
-            nodeObj = gameObj;//节点
-
-            try { nodeMesh = nodeObj.GetComponent<MeshFilter>().sharedMesh; }
-            catch (Exception) { }
-
-            addObjNode();
-        }
-
-        public void addObjNode()
-        {
-            for (int i = 0; i < nodeObj.transform.childCount; i++)
-            {
-                children.Add(new objTree(nodeObj.transform.GetChild(i).gameObject));
-            }
-
-        }
-    }
-}
-

+ 0 - 11
WindTurbinesMaintenance_2025/Assets/Scripts/Tool/NewBehaviourScript.cs.meta

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

二进制
WindTurbinesMaintenance_2025/Assets/StreamingAssets/Config/流程配置/联合动力-发电机轴承更换.xlsx