Beispiel #1
0
    public override void OnInspectorGUI()
    {
        matchBones = target as MatchBones;

        matchBones.Update(ref matchBones.shape, "Shape");

        if (matchBones.shape.splines.Count > 1)
        {
            matchBones.Update(ref matchBones.spline, "Spline", 0, matchBones.shape.splines.Count - 1);
        }
        else
        {
            matchBones.spline = 0;
        }

        matchBones.Update(ref matchBones.smoothTang, "Smooth Tang");

        serializedObject.Update("bones");

        System.Array.Resize(ref matchBones.offsets, matchBones.bones.Length);

        serializedObject.Update("offsets");

        matchBones.UpdateEditor();
    }
Beispiel #2
0
    void OnSceneGUI()
    {
        matchBones      = target as MatchBones;
        handleTransform = matchBones.transform;
        handleRotation  = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity;

        Vector3 p0 = ShowPoint(0);

        int[] PBC = matchBones.kttk.PointsByCurve;
        for (int i = 1, j = 0; i < matchBones.bones.Length; i++, j++)
        {
            Handles.color = Color.green;
            Vector3 p1 = ShowPoint(i);
            Vector3 p2 = ShowPoint(i + 1);

            Handles.DrawLine(p0, p1);

            if (PBC[j] == 3)
            {
                Vector3 p3 = ShowPoint(i + 2);

                Handles.DrawLine(p2, p3);
                Handles.DrawBezier(p0, p3, p1, p2, Color.white, null, 2f);
                p0 = p3;
                i += 2;
            }
            else
            {
                Handles.DrawLine(p1, p2);
                Handles.DrawBezier(p0, p2, p1, p1, Color.white, null, 2f);
                p0 = p2;
                i++;
            }
        }
    }