Приседание

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

Приседание

Сообщение Yeti 03 фев 2010, 16:59

Помогите доработать скрипт "FPC Walker" некоторыми строчками, чтоб камера опускалась при нажатии клавиши С, например (эффект приседания персонажа).
Изображение
Начал разработку игры - клон ГТА, моделирую объекты
Yeti
UNIт
 
Сообщения: 84
Зарегистрирован: 26 ноя 2009, 09:45
Откуда: Москва
  • ICQ

Re: Приседание

Сообщение WebWolf 03 фев 2010, 18:58

Yeti писал(а):Помогите доработать скрипт "FPC Walker" некоторыми строчками, чтоб камера опускалась при нажатии клавиши С, например (эффект приседания персонажа).

Я делал но у меня ацки коряво)) он не вставал.. только в прышке.. иначе проваливался... поэтому если кто напишет тоже буду рад)) и бег желательно тоже))
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Приседание

Сообщение Slava 03 фев 2010, 20:06

Ну вы блин даете. Надо менять controller.height и controller.center.y. У меня значения только для моего перса, поставьте свои, и вместо моего thdPersonTarget вам надо свои ружбайки както задать...
Код: Выделить всё
private var controller : CharacterController;
private var crouch : boolean = false;
private var thdPersonTarget : Transform;
private var thdPersonTargetPos = 1.7;
private var dampVelocity = 0.2;

function Start () {
   controller = GetComponent(CharacterController);
   thdPersonTarget = GameObject.FindWithTag("ThirdPersonTarget").transform;
}

function Update () {
   // Play the sit animation
   var newPos = Mathf.SmoothDamp(thdPersonTarget.localPosition.y, thdPersonTargetPos, dampVelocity, .2);
   thdPersonTarget.localPosition.y = newPos;
   if (Input.GetButtonDown ("Crouch"))
      Crouch ();
}

function Crouch () {
   if (!crouch) {
      crouch = true;
      controller.height = 0.9;
      controller.center.y = 0.47;
      thdPersonTargetPos = 1.0;
   } else {
      crouch = false;
      controller.height = 1.6;
      controller.center.y = 0.82;
      thdPersonTargetPos = 1.7;
   }
}
Добавить slava-1234 в Skype
Slava
UNIт
 
Сообщения: 135
Зарегистрирован: 05 апр 2009, 05:14

Re: Приседание

Сообщение Yeti 04 фев 2010, 09:58

этот код вставить в код ФПС Валкер?
Изображение
Начал разработку игры - клон ГТА, моделирую объекты
Yeti
UNIт
 
Сообщения: 84
Зарегистрирован: 26 ноя 2009, 09:45
Откуда: Москва
  • ICQ

Re: Приседание

Сообщение badbii 04 фев 2010, 13:47

bbbbbbbbbbbbbb
Последний раз редактировалось badbii 23 ноя 2010, 11:28, всего редактировалось 1 раз.
badbii
UNIт
 
Сообщения: 65
Зарегистрирован: 12 дек 2009, 20:27

Re: Приседание

Сообщение Yeti 05 фев 2010, 18:34

код не работает!
Изображение
Начал разработку игры - клон ГТА, моделирую объекты
Yeti
UNIт
 
Сообщения: 84
Зарегистрирован: 26 ноя 2009, 09:45
Откуда: Москва
  • ICQ

Re: Приседание

Сообщение Slava 06 фев 2010, 04:59

Все работает. Просто надо было под себя переделать. Вот стандартный FPSWalker, вставил туда приседание. Надо задать там камеру и все.
Код: Выделить всё
var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;
var cameraAndWeapons : Transform;
var crouchAmount : float = 1.0;

private var controller : CharacterController;
private var moveDirection = Vector3.zero;
private var grounded : boolean = false;
private var crouch : boolean = false;
private var startCamPos : float;
private var camPos : float;
private var dampVelocity = 0.0;

function Start () {
   controller = GetComponent(CharacterController);
   startCamPos = cameraAndWeapons.localPosition.y;
   camPos = startCamPos;
}

function Update () {
   // Play the sit animation
   var newPos = Mathf.SmoothDamp(cameraAndWeapons.localPosition.y, camPos, dampVelocity, .2);
   cameraAndWeapons.localPosition.y = newPos;
   if (Input.GetButtonDown ("Crouch"))
      Crouch ();
}

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;
      }
   }
   
   // Apply gravity
   moveDirection.y -= gravity * Time.deltaTime;
   
   // Move the controller
   var flags = controller.Move(moveDirection * Time.deltaTime);
   grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}

function Crouch () {
   if (!crouch) {
      controller.height = 1.0;
      controller.center.y = -0.5;
      camPos = startCamPos - crouchAmount;
      crouch = true;
   } else {
      controller.height = 2.0;
      controller.center.y = 0.0;
      camPos = startCamPos;
      crouch = false;
   }
}

@script RequireComponent(CharacterController)
Добавить slava-1234 в Skype
Slava
UNIт
 
Сообщения: 135
Зарегистрирован: 05 апр 2009, 05:14

Re: Приседание

Сообщение Yeti 07 фев 2010, 16:39

все равно
Изображение
Начал разработку игры - клон ГТА, моделирую объекты
Yeti
UNIт
 
Сообщения: 84
Зарегистрирован: 26 ноя 2009, 09:45
Откуда: Москва
  • ICQ

Re: Приседание

Сообщение Zaicheg 07 фев 2010, 17:27

Из-за этого не работает:
Input.GetButtonDown ("Crouch")

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

Re: Приседание

Сообщение Vitaly 20 сен 2010, 22:33

Не получается сделать приседание даже с указанным кодом :( ...FPSWalker...
У всех что-ли получилось с указанным? :-?
Vitaly
UNец
 
Сообщения: 1
Зарегистрирован: 20 сен 2010, 21:46

Re: Приседание

Сообщение Zaicheg 20 сен 2010, 23:10

Vitaly писал(а):Не получается сделать приседание даже с указанным кодом :( ...FPSWalker...
У всех что-ли получилось с указанным? :-?

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


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

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

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