private void OnDrawGizmos() { Gizmos.color = hasDesiredObject ? new Color(0f, 1.0f, 0f, 0.5f) : new Color(1.0f, 0.0f, 0f, 0.5f); Vector2 bounds = new Vector2(coll.bounds.size.x / 2, coll.bounds.size.y / 2); var zonePos = transform.position; MinigameCommon.DrawGizmoBox( new Vector3(zonePos.x + -bounds.x, zonePos.y + -bounds.y, 0f), new Vector3(zonePos.x + bounds.x, zonePos.y + -bounds.y, 0f), new Vector3(zonePos.x + bounds.x, zonePos.y + bounds.y, 0f), new Vector3(zonePos.x + -bounds.x, zonePos.y + bounds.y, 0f) ); }
private void OnDrawGizmos() { // Draw lines representing drag zone closeness if (dragZones != null) { Gizmos.color = Color.green; // Build unique zone<->zone pairings HashSet <KeyValuePair <DragZone, DragZone> > zoneSet = new HashSet <KeyValuePair <DragZone, DragZone> >(); foreach (DragZone zone in dragZones) { foreach (DragZone innerZone in dragZones) { zoneSet.Add(new KeyValuePair <DragZone, DragZone>(zone, innerZone)); } } foreach (KeyValuePair <DragZone, DragZone> zonePair in zoneSet) { Gizmos.color = Vector3.Distance(zonePair.Key.transform.position, zonePair.Value.transform.position) >= (organScale / 2) * Mathf.Sqrt(2) ? Color.green : Color.red; Gizmos.DrawLine(zonePair.Key.transform.position, zonePair.Value.transform.position); } } // Draw drag zone spawn area if (dragZoneSpawnCenter != null || dragZoneSpawnRange != null) { Gizmos.color = Color.green; var zonePos = dragZoneSpawnCenter.position; MinigameCommon.DrawGizmoBox( new Vector3(zonePos.x + -dragZoneSpawnRange.x, zonePos.y + -dragZoneSpawnRange.y, 0f), new Vector3(zonePos.x + dragZoneSpawnRange.x, zonePos.y + -dragZoneSpawnRange.y, 0f), new Vector3(zonePos.x + dragZoneSpawnRange.x, zonePos.y + dragZoneSpawnRange.y, 0f), new Vector3(zonePos.x + -dragZoneSpawnRange.x, zonePos.y + dragZoneSpawnRange.y, 0f) ); } // Draw organ spawn area if (organSpawnCenter != null) { Gizmos.color = Color.green; var organPos = organSpawnCenter.position; // 5 is max number of organs in a column // Going from center to center, so we lose 1 unit of height var yOffset = (5 - 1) + (interOrganSpacing * (5 - 1)); var xOffset = ((numOrgansToSpawn - 1) / 5); MinigameCommon.DrawGizmoBox( new Vector3(organPos.x - 0.5f, organPos.y + 0.5f, 0f), // Top-left new Vector3(organPos.x - 0.5f, organPos.y - 0.5f - yOffset, 0f), // Bottom-left new Vector3(organPos.x + 0.5f + xOffset, organPos.y - 0.5f - yOffset, 0f), // Bottom-right new Vector3(organPos.x + 0.5f + xOffset, organPos.y + 0.5f, 0f) // Top-right ); // Draw organs in spawn area for (int i = 0; i < numOrgansToSpawn; i++) { var yIndex = i % 5; var xIndex = i / 5; var pos = new Vector3( organSpawnCenter.position.x + xIndex, organSpawnCenter.position.y - (yIndex + (interOrganSpacing * yIndex)), organSpawnCenter.position.z ); Gizmos.DrawWireSphere(pos, organScale / 2 / 2); } } }