Beispiel #1
0
    void Start()
    {
        path          = FindObjectOfType <PathCanvas>();
        pc            = FindObjectOfType <PathCreator>();
        characterAnim = GetComponent <Animator>();
        getInputs     = FindObjectOfType <GetInputs>();
        cam           = FindObjectOfType <CameraShake>();

        inputVector = transform.localPosition;
        //StartCoroutine("Jump");
    }
Beispiel #2
0
    private void Draw(PathCanvas canvas)
    {
        if (canvas.Triangles == null)
        {
            return;
        }

        var color = Color.cyan;

        foreach (var t in canvas.Triangles)
        {
            color         = Color.cyan;
            color.a       = 0.3f;
            Handles.color = color;

            if (t.Equals(canvas.Triangles.Last()))
            {
                color         = Color.magenta;
                color.a       = 0.3f;
                Handles.color = color;
            }

            Handles.DrawAAConvexPolygon(t.Vertices.ToArray());

            color.a       = 1.0f;
            Handles.color = color;
            Handles.DrawPolyLine(t.Vertices.ToArray());
        }

        color         = Color.cyan;
        Handles.color = color;

        foreach (var v in canvas.Vertices)
        {
            Handles.SphereCap(0, v, Quaternion.identity, HandleUtility.GetHandleSize(v) / 10);
        }

        if (canvas.Path != null && canvas.Path.Positions != null)
        {
            for (int i = 0; i < canvas.Path.Positions.Length; i++)
            {
                if (canvas.Path.Positions.Length > i + 1)
                {
                    color         = new Color(0f, 1.0f, 0f);
                    Handles.color = color;

                    var start = canvas.Path.Positions[i];
                    var end   = canvas.Path.Positions[i + 1];
                    Handles.DrawLine(start, end);
                    Handles.SphereCap(0, start, Quaternion.identity, HandleUtility.GetHandleSize(start) / 12);
                    Handles.SphereCap(0, end, Quaternion.identity, HandleUtility.GetHandleSize(end) / 12);
                }

                color         = new Color(0f, 0.0f, 1.0f);
                Handles.color = color;

                var origin = canvas.Path.Positions[i];
                var dir    = canvas.Path.Normals[i];
                Handles.DrawLine(origin, origin + dir);
                Handles.SphereCap(0, origin + dir, Quaternion.identity, HandleUtility.GetHandleSize(origin + dir) / 12);
            }
        }
    }