Проблема со сменой камер

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Проблема со сменой камер

Сообщение Kill4F1 24 мар 2017, 19:10

Есть небольшая проблема,которую к сожалению как решать я пока что не понял.
На сцене есть дефолтный FPSController с тэгом "Player",есть Canvas,Camera,триггер и скрипт на триггере.
При смене камер,Camera,которая должна видеть текст на Canvas'e не видит и курсор не появляется.
Отдельно же Camera видит текст и есть курсор.
Сам скрипт :
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class ChangeCameras : MonoBehaviour {
        public GameObject Camera1; //FPSController
        public GameObject Camera2; //Camera
        bool  enter;
        bool  stoptime = false;


        void  Update (){
                if(enter)
                if(Input.GetKey("e")  && stoptime == false )
                {
                        Camera1.SetActive (false);
                        Camera2.SetActive (true);
                        stoptime = true;
                        Time.timeScale = 0;
                }
        }
        void  OnTriggerEnter ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = true;
                }
        }


        void  OnTriggerExit ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = false;
                }
        }
}
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Rpabuj1 24 мар 2017, 22:34

Kill4F1 писал(а):Есть небольшая проблема,которую к сожалению как решать я пока что не понял.
На сцене есть дефолтный FPSController с тэгом "Player",есть Canvas,Camera,триггер и скрипт на триггере.
При смене камер,Camera,которая должна видеть текст на Canvas'e не видит и курсор не появляется.
Отдельно же Camera видит текст и есть курсор.
Сам скрипт :
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class ChangeCameras : MonoBehaviour {
        public GameObject Camera1; //FPSController
        public GameObject Camera2; //Camera
        bool  enter;
        bool  stoptime = false;


        void  Update (){
                if(enter)
                if(Input.GetKey("e")  && stoptime == false )
                {
                        Camera1.SetActive (false);
                        Camera2.SetActive (true);
                        stoptime = true;
                        Time.timeScale = 0;
                }
        }
        void  OnTriggerEnter ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = true;
                }
        }


        void  OnTriggerExit ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = false;
                }
        }
}


А включены обе камеры? (Camera.enable )?
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Проблема со сменой камер

Сообщение Kill4F1 24 мар 2017, 22:50

Одна камера включена,вторая отключена.
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Rpabuj1 24 мар 2017, 23:00

Kill4F1 писал(а):Одна камера включена,вторая отключена.

Включите их обе, а потом активируете или деактивируете. Заметьте, я вкладываю в слова "включить" и "активировать" разный смысл.
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Проблема со сменой камер

Сообщение Kill4F1 25 мар 2017, 00:05

Сделал,всё так же не видно текста на Canvas,курсор появился,но к сожалению при нажатии на любое пустое место или button он пропадает и вернуть можно только через "escape".
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Rpabuj1 25 мар 2017, 11:22

Kill4F1 писал(а):Сделал,всё так же не видно текста на Canvas,курсор появился,но к сожалению при нажатии на любое пустое место или button он пропадает и вернуть можно только через "escape".

Хм... А скиньте скрин настроек всех камер и канваса?
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Проблема со сменой камер

Сообщение Kill4F1 25 мар 2017, 11:41

FPSCamera : Изображение
Camera : Изображение
Canvas : Изображение
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Kill4F1 25 мар 2017, 13:32

Решил не менять камеры,а добавлять canvas в fpscontroller камеру,но проблема с курсором так и не пропала.
Возможно проблема в Lock Cursor у FPSContoller'a,но мой скрипт не может найти переменную "lockCursor" у скрипта "MouseLook"
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityStandardAssets.Characters;

public class InteractiveCanvas : MonoBehaviour {
        public Canvas Canvas;
        bool  enter;
        bool  stoptime = false;

        void  Update (){
                if(enter)
                if(Input.GetKey("e")  && stoptime == false )
                {
                        GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;
                        Canvas.gameObject.SetActive (true);
                        stoptime = true;
                        Time.timeScale = 0;
                        Cursor.visible = true; 
                }
        }
        void  OnTriggerEnter ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = true;
                }
        }


        void  OnTriggerExit ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = false;
                }
        }
  }


