- Home /
camera's behaviour problem
I've got a simple script written for changing cameras & following gameObjct. But they behave in unexpected way. 1st, game begins with view from second camera. 2ndly, the second camera position does not change to gameObject's position. Here comes the script: using UnityEngine; using System.Collections;
public class MyScript : MonoBehaviour
{
public void ChangeCameras()
{
Camera MainCamera = GameObject.Find("Main Camera").camera;
Camera SecondCamera = GameObject.Find("Second Camera").camera;
MainCamera.enabled = false;
SecondCamera.enabled = true;
GameObject Target;
Transform target;
Target = GameObject.FindWithTag("Needed Unit");
target = Target.transform;
transform.parent = Target.transform;
transform.LookAt(target.position); // or (target) -- doesn't really matter
}
public void ChangeAgain()
{
Camera MainCamera = GameObject.Find("Main Camera").camera;
Camera SecondCamera = GameObject.Find("Second Camera").camera;
transform.parent = null;
MainCamera.enabled = true;
SecondCamera.enabled = false;
}
public void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
ChangeCameras();
}
if (Input.GetKeyDown(KeyCode.DownArrow)){
ChangeAgain();
}
}
}
Help, please!
"game begins with view from second camera"
Check which cameras you have enabled in the editor.
"the second camera position does not change to gameObject's position"
Because you never tell it to. You're missing something like: 'Camera.transform.position = Object.transform.position' etc etc.
Answer by Kirbyrawr · Sep 14, 2012 at 02:19 PM
public class MyScript : MonoBehaviour
{
public void ChangeCameras()
{
Camera MainCamera = GameObject.Find("Main Camera").camera;
Camera SecondCamera = GameObject.Find("Second Camera").camera;
MainCamera.enabled = false;
SecondCamera.enabled = true;
GameObject Target;
Transform target;
Target = GameObject.FindWithTag("Needed Unit");
target = Target.transform;
transform.parent = Target.transform;
transform.LookAt(target.position); // or (target) -- doesn't really matter
}
public void ChangeAgain()
{
Camera MainCamera = GameObject.Find("Main Camera").camera;
Camera SecondCamera = GameObject.Find("Second Camera").camera;
transform.parent = null;
MainCamera.enabled = true;
SecondCamera.enabled = false;
}
public void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
ChangeCameras();
}
else if (Input.GetKeyDown(KeyCode.DownArrow)){
ChangeAgain();
}
}
}
I think you need only add else if, hope it work
Your answer
Follow this Question
Related Questions
camera follow - no rotation 0 Answers
Control camera target from another scripts 1 Answer
changing the target of camera through script 1 Answer
Camera Movement and angles 2 Answers
Is it possible to shake the camera? 4 Answers