Dev – Change the Skybox via Code and use a CardBoardCam Panorama

UPDATE 2017-09-29:
I found a very useful Tutorial on creating VR Skyboxes. Check it out:

Change the Skybox in Unity via Code? This is how it is done. If you want to set the Skybox (manually / not via code) in Unity use:
Edit -> Render Settings and there you can change the Skybox (Das steht zwar in der Doku… Aber scheint falsch zu sein)
Go to Window > Lighting > Scene > Environment Lighting > Skybox

Ok – lets start… But first… RTFM 😉 :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeTheSkybox : MonoBehaviour {

    //Modified code from:
    public Material mat1;
    public Material mat2;

    void OnGUI()
        if (GUI.Button(new Rect(100, 100, 100, 20), "Material 1"))
            RenderSettings.skybox = mat1;
        if (GUI.Button(new Rect(100, 130, 100, 20), "Material 2"))
            RenderSettings.skybox = mat2;

For the Quick and Dirty test I used the Skyboxes from the DramaticSkies_SkyboxCollection. Have Fun.

Hidden content detected! Please login.

Important: This is not “creating the material” via sourcecode. But this can be found here…

Each side of the SkyBox is 2048×2048 in my dummy scene. (8192 Pixels for 360° on the horizontal axis)
The input panorama is using a different size and areas overlap

I chopped / sliced the CardBoardCam 360° Panorama with Gimp into 4 pieces.
1) Define the Slices (25%) with Define Image > Guides > New Guides (by Percent) at 25% 50% 75% horizontal and vertical resp.
2) Guillotine Tool: Apply Image > Tranform > Guillotine

GuillotineTool in Gimp:

Afterwards I created a new material in Unity, changed it to 6 sided Skybox and added the slices. (Had a problem with “left and right” – but I guess this is depending on the “point of view”)

Import the Skybox images with… Wrap Mode set to Clamp rather than Repeat (if you don’t do this, the edges of the images will not meet up seamlessly).

Leave a Reply