- Home /
Switch to a random camera
Hey, I'm trying to get a script for selecting a random camera. I need it to be that when the player collides with a specific object, the main camera switches to one of four other cameras randomly.
This is the code I have so far:
var camera1 : Camera; //Camera 1
var camera2 : Camera; //Camera 2
var camera3 : Camera; //Camera 3
var camera4 : Camera; //Camera 4
var camera5 : Camera; //Camera 5
function Start () //Camera 1 is enabled on startup
{
camera1.enabled = true;
camera2.enabled = false;
camera3.enabled = false;
camera4.enabled = false;
camera5.enabled = false;
}
function OnCollisionEnter(hit : Collision)
{
if(hit.gameObject.tag == "Soul Well" && Player.people >= 1)
{
camera1.enabled = false;
camera2.enabled = true;
camera3.enabled = false;
camera4.enabled = false;
camera5.enabled = false;
}
}
As you can see, at the moment it's only switching to a specific camera. Tried a few other random scripts and couldn't get them to work in the oncollision function.
Thanks
Answer by syclamoth · Oct 17, 2011 at 02:06 AM
Instead of having a whole bunch of cameras, make an array of cameras! Then use loops to manage all the other stuff.
var cams : Camera[];
private var currentCam : Camera;
function Start() {
for(var curCam in cams)
{
curCam.enabled = false;
}
currentCam = cams[0];
currentCam.enabled = true;
}
Assign them in the editor, then when you want to set a random camera use these three lines-
currentCam.enabled = false;
currentCam = cams[Random.Range(0, cams.Length)];
currentCam.enabled = true;
Please note, this does not check for whether you are randomly switching to the same camera- you'd have to do a few more checks for that.
Ideally use a shuffle bag to prevent the same Camera from co$$anonymous$$g up twice in a row.
Your answer
Follow this Question
Related Questions
Make a camera collision 1 Answer
move camera when it collides with a trigger 1 Answer
Randomly keeping paintball intact on collision 1 Answer
Spawn object at random points within camera view 1 Answer
Camera raycast? 2 Answers