Сегодня я начинаю серию видеоуроков по созданию FPS на движке Unity3D. Начнем мы с азов и дальше будем развиваться в сторону повышения сложности.
Урок 1. Создание приседаний.
Длительность: 0:14:14 Просмотр: online/offline Разрешение: 1280x1024 Вес видео: ~35 Мб Звук: нет, сопровожение текстом Формат: mp4 Скачать с Народа Скачать с НекстМэйл Скачать с Dropbox Комментарии:если у вас в приседании не двигается вправо/влево/назад, то ничего страшного. Просто эти клавиши в сочетании с Ctrl образуют хоткеи, которые ловит юнити. В билде все будет ОК.
Сообщение отредактировал Zer0n - Ср, 02 Фев 2011, 17:00
Zer0n, что-то не получается Вот написал скрипт как в видеоуроке,а у меня в логе ошибка выскакивает.Вот такая: Assets/PlayerCrouch.cs(12,9): error CS0029: Cannot implicitly convert type `UnityEngine.BoxCollider' to `UnityEngine.CharacterController'
Помоги пожалуйста.Вот скрипт:
Code
using UnityEngine; using System.Collections;
public class PlayerCrouch : MonoBehaviour { public CharacterController controller ; //переменная для контроллера игрока public BoxCollider collider ; //переменная для коллайдера игрока private Vector3 nScale, nBoxSize; //переменные нормального положения
// Use this for initialization void Start () { controller = GetComponent<CharacterController> (); //переменная компонента к переменной controller = GetComponent<BoxCollider> (); // аналогично верхнему nScale = transform.localScale; nBoxSize = collider.Size; cScale = transform.localScale - new Vector3 (0.5f, 0.5f, 0.5f); cBoxSize = new Vector3(collider.size.x * 2, collider.size.y, collider.size.z*2); // размер осей x и z увеличиваем в 2 раза }
// Update is called once per frame void Update () { Vector3 nPos = new Vector3(transform.position.x, transform.position.y + controller.height , transform.position.z); if (Input.GetKey(KeyCode.LeftControl)) { transform.localScale = cScale; //размеры приседания collider.Size = cBoxSize; } else if (Input.GetKeyUp(KeyCode.LeftControl)) { transform.localScale = nScale; // обратно в нормальное положение collider.size = nBoxSize; transform.position = nPos; // установка позиции } } }
1. А если внимательнее быть? 2. Или просто прочитать что написано в ошибке? 3. Или просто логику включить? С третьего - Зачем в двух строках подряд одной переменной присваивать разные значения? Нелогично? Второе - В сообщении об ошибке четко видно, что ошибка в 12 строке. Ну так перечитай ее внимательнее и включи первое - внимательность. Сразу же увидишь, что в 12-й строке вместо controller нужно collider