Esempio n. 1
0
    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)
            );
    }
Esempio n. 2
0
        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);
                }
            }
        }