Ошибки скрипта "Вращение камеры"

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

Ошибки скрипта "Вращение камеры"

Сообщение NWOS 22 сен 2011, 18:13

Проблемма такова, писал скрипт по видео ogasoda...дописал исправил ошибки. :ymparty: .Но не все непонимаю как исправить эти.
Скрипт:

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

public class OSCameraControl : MonoBehaviour {
    public Transform target;
    public float walkDistance = 4;
    public float runDistance = 4;
    public float height = 2;
    public float xMouseSpeed = 250.0f;
    public float yMouseSpeed = 150.0f;

    public float rotationDamping = 3.0f;
    public float heightDamping = 2.0f;

    private Transform _myTransform;
    private float _x;
    private float _y;
    private bool _camButtonDown = false;

    void Awake () {
          _myTransform = transform;
    }

    // Use this for initialization
    void Start () {
        if(target == null) Debug.Log("No Target...");
        else CameraSetup();
    }
       
    // Update is called once per frame
    void Update () {
        if(Input.GetMouseButtonDown(1)){
                _camButtonDown = true;
            }
            if(Input.GetMouseButtonUp(1)){
               _camButtonDown = false;
            }
           
        }
    // этот метод вызывается после всех остальных. Для того чтобы камера...
    void LateUpdate(){
         if(target != null){
             if(_camButtonDown){
             Debug.Log("Right Mouse button Down");
             _x += (Input.GetAxis("Mouse X") * xMouseSpeed * 0.02f);
                         _y -= (Input.GetAxis("Mouse Y") * yMouseSpeed * 0.02f);
             
             Quaternion rotation = Quaternion.Euler(_y, _x, 0);
             Vector3 position = rotation * new Vector3(0.0f, height, -walkDistance) + target.position;

             _myTransform.rotation = rotation;
             _myTransform.position = position;
         }
         else{
             _x = 0;
             _y = 0;
             
             float wantedRotationAngle = _myTransform.eulerAngles.y;
                     float wantedHeight = _myTransform.position.y;
       
             float currentRotationAngle = _myTransform.eulerAngles.y;
             float сurrentHeight = _myTransform.position.y;

             // Смягчение по оси X
             currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);

             // Смягчение смещения по высоте
             currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);

             // Преобразование угла в поворот
             Quaternion currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);
             
             // Установка камеры в плоскости и разворот ее на цель
             _myTransform.position = target.position;
             _myTransform.position -= currentRotation * Vector3.forward * walkDistance;

             // Установка высоты камеры
             _myTransform.position = new Vector3(_myTransform.position.x,
                                                     currentHeight,
                                                     _myTransform.position.z);

             //Всегда смотреть на цель
             _myTransform.LookAt (target);
          }
      }
 }

 public void CameraSetup(){
     _myTransform.position = new Vector3(target.position.x,
                                          target.position.y + height,
                                          target.position.z - walkDistance);
     _myTransform.LookAt(target);
                                         

    }
}


Скриншот ошибок:

Изображение
Аватара пользователя
NWOS
UNIт
 
Сообщения: 70
Зарегистрирован: 22 июн 2011, 12:51
Откуда: Украина

Re: Ошибки скрипта "Вращение камеры"

Сообщение NWOS 22 сен 2011, 18:18

Если можно то исправте сам код,я еще нуб :D
Аватара пользователя
NWOS
UNIт
 
Сообщения: 70
Зарегистрирован: 22 июн 2011, 12:51
Откуда: Украина

Re: Ошибки скрипта "Вращение камеры"

Сообщение sp00n 22 сен 2011, 18:20

Вот здесь:
Синтаксис:
Используется csharp
float сurrentHeight = _myTransform.position.y;
в название переменной currentHeight -первая буква кириллица, а не латиница, как должно быть :) Исправте на латинскую.
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: Ошибки скрипта "Вращение камеры"

Сообщение Zaicheg 22 сен 2011, 18:25

Перенесено.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Ошибки скрипта "Вращение камеры"

Сообщение NWOS 22 сен 2011, 18:26

Действительно, спасибо огромное...:D
[V]
Аватара пользователя
NWOS
UNIт
 
Сообщения: 70
Зарегистрирован: 22 июн 2011, 12:51
Откуда: Украина

Re: Ошибки скрипта "Вращение камеры"

Сообщение Tasimov 24 сен 2011, 14:22

А как сделать так что бы скрипт работал, только без нажатия "левой кнопки мышы" , как в гта4 камера крутилась произвольно вогрук человека или машины без нажатия какой либо кнопки.
Пожалуйста помогите. :D
Tasimov
UNец
 
Сообщения: 48
Зарегистрирован: 24 сен 2011, 14:19

Re: Ошибки скрипта "Вращение камеры"

Сообщение Fredo 24 сен 2011, 16:21

Удали все из метода Update(), измени private bool _camButtonDown = false; на private bool _camButtonDown = true;. По хорошему надо вообще удалить все проверки переменной _camButtonDown, но это тебе домашнее задание ;)
Аватара пользователя
Fredo
UNITрон
 
Сообщения: 213
Зарегистрирован: 06 янв 2011, 05:37

Re: Ошибки скрипта "Вращение камеры"

Сообщение craw1er 10 ноя 2011, 08:28

А можно ссылку на видео ogasoda по написанию этого скрипта?
тут могло быть что-то умное
Аватара пользователя
craw1er
UNец
 
Сообщения: 41
Зарегистрирован: 14 апр 2009, 00:10


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

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

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