Ищу мануал по скриптам начального уровня

Программирование на Юнити.

Re: Скрипты для Новичка!

Сообщение Nuprahtor 16 фев 2010, 15:02

Благодарю за объяснение, но что-то у меня не получается.
transform.position = new Vector3(transform.position.x, transform.position.y + 0.5f, transform.position.z);
Это строка, как я понял, перемещает объект в пространстве, попытка заменить position на rotation к успеху не привела, консоль пишет:Cannot convert 'UnityEngine.Vector3' to 'UnityEngine.Quaternion'.
Постараюсь объяснить подробнее.
http://www.foul-invasion.ucoz.ru/hlppls.png
mdl_char - это объект, который нужно поворачивать. Когда ось Z равна нулю, все спрайты смотрят влево. Стоит изменить в редакторе значение Z на 180, объект будет смотреть вправо:
http://www.foul-invasion.ucoz.ru/hlpplspls.png
Персонаж слева - Z=0, справа - Z = 180
Так как анимацию я делаю через 3д объекты, мне помимо спрайтов нужно поворачивать и саму модель (вернее поворачивается сама модель, а спрайты, как чайлды модели, поворачиваются вслед за ней)
Аватара пользователя
Nuprahtor
UNец
 
Сообщения: 41
Зарегистрирован: 06 дек 2009, 16:44
Откуда: http://nuprahtor.wordpress.com/

Re: Скрипты для Новичка!

Сообщение warr11r 16 фев 2010, 20:47

Я таким макаром поворачиваю:
http://docs.unity3d.ru/ScriptReference/ ... eAxis.html

Все крутите, выражая через Кватернионовый класс.
Мудрость - это когда начинаешь понимать, что все время занимаешься какой-то х...ней.
Изображение
Аватара пользователя
warr11r
UNITрон
 
Сообщения: 310
Зарегистрирован: 06 июн 2009, 03:21
Откуда: Украина, Ровно
  • ICQ

FPSWalker

Сообщение Nuprahtor 16 июл 2010, 22:39

Как нужно изменить FPSWalker.js, чтобы игрок мог управлять персонажем в воздухе и при этом была нормальная гравитация?
Аватара пользователя
Nuprahtor
UNец
 
Сообщения: 41
Зарегистрирован: 06 дек 2009, 16:44
Откуда: http://nuprahtor.wordpress.com/

Re: Скрипты для Новичка!

Сообщение Zaicheg 17 июл 2010, 08:45

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

Re: Ищу мануал по скриптам начального уровня

Сообщение Nuprahtor 17 июл 2010, 09:28

Вот скрипт (с официального форума)
Итак: передвижение во время прыжка
Код: Выделить всё
var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;

private var moveDirection = Vector3.zero;
private var grounded : boolean = false;
private var lastYSpeed : float = 0;

function FixedUpdate() {
   if (grounded)
   {
      // We are grounded, so recalculate movedirection directly from axes
      moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
      moveDirection = transform.TransformDirection(moveDirection);
      moveDirection *= speed;
     
      if (Input.GetButton ("Jump")) {
         moveDirection.y = jumpSpeed;
      }
     
      // On the ground
      lastYSpeed = 0;
   }
   else
   {
        // We are in the air, maintain lastYSpeed
        moveDirection = new Vector3(Input.GetAxis("Horizontal"), lastYSpeed, Input.GetAxis("Vertical"));
      moveDirection = transform.TransformDirection(moveDirection);
     
      // Remove speed factor from influencing Y value
      moveDirection.x *= speed;
      moveDirection.z *= speed;
   }

   // Apply gravity
   moveDirection.y -= gravity * Time.deltaTime;
   lastYSpeed = moveDirection.y;
   
   // Move the controller
   var controller : CharacterController = GetComponent(CharacterController);
   var flags = controller.Move(moveDirection * Time.deltaTime);
   grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}

@script RequireComponent(CharacterController)
Аватара пользователя
Nuprahtor
UNец
 
Сообщения: 41
Зарегистрирован: 06 дек 2009, 16:44
Откуда: http://nuprahtor.wordpress.com/

Пред.

Вернуться в Скрипты

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

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