private void PlaceObjects()
    {
        Vector3 position;

        // A couple of test cubes
        if (PlayspaceManager.Instance.TryPlaceOnFloor(out position, cubePrefab.transform.localScale))
        {
            Instantiate(cubePrefab, position, Quaternion.identity);
        }
        if (PlayspaceManager.Instance.TryPlaceOnPlatform(out position, 0.25f, 1.5f, cubePrefab.transform.localScale.x))
        {
            Instantiate(cubePrefab, position + cubePrefab.transform.localScale.y * Vector3.up, Quaternion.identity);
        }

        // Place bombs
        List <GameObject> bombs = new List <GameObject>();

        for (int i = 0; i < 4; i++)
        {
            if (PlayspaceManager.Instance.TryPlaceOnFloor(out position, 0.25f * Vector3.one))
            {
                bombs.Add(Instantiate(bombPrefab, position, Quaternion.identity));
            }
        }

        // Chibi-robots
        List <RobotController> robots = new List <RobotController>();

        for (int i = 0; i < 3; i++)
        {
            // On platform, carrying bombs
            if (PlayspaceManager.Instance.TryPlaceOnPlatform(out position, 0.25f, 1.5f, 0.25f))
            {
                GameObject      bomb  = Instantiate(bombPrefab);
                GameObject      obj   = Instantiate(robotPrefab, position, Quaternion.identity);
                RobotController robot = obj.GetComponent <RobotController>();
                robot.InitWithBomb(bomb);
            }

            // On floor, without bombs
            if (PlayspaceManager.Instance.TryPlaceOnFloor(out position, 0.25f * Vector3.one))
            {
                GameObject obj = Instantiate(robotPrefab, position, Quaternion.identity);
                robots.Add(obj.GetComponent <RobotController>());
            }
        }

        // Assign placed bombs to robots
        for (int i = 0; i < System.Math.Min(robots.Count, bombs.Count); i++)
        {
            robots[i].InitSeekingBomb(bombs[i]);
        }
    }