Смена камеры на ПКМ

Общие вопросы о Unity3D

Смена камеры на ПКМ

Сообщение Gidly 05 авг 2018, 12:42

Добрый день, вопрос таков, имеется скрипт на смену камеры, но он работает только если использовать GetMouseButton, а мне нужно GetMouseButtonUp или GetMouseButtonDown, но при попытке это использовать у меня все дергается- то есть камера меняется и сразу же переключается обратно. Как это исправить? Я думал насчет boolean переменной, но скрипт написан по видеоуроку и я немного его подкорректировал, а то раньше при смене камеры они обе снимали, но сейчас не об этом, а с JavaScript я не дружу. Вот он:
Синтаксис:
Используется javascript
var camera1: Camera;
var camera2: Camera;

camera1.enabled = true;
camera2.enabled = false;

function Update() {
    if (Input.GetMouseButton(1)) {
        if (camera2.enabled == false)
            camera2.enabled = true;
            camera1.enabled = false;
    }
    else {
        camera2.enabled = false;
        camera1.enabled = true;
    }
}
Аватара пользователя
Gidly
UNIт
 
Сообщения: 61
Зарегистрирован: 07 июл 2018, 19:20
Откуда: Из Бангладеша

Re: Смена камеры на ПКМ

Сообщение waruiyume 05 авг 2018, 13:48

Синтаксис:
Используется csharp
if (Input.GetMouseButtonDown(1)) {
        camera2.enabled == !camera2.enabled;
        camera1.enabled = !camera2.enabled;
}
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Смена камеры на ПКМ

Сообщение 1max1 05 авг 2018, 13:53

У тебя там очепятка "==".
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Смена камеры на ПКМ

Сообщение Gidly 05 авг 2018, 21:54

waruiyume писал(а):
Синтаксис:
Используется csharp
if (Input.GetMouseButtonDown(1)) {
        camera2.enabled == !camera2.enabled;
        camera1.enabled = !camera2.enabled;
}

Спасибо, получилось! Вот так написал:
Синтаксис:
Используется javascript
var camera1: Camera;
var camera2: Camera;

camera1.enabled = true;
camera2.enabled = false;

function Update() {
    if (Input.GetMouseButtonDown(1)) {
        if (camera2.enabled == false) {
            camera2.enabled = !camera2.enabled;
            camera1.enabled = !camera2.enabled;
        }
        else {
            camera2.enabled = false;
            camera1.enabled = true;
        }
    }
}
Аватара пользователя
Gidly
UNIт
 
Сообщения: 61
Зарегистрирован: 07 июл 2018, 19:20
Откуда: Из Бангладеша

Re: Смена камеры на ПКМ

Сообщение Rando_OM 06 авг 2018, 06:43

Проверки не нужны, просто вставляете это заместо всего вашего кода
Синтаксис:
Используется csharp
if (Input.GetMouseButtonDown(1)) {
        camera2.enabled == !camera2.enabled;
        camera1.enabled = !camera2.enabled;
}
Мои игры доступны онлайн на Kongregate.com! ---->>
Rando_OM
UNIт
 
Сообщения: 94
Зарегистрирован: 22 дек 2015, 03:44
Откуда: Россия
Skype: gorodok402
  • Сайт

Re: Смена камеры на ПКМ

Сообщение Shock 09 авг 2018, 04:55

А вообще ваша ошибка в том, что вы не используете скобки. Никогда так не делайте. Ваш код равносилен такому:

Синтаксис:
Используется csharp
function Update() {
    if (Input.GetMouseButton(1)) {
        if (camera2.enabled == false) {
            camera2.enabled = true;
        }
        camera1.enabled = false;
    } else {
        camera2.enabled = false;
        camera1.enabled = true;
    }
}


Попортился и внутренний if и блок else
Аватара пользователя
Shock
UNIт
 
Сообщения: 77
Зарегистрирован: 10 окт 2016, 18:22


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6