//---------------------------------------------------------------------------------------------------
    protected CubeInfo Spawn(int x, int y, int z)
    {
        float   center   = (size - 1) * 0.5f;
        Vector3 position = new Vector3(
            (x - center) * 2f,
            (y - center) * 2f,
            (z - center) * 2f
            );
        CubeInfo cube = Instantiate <CubeInfo>(prefCube, position, Quaternion.identity);

        cube.SetOriginalPosition(position);
        cube.GetComponent <MeshRenderer>().material.color = new Color(
            x * 1f / size,
            y * 1f / size,
            z * 1f / size
            );
        return(cube);
    }