Hi, I would like to switch between cameras depending on the position of my player position, how can I do this please?
Thanks a lot for your time.
Hi, I would like to switch between cameras depending on the position of my player position, how can I do this please?
Thanks a lot for your time.
You can activate and deactivate cameras if you can get a hold of the object that holds them.
//cameraObject is the gameObject which holds the camera
cameraObject.camera.active = false;
So If you had a script which kept track of all the cameras in your scene then you could switch cameras easily. For example here is a function which would go through an array of camera objects and turn a certain one on (based on the index sent to it).
var cameras : GameObject[];
function SelectCamera (index : int) {
for (var i : int=0 ;i<wcameras.length; i++) {
// Activate the selected camera
if (i == index){
cameras*.camera.active = true;*
*// Deactivate all other cameras*
*}else{*
_cameras*.camera.active = false;*_
_*}*_
_*}*_
_*```*_
_*<p>You could use this function by calling it with a message</p>*_
_*```*_
_*BroadcastMessage ("SelectCamera", 1);*_
_*```*_
_*<p>or by outright calling it</p>*_
_*```*_
_*SelectCamera(1);*_
_*```*_
_*<p>You just need to get hold of the instance of the script it's in</p>*_
DastardlyBanana's answer would be more flexible, but i'll post my (very simple!) answer here anyway:
You could check for a collision with a collider and then enabled/disable your cameras, so:
var Camera1 : Camera;
var Camera2 : Camera;
function Start(){
Camera1.enabled = true;
Camera2.enabled = false;
}
function OnTriggerEnter (other : Collider) {
if(other.gameObject.name == "switch_camera"){
Camera1.enabled = false;
Camera2.enabled = true;
}
}
function OnTriggerExit (other : Collider) {
if(other.gameObject.name == "switch_camera"){
Camera1.enabled = true;
Camera2.enabled = false;
}
}
Camera1 and Camera2 are assigned in the editor, or you could assign them with code.
Cheers.
Thanks because I've just looked at your answer I had a lot o thngs to do but it's not as interresting as your answer thanks to you 2!!
This script worked for me. It only works for 2 camera’s as far as I know but you might be able to edit it.
var cam1 : Camera;
var cam2 : Camera;
function Start() {
cam1.enabled = true;
cam2.enabled = false;
}
function Update() {
if (Input.GetKeyDown(KeyCode.C)) {
cam1.enabled = !cam1.enabled;
cam2.enabled = !cam2.enabled;
}
}