public void OnRenderGizmos(Transform transform, float standardMarkerSize, Vector3 offset, bool networkSelected, bool nodeSelected, ConnectionAsset selectedConnection, bool onlySelectedConnection) { if (target == null) { return; } if (networkSelected) { if (target is WaypointAsset) { (( WaypointAsset )target).OnRenderGizmos(transform, standardMarkerSize, offset, networkSelected, nodeSelected, selectedConnection, true); } else { target.OnRenderGizmos(transform, standardMarkerSize, offset, networkSelected, nodeSelected, selectedConnection); } } Gizmos.color = Color.red; Gizmos.DrawWireSphere(transform.position + offset + Position, standardMarkerSize); foreach (ConnectionAsset connection in Connections) { Vector3 from, to, vector, fromOffsetA, fromOffsetB, toOffsetA, toOffsetB; if (onlySelectedConnection && selectedConnection != connection) { continue; } from = Position + transform.position + Target.Network.Position; to = connection.To.Position + transform.position + (( GridNodeAsset )connection.To).Target.Network.Position; vector = to - from; fromOffsetA = from + vector.normalized + Vector3.Cross(vector, Vector3.up).normalized * -(connection.Width / 2.0f); fromOffsetB = from + vector.normalized + Vector3.Cross(vector, Vector3.up).normalized *(connection.Width / 2.0f); toOffsetA = to - vector.normalized + Vector3.Cross(vector, Vector3.up).normalized * -(connection.Width / 2.0f); toOffsetB = to - vector.normalized + Vector3.Cross(vector, Vector3.up).normalized *(connection.Width / 2.0f); Gizmos.color = (!networkSelected) ? Color.yellow : (selectedConnection == connection) ? Color.white : Color.green; Gizmos.DrawLine(fromOffsetA, toOffsetA); Gizmos.DrawLine(fromOffsetB, toOffsetB); } }