Ejemplo n.º 1
0
    public void Draw()
    {
        for (int i = 0; i < Joints.Length; i++)
        {
            //Joints[i].RemoveVisual();
            //Joints[i].CreateVisual();
            if (Joints[i].Transform != null)
            {
                Joints[i].Visual.transform.localScale = JointRadius * Vector3.one;
                Joints[i].Visual.startWidth           = BoneStartWidth;
                Joints[i].Visual.endWidth             = BoneEndWidth;

                if (!Application.isPlaying)
                {
                    if (Joints[i].Parent != null)
                    {
                        UnityGL.DrawLine(Joints[i].Parent.position, Joints[i].Transform.position, BoneStartWidth, BoneEndWidth, Color.cyan);
                    }
                }

                UnityGL.DrawArrow(
                    Joints[i].Transform.position,
                    Joints[i].Transform.position + 10f * Joints[i].GetVelocity(),
                    0.75f,
                    0.0075f,
                    0.05f,
                    new Color(0f, 1f, 0f, 0.5f)
                    );
            }
        }
    }
Ejemplo n.º 2
0
    public void Draw()
    {
        int step = Density;

        //Connections
        for (int i = 0; i < GetPointCount() - step; i += step)
        {
            UnityGL.DrawLine(Points[i].GetPosition(), Points[i + step].GetPosition(), 0.01f, ConnectionColor);
        }

        //Projections
        for (int i = 0; i < GetPointCount(); i += step)
        {
            Vector3 right = Points[i].Project(Width / 2f);
            Vector3 left  = Points[i].Project(-Width / 2f);
            UnityGL.DrawCircle(right, 0.01f, HeightColor);
            UnityGL.DrawCircle(left, 0.01f, HeightColor);
        }

        //Directions
        for (int i = 0; i < GetPointCount(); i += step)
        {
            UnityGL.DrawLine(Points[i].GetPosition(), Points[i].GetPosition() + 0.25f * Points[i].GetDirection(), 0.025f, 0f, DirectionColor);
        }

        //Rises
        for (int i = 0; i < GetPointCount(); i += step)
        {
            UnityGL.DrawLine(Points[i].GetPosition(), Points[i].GetPosition() + 1f * Points[i].Jump * Vector3.up, 0.025f, 0f, RiseColor);
        }

        //Positions
        for (int i = 0; i < GetPointCount(); i += step)
        {
            if (i % GetDensity() == 0)
            {
                UnityGL.DrawCircle(Points[i].GetPosition(), 0.025f, PointColor);
            }
            else
            {
                UnityGL.DrawCircle(Points[i].GetPosition(), 0.005f, PointColor);
            }
        }

        //Target
        UnityGL.DrawLine(GetRoot().GetPosition(), GetRoot().GetPosition() + TargetDirection, 0.05f, 0f, TargetDirectionColor);
        UnityGL.DrawLine(GetRoot().GetPosition(), GetRoot().GetPosition() + TargetVelocity, 0.05f, 0f, TargetVelocityColor);
    }