void HideNoCommunication() { isHiding = true; UpdateAllObject(); UpdateList(); foreach (var obj in allObject) { obj.hideFlags = HideFlags.HideInHierarchy; } foreach (var item in refObjectList) { ParentShow(item.rootComponent.transform); if (item.value == null) { continue; } var obj = SceneObjectUtility.GetGameObject(item.value); if (obj != null) { ParentShow(obj.transform); } } }
void OnSceneGUI(SceneView sceneView) { var selection = Selection.activeGameObject as GameObject; if (selection == null) { return; } var cameraTransform = SceneView.currentDrawingSceneView.camera.transform; var rotate = cameraTransform.rotation; var cameraPos = cameraTransform.position; Color shadowCol = new Color(0.5f, 0, 0, 0.06f); foreach (var target in referenceObjectList) { var obj = SceneObjectUtility.GetGameObject(target.value); if (obj == null) { continue; } if (obj == Selection.activeGameObject) { continue; } var startPosition = selection.transform.position; var endPosition = obj.transform.position; var size = Vector3.Distance(endPosition, cameraPos) * 0.02f; if (startPosition == endPosition) { continue; } Handles.color = Color.red; var diffPos = startPosition - endPosition; var tan = new Vector3(diffPos.y, diffPos.x, diffPos.z); var startTan = startPosition; var endTan = endPosition + tan * 0.4f; Handles.CircleCap(1, endPosition, rotate, size); for (int i = 0; i < 3; i++) { Handles.DrawBezier(startPosition, endPosition, startTan, endTan, shadowCol, null, (i + 1) * 5); } Handles.DrawBezier(startPosition, endPosition, startTan, endTan, Color.red, null, 1); Handles.Label(endPosition, obj.name); } }