Unity 3D - несколько сценариев переключения камер по коду - PullRequest
0 голосов
/ 28 сентября 2018

я делаю небольшую сцену в Unity 3D с несколькими камерами

Я пытаюсь создать скрипт для замены камеры, нажимая клавиши 1,2,3,4,5,6,7,8,9,0

Каждый номер направляется на конкретную камеру.

Любая помощь может быть полезна.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Вот полная версия скрипта, которую вы можете использовать для переключения между камерами

using System.Collections.Generic;
using UnityEngine;

public class CameraSwitch : MonoBehaviour
{
    public List<Camera> Cameras;

    private void Start()
    {
        EnableCamera(0);
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            EnableCamera(0);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            EnableCamera(1);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            EnableCamera(2);
        }

        /*
         * If you want to add more cameras, you need to add
         * some more 'else if' conditions just like above
         */
    }

    private void EnableCamera(int n)
    {
        Cameras.ForEach(cam => cam.enabled = false);
        Cameras[n].enabled = true;
    }
}

Назовите скрипт CameraSwitch (полное имя CameraSwitch.cs), создайте новый GameObject на вашей сцене или используйтесуществующего, добавьте скрипт в GameObject (либо из меню Add Component, либо просто перетащите скрипт в инспектор вашего GameObject), затем вам нужно развернуть свойство Cameras, щелкнув по нему в инспекторе,установите номер камеры (Size) на 3 и свяжите ваши камеры в следующих полях.Сначала установите основную камеру и не оставляйте поле пустым, иначе скрипт не удастся выполнить.

Если вам нужно добавить новую камеру в список, просто добавьте условие else if помимо существующих и не используйтене забудьте изменить размер своего списка и связать новые камеры в инспекторе.

0 голосов
/ 28 сентября 2018

Вы можете использовать этот простой код:

public Camera camera1;
public Camera camera2;
...

void Start()
{
    camera1.enabled = true;
    camera2.enabled = false;
    ...
}

void Update()
{
    if(Input.GetKeyDown(KeyCode.Alpha1))
    {
         camera1.enabled = true;
         camera2.enabled = false;
         ...
    }
    else if(Input.GetKeyDown(KeyCode.Alpha2))
    {
         camera1.enabled = false;
         camera2.enabled = true;
         ...
    }
    ...
}

Вы можете добавить другие камеры, как это.Я надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...