Проблема в строчке :
Синтаксис:
Используется csharp
GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Rpabuj1 25 мар 2017, 13:37

Kill4F1 писал(а):Решил не менять камеры,а добавлять canvas в fpscontroller камеру,но проблема с курсором так и не пропала.
Возможно проблема в Lock Cursor у FPSContoller'a,но мой скрипт не может найти переменную "lockCursor" у скрипта "MouseLook"
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityStandardAssets.Characters;

public class InteractiveCanvas : MonoBehaviour {
        public Canvas Canvas;
        bool  enter;
        bool  stoptime = false;

        void  Update (){
                if(enter)
                if(Input.GetKey("e")  && stoptime == false )
                {
                        GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;
                        Canvas.gameObject.SetActive (true);
                        stoptime = true;
                        Time.timeScale = 0;
                        Cursor.visible = true; 
                }
        }
        void  OnTriggerEnter ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = true;
                }
        }


        void  OnTriggerExit ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = false;
                }
        }
  }


Проблема в строчке :
Синтаксис:
Используется csharp
GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;


Может, лучше Screen.lockCursor?
Или я не совсем понял, чего вы хотите добиться?
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Проблема со сменой камер

Сообщение Kill4F1 25 мар 2017, 13:42

В скрипте "MouseLook" есть переменная
Синтаксис:
Используется csharp
public bool  lockCursor = true

Мне нужно отключить эту переменную при нажатии "e" в триггере
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение Rpabuj1 25 мар 2017, 13:51

Kill4F1 писал(а):В скрипте "MouseLook" есть переменная
Синтаксис:
Используется csharp
public bool  lockCursor = true

Мне нужно отключить эту переменную при нажатии "e" в триггере

Перед Find'ом должна быть ссылка типа
public GameObject myobj;

А потом

myobj = GameObject.Find...
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Проблема со сменой камер

Сообщение samana 25 мар 2017, 14:03

Rpabuj1 писал(а):Перед Find'ом должна быть ссылка типа

Это заблуждение.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Проблема со сменой камер

Сообщение Kill4F1 25 мар 2017, 14:05

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityStandardAssets.Characters;

public class InteractiveCanvas : MonoBehaviour {
        public Canvas Canvas;
        public GameObject Controller;
        bool  enter;
        bool  stoptime = false;

        void  Update (){
                if(enter)
                if(Input.GetKey("e")  && stoptime == false )
                {
                        Controller = GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;
                        Canvas.gameObject.SetActive (true);
                        stoptime = true;
                        Time.timeScale = 0;
                        Cursor.visible = true; 
                }
        }
        void  OnTriggerEnter ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = true;
                }
        }


        void  OnTriggerExit ( Collider other  ){
                if (other.gameObject.tag == "Player") {
                        enter = false;
                }
        }
  }


Проблема состоит в том,что в строчке
Синтаксис:
Используется csharp
Controller = GameObject.Find("FPSController").GetComponent<MouseLook>().lockCursor = false;

MouseLook красный,т.к. не может увидеть скрипт в FpsContoller'e
Ну и сама ошибка :
Изображение
Kill4F1
UNец
 
Сообщения: 10
Зарегистрирован: 24 мар 2017, 19:01

Re: Проблема со сменой камер

Сообщение samana 25 мар 2017, 14:21

Kill4F1 писал(а):MouseLook красный,т.к. не может увидеть скрипт в FpsContoller'e


Синтаксис:
Используется csharp
using UnityStandardAssets.Characters.FirstPerson;
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Проблема со сменой камер

Сообщение Rpabuj1 25 мар 2017, 14:41

samana писал(а):
Rpabuj1 писал(а):Перед Find'ом должна быть ссылка типа

Это заблуждение.

Не знал, спасибо.
Прошу прощения у автора темы за этот совет.
Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

След.

Вернуться в Почемучка

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

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