コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }