Страница 1 из 1

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

СообщениеДобавлено: 18 окт 2018, 16:25
NeProUser
У меня есть скрипт для пресидания персонажа(с ним проблем нет) в котором я реализуются приседания путём изменения компонента высота в charactr controller. Всё бы ничего но комера во время приседания находится слишком высоко и я не знаю как это исправить. Подскажите , есть ли способ?

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

СообщениеДобавлено: 18 окт 2018, 18:37
Saltant
Да, есть легкий способ, используй Cinemachine камеру. https://unity3d.com/ru/learn/tutorials/ ... ng-started

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

СообщениеДобавлено: 20 окт 2018, 11:07
NeProUser
спасибо за ответ. технология довольно таки полезная , но есть одна проблема - я не использую unity выше 5.6.3 (похоже эт нужно был писать сразу).

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

СообщениеДобавлено: 20 окт 2018, 11:16
NeProUser
нашлось довольно таки простое решение:
скрипт для камеры:
Синтаксис:
Используется 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;         
                        }
                }
        }

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

СообщениеДобавлено: 20 окт 2018, 14:15
Saltant
Советую тебе никогда не называть переменные вида "PRISIDANIE" "presed" "zn1" т.п, это как минимум дурной тон в дальнейшем твоем развитии это может принести кучу проблем. Называй переменные английскими словами, да так чтоб всем был твой код понятен. Приседание можешь назвать "Duck".