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) ); } } }
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); }