public Camera camera1;
public Camera camera2;
// Use this for initialization
void Start () {
camera1 = (Camera)(object)GameObject.FindGameObjectWithTag("MainCamera");
camera2 = GetComponent<Camera>();
camera1.enabled = true;
camera2.enabled = false;
void Update () {
if (Input.GetKey(KeyCode.W))
{
camera2.enabled = !camera2.enabled;
camera1.enabled = !camera1.enabled;
transform.Translate(Vector3.forward * Time.deltaTime * speed);
};
При запуске unity выдает такую ошибку -
InvalidCastException: Cannot cast from source type to destination type.
CubeScript.Start () (at Assets/scripts/CubeScript.cs:12)
-Т.е оно ругается на строку
camera1 = (Camera)(object)GameObject.FindGameObjectWithTag("MainCamera");
- из - за привидения типов, но по-другому преобразовать из GameObject в Camera у меня не выходит - т.к мне из двух камер на сцене в это поле нужно присвоить одну конкртную, а это же как я понимаю единственный способ получит ссылку на внешний объект?
И далее при нажатии соответствующей клавиши W
возникает ошибка:
nassignedReferenceException: The variable camera2 of CubeScript has not been assigned.
You probably need to assign the camera2 variable of the CubeScript script in the inspector.
CubeScript.Update () (at Assets/scripts/CubeScript.cs:23)
-почему unity говорит что значение для переменной camera2 не назначено? Ведь вот здесь -
camera2 = GetComponent<Camera>();
я присваивая ей значение - объект получает камеру которую я "повесил" на объект, а
camera1 = (Camera)(object)GameObject.FindGameObjectWithTag("MainCamera");
- студия получает "главную камеру" - т.е у меня в сцене - две камеры