// Update is called once per frame void Update() { if (regenerateDisplayWall) { foreach (GameObject g in displayObjects) { Destroy(g); } Destroy(screenMask); displayObjects.Clear(); CAVE2ScreenMaskVerticies.Clear(); CAVE2ScreenMaskUV.Clear(); CAVE2ScreenMaskTriangles.Clear(); GenerateCAVE2(); UpdateScreenMask(); regenerateDisplayWall = false; } if (last_floorRenderMode != floorRenderMode) { UpdateScreenMask(); last_floorRenderMode = floorRenderMode; } if (last_simulateDisplaysState != simulateDisplays) { foreach (GameObject g in displayObjects) { g.GetComponent <CAVE2Display>().enabled = simulateDisplays; if (!simulateDisplays) { g.GetComponent <CAVE2Display>().RemoveDisplayTexture(); } else { g.GetComponent <CAVE2Display>().CreateDisplayTexture(); } } last_simulateDisplaysState = simulateDisplays; } }
void Start() { displayObjects = new ArrayList(); CAVE2ScreenMaskVerticies = new List <Vector3>(); CAVE2ScreenMaskUV = new List <Vector2>(); CAVE2ScreenMaskTriangles = new List <int>(); if (outputConfig != ConfigOutput.None) { initPosition = transform.position; initRotation = transform.rotation; transform.position = Vector3.zero; transform.rotation = Quaternion.identity; } GenerateCAVE2(); if (outputConfig != ConfigOutput.None) { transform.position = initPosition; transform.rotation = initRotation; } last_floorRenderMode = floorRenderMode; last_simulateDisplaysState = simulateDisplays; }