Пятница, 19 Октября 2018, 18:37

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Ошибки в скрипте
Ошибки в скрипте
ZiliusДата: Суббота, 17 Октября 2015, 22:38 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет, юнька выдает ошибку:
error CS1061: Type `UnityEngine.Component' does not contain a definition for `freezeRotation' and no extension method `freezeRotation' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)
Подскажите... как можно это исправить?
Код
using UnityEngine;
using System.Collections;

public class CamMove : MonoBehaviour
{
    public Transform target; //Объект за которым летаем(Наш персонаж)
    public float distance = 3.0f; //На каком ратоянии от него
    public float xSpeed = 125.0f; //Чуствительность по Х
    public float ySpeed = 50.0f; //Y Чуствительность
    public float targetHeight = 2.0f; //Высота относительно объекта
                    //Минимальный и максимальный угол поворота Y инче камеру разверет, Дальше у нас будет простая функция для инвертации их в обратные числа
    public float yMinLimit = -40;
    public float yMaxLimit = 80;
    //Максимальное удаление и приближение камеры к персонажу, искорость.
    public float maxDistance = 10.0f;
    public float minDistance = 0.5f;
    public float zoomRote = 90.0f;

    private float x = 0.0f; //Угол поворота по Y?
    private float y = 0.0f; //Уго поворота по X?

    [AddComponentMenu("Scripts/Mouse Orbit")] //Добавляем в меню

    public void Start()
    {
        //переворачивам углы
        Vector3 angles = transform.eulerAngles;
        x = angles.y;
        y = angles.x;

        if (rigidbody)
            rigidbody.freezeRotation = true; //Если камера столкнется с физ.объектомона остановиться
    }

    public void LateUpdate()
    {
        if (target)
        {//Если цель установлена(Персонаж)
         //Меняем углы согласно положению мыши
            x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
            y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
            //Меняем дистанция до персонажа.
            distance -= (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime) * zoomRote * Mathf.Abs(distance);
            distance = Mathf.Clamp(distance, minDistance, maxDistance);

            y = ClampAngle(y, yMinLimit, yMaxLimit); //Вызыв самописной функции для ограничения углов поврот
            movePlayer.x = x;
            //Повернуть камеру согласно поченым данным
            Quaternion rotation = Quaternion.Euler(y, x, 0);
            transform.rotation = rotation;

            //Двигаем камеру и следим за персонажем
            Vector3 position = rotation * new Vector3(0.0f, targetHeight + 0.5f, -distance) + target.position;
            transform.position = position;

            //Следуйщи код нужен что бы камера не проваливалась по ланшафт   
            RaycastHit hit;
            Vector3 trueTargetPosition = target.transform.position - new Vector3(0, -targetHeight, 0);
            if (Physics.Linecast(trueTargetPosition, transform.position, out hit))
            {
                float tempDistance = Vector3.Distance(trueTargetPosition, hit.point) - 0.28f;
                position = target.position - (rotation * Vector3.forward * tempDistance + new Vector3(0, -targetHeight, 0));
                transform.position = position;
            }
        }

    }
    //Меняем значения углов
    public static float ClampAngle(float angle, float min, float max)
    {
        if (angle < -360)
            angle += 360;
        if (angle > 360)
            angle -= 360;
        return Mathf.Clamp(angle, min, max);
    }
}


Сообщение отредактировал Zilius - Воскресенье, 18 Октября 2015, 00:04
YellowAfterlifeДата: Суббота, 17 Октября 2015, 23:47 | Сообщение # 2
Сейчас нет на сайте
Цитата Zilius ()
Код
codeusing UnityEngine;

Возможно, этот префикс "code" был скопирован случайно и является лишним.


ZiliusДата: Воскресенье, 18 Октября 2015, 00:05 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата YellowAfterlife ()
Цитата Zilius ()
Код
codeusing UnityEngine;

Возможно, этот префикс "code" был скопирован случайно и является лишним.

Да с этим тупанул, появилась другая ошибка sad
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Ошибки в скрипте
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг