I wrote this to be attached to the “terminal” that switches any two cameras assigned, (Camera 1 being the player camera and Camera2 being an overhead).
it worked well until Unity 5 told me that “.active” is retired, and to use “.SetActive” instead.
var Camera1 : Camera;
var Camera2 : Camera;
var player: Transform;
var range: float=4f;
var myposition: Transform;
function Start () {
player = GameObject.FindWithTag("Player").transform; //target the player
Camera1.SetActive = (true);
Camera2.SetActive = (false);
}
function Update () {
var distance = Vector3.Distance(myposition.position, player.position);
if (distance<=range){
if (Input.GetKeyDown(KeyCode.C)) {
// toggle cameras
Camera1.SetActive = !Camera1.SetActive;
Camera2.SetActive = !Camera2.SetActive;
}
}
}
now it doesnt work at all, i was going to add a button option like a prompt, but i need to figure out this first. any help is appreciated.
The Camera1 and Camera2 variables are of type Camera, not gameobject. For Components (like Camera), you can still use .enabled = false. To(De)Activate whole GameObjects, you have to use gameObject.SetActive(false).
– Cherno