Камера при приселаниях

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

Камера при приселаниях

Сообщение NeProUser 18 окт 2018, 16:25

У меня есть скрипт для пресидания персонажа(с ним проблем нет) в котором я реализуются приседания путём изменения компонента высота в charactr controller. Всё бы ничего но комера во время приседания находится слишком высоко и я не знаю как это исправить. Подскажите , есть ли способ?
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: Камера при приселаниях

Сообщение Saltant 18 окт 2018, 18:37

Да, есть легкий способ, используй Cinemachine камеру. https://unity3d.com/ru/learn/tutorials/ ... ng-started
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Камера при приселаниях

Сообщение NeProUser 20 окт 2018, 11:07

спасибо за ответ. технология довольно таки полезная , но есть одна проблема - я не использую unity выше 5.6.3 (похоже эт нужно был писать сразу).
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: Камера при приселаниях

Сообщение NeProUser 20 окт 2018, 11:16

нашлось довольно таки простое решение:
скрипт для камеры:
Синтаксис:
Используется csharp
        public GameObject cam;
        public GameObject campos;
        public GameObject camposST;
        // Use this for initialization
        void Start () {
               
        }
       
        // Update is called once per frame
        void Update () {
                if (gameObject.GetComponent<PRISIDANIE> ().presed == true) {
                        cam.transform.position = campos.transform.position;
                } else {
                        cam.transform.position = camposST.transform.position;
                }
        }


скрипт для приседаний:
Синтаксис:
Используется csharp
public float zn;
        public float zn1;
        public int camzn;
        public bool presed;
        // Use this for initialization
        void Start () {
               
        }
       
        // Update is called once per frame
        void Update () {
                if (Input.GetKey (KeyCode.LeftControl)) {
                        presed = true;
                }else{
                        presed = false;
                }
                if (presed == true) {
                        gameObject.GetComponent <CharacterController> ().height = zn;

                } else {
                        if (Physics.Raycast (transform.position + transform.up, transform.up, 1f)) {
                               
                        } else {
                                gameObject.GetComponent <CharacterController> ().height = zn1;         
                        }
                }
        }
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: Камера при приселаниях

Сообщение Saltant 20 окт 2018, 14:15

Советую тебе никогда не называть переменные вида "PRISIDANIE" "presed" "zn1" т.п, это как минимум дурной тон в дальнейшем твоем развитии это может принести кучу проблем. Называй переменные английскими словами, да так чтоб всем был твой код понятен. Приседание можешь назвать "Duck".
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


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

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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 39