private void PickUpUpdate() { if (pick.isPointMode) { for (int i = 0; i < vtkframe.meshArray.Length; i++) { for (int k = 0; k < vtkframe.meshArray[i].pointArray.Length; k++) { //修正关系 根据number; if (vtkframe.meshArray[i].pointArray[k].number == pick.number) { GlobalVariableBackground.Instance.conManager.WriteLog("meshArray[" + i + "].pointArray[" + k + "].number is " + pick.number); GlobalVariableBackground.Instance.conManager.WriteLog("old MeshIndex is " + pick.MeshIndex + " pointIndex is " + pick.pointIndex); pick.MeshIndex = i; pick.pointIndex = k; GlobalVariableBackground.Instance.conManager.WriteLog("new MeshIndex is " + pick.MeshIndex + " pointIndex is " + pick.pointIndex); } } } } if (pick.isMeshHave && pick.ModelName.Equals(transform.parent.name) && modelState.attIndex >= 0 && pick.isPointMode) { Mesh m = transform.GetChild(pick.MeshIndex).GetComponent <MeshFilter>().mesh; Vector3[] vecArray = m.vertices; int[] triArray = m.triangles; Vector3 vec = transform.TransformPoint(vecArray[pick.pointIndex]); Vector3[] newVecArray = GlobalVariableBackground.Instance.conManager.GetPointCube(vec, 0.04f); //GlobalVariableBackground.Instance.conManager.WriteLog("点坐标:"+vec.x+" , "+vec.y+" , "+vec.z); //GlobalVariableBackground.Instance.conManager.WriteLog("Number is : "+vtkframe.meshArray[pick.MeshIndex].pointArray[pick.pointIndex].number); pick.mesh.vertices = newVecArray; pick.mesh.RecalculateNormals(); } else if (pick.isMeshHave && pick.ModelName.Equals(transform.parent.name) && modelState.attIndex >= 0 && !pick.isPointMode) { Mesh m = transform.GetChild(pick.MeshIndex).GetComponent <MeshFilter>().mesh; Vector3[] vecArray = m.vertices; int[] triArray = m.triangles; ControlManager cm = GlobalVariableBackground.Instance.conManager; List <Vector3> listVec = new List <Vector3>(); List <int> listTri = new List <int>(); Vector3 v1 = transform.TransformPoint(vecArray[triArray[pick.TriIndex * 3]]); Vector3 v2 = transform.TransformPoint(vecArray[triArray[pick.TriIndex * 3 + 1]]); Vector3 v3 = transform.TransformPoint(vecArray[triArray[pick.TriIndex * 3 + 2]]); cm.AddLineArray3(listVec, listTri, cm.MakeQuad(v1, v2, v3, 0.1f)); if (pick.mesh.vertices.Length > listVec.Count) { pick.mesh.triangles = listTri.ToArray(); pick.mesh.SetVertices(listVec); } else { pick.mesh.SetVertices(listVec); pick.mesh.triangles = listTri.ToArray(); } pick.mesh.RecalculateNormals(); } }