public static void DrawBoneBody(Vector3 startPos, Vector3 endPos, Color color, float scale = 1.0f) { Color c = Handles.color; Handles.color = color; CommonDrawingUtility.DrawLine(startPos, endPos, Vector3.back, GetBoneRadius(scale), GetBoneRadius(scale) * 0.05f); Handles.color = c; }
public static void DrawParentLink(Vector3 startPos, Vector3 endPos, Color color, float scale = 1.0f) { CommonDrawingUtility.DrawLine(startPos, endPos, Vector3.back, GetBoneRadius(scale) * 0.1f, GetBoneRadius(scale) * 0.1f, color); var dir = (startPos - endPos).normalized; var arrowTipPoint = Vector3.Lerp(startPos, endPos, 0.5f); var arrowWingPoint = arrowTipPoint + dir * GetBoneRadius(scale); // Arrow CommonDrawingUtility.DrawLine(arrowWingPoint, arrowTipPoint, Vector3.back, GetBoneRadius(0.7f), 0.0f, color); }
public static void DrawBoneOutline(Vector3 startPos, Vector3 endPos, Color color, float scale = 1.0f) { Color c = Handles.color; Handles.color = color; CommonDrawingUtility.DrawLine(startPos, endPos, Vector3.back, GetBoneRadius(scale) * 1.25f, GetBoneRadius(scale) * 0.25f); Handles.DrawSolidDisc(startPos, Vector3.back, 0.5f * GetBoneRadius(scale) * 1.25f); Handles.DrawSolidDisc(endPos, Vector3.back, 0.5f * GetBoneRadius(scale) * 0.25f); Handles.color = c; }
public void DrawBone(Transform boneTransform, float length, float alpha) { Debug.Assert(m_GUIWapper.IsRepainting()); if (!IsBoneVisible(boneTransform, length, alpha)) { return; } var boneColor = Color.white.AlphaMultiplied(alpha); var boneNodeColor = Color.gray.AlphaMultiplied(alpha); var hoveredBoneColor = Handles.preselectionColor.AlphaMultiplied(alpha); var selectedBoneColor = Handles.selectedColor.AlphaMultiplied(alpha); Handles.matrix = boneTransform.localToWorldMatrix; var colorTmp = Handles.color; var position = Vector3.zero; var endPosition = Vector3.right * length; var radius = GetBoneRadius(position, endPosition); var color = boneColor; if (IsSelected(boneTransform)) { color = selectedBoneColor; } if (IsActionActive(boneTransform, BoneGizmoAction.Rotate)) { color = hoveredBoneColor; } Handles.color = ToActiveColorSpace(color); CommonDrawingUtility.DrawSolidArc(position, Vector3.back, Vector3.Cross(endPosition - position, Vector3.forward), 180f, radius, 8); CommonDrawingUtility.DrawLine(position, endPosition, Vector3.back, radius * 2f, radius * 0.1f); if (IsActionActive(boneTransform, BoneGizmoAction.Move)) { Handles.color = ToActiveColorSpace(hoveredBoneColor); CommonDrawingUtility.DrawSolidArc(position, Vector3.back, Vector3.Cross(endPosition - position, Vector3.forward), 360f, radius, 16); } Handles.color = ToActiveColorSpace(boneNodeColor); CommonDrawingUtility.DrawSolidArc(position, Vector3.back, Vector3.Cross(endPosition - position, Vector3.forward), 360f, radius * 0.55f, 16); Handles.color = colorTmp; Handles.matrix = Matrix4x4.identity; }