예제 #1
0
    public static void DrawRange(IBuilding building)
    {
        var rect  = building.BuildingRect;
        var lands = GameScene.Instance.Ground.GetBlocks(building.MapRect);

        foreach (var block in lands)
        {
            if (rect.IsInclude(block.MapPosition))
            {
                Gizmos.color = Color.red;
            }
            else
            {
                Gizmos.color = Color.green;
            }
            var range = GroundBlock.MapPositionToRect(block.MapPosition);
            Gizmos.DrawLine(new Vector3(range.x, 0, range.y), new Vector3(range.xMax, 0, range.yMax));
        }
        Gizmos.color = Color.blue;
        var centerRange = GroundBlock.MapPositionToRect(building.CenterPosition);

        Gizmos.DrawLine(new Vector3(centerRange.xMin, 0, centerRange.yMax), new Vector3(centerRange.xMax, 0, centerRange.yMin));

        Gizmos.color = Color.yellow;
        var worldCenterPos = building.WorldCenterPosition;

        Gizmos.DrawLine(worldCenterPos + Vector3.left, worldCenterPos + Vector3.right);
        Gizmos.DrawLine(worldCenterPos + Vector3.forward, worldCenterPos + Vector3.back);
    }
예제 #2
0
 private void OnDrawGizmos()
 {
     Gizmos.color = Color.yellow;
     foreach (var block in this.Field)
     {
         var range = GroundBlock.MapPositionToRect(block.Value.MapPosition);
         //Gizmos.DrawLine(new Vector3(range.xMin, 0, range.yMax), new Vector3(range.xMax, 0, range.yMin));
         Gizmos.DrawLine(new Vector3(range.xMin, 0, range.yMin), new Vector3(range.xMin, 0, range.yMax));
         Gizmos.DrawLine(new Vector3(range.xMin, 0, range.yMax), new Vector3(range.xMax, 0, range.yMax));
         Gizmos.DrawLine(new Vector3(range.xMax, 0, range.yMax), new Vector3(range.xMax, 0, range.yMin));
         Gizmos.DrawLine(new Vector3(range.xMax, 0, range.yMin), new Vector3(range.xMin, 0, range.yMin));
     }
 }
예제 #3
0
    private void OnDrawGizmosSelected()
    {
        if (this.registGroundBlock == null || this.registGroundBlock.Length <= 0)
        {
            return;
        }

        Gizmos.color = Color.red;
        foreach (var area in this.registGroundBlock)
        {
            for (int y = 0; y < area.w; y++)
            {
                for (int x = 0; x < area.z; x++)
                {
                    var rect = GroundBlock.MapPositionToRect(new Vector2Int((int)area.x + x, (int)area.y + y));
                    Gizmos.DrawLine(new Vector3(rect.xMin, 0f, rect.yMin), new Vector3(rect.xMax, 0f, rect.yMax));
                    Gizmos.DrawLine(new Vector3(rect.xMin, 0f, rect.yMax), new Vector3(rect.xMax, 0f, rect.yMin));
                }
            }
        }
    }