Быстрый бег при нажатии на Shift - Форум Игроделов
Пн, 20 Май 2024, 06:36 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Быстрый бег при нажатии на Shift (Нужна помощь)
Быстрый бег при нажатии на Shift
ramboДата: Чт, 12 Апр 2012, 20:29 | Сообщение # 1
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Всем здраствуйте, я сдесь с недавних пор! Если эта тема уже была, то простите, значит поиск мне не подчиняется! Вопрос таков: Как сделать при нажатии на кнопку шифт быстрый бег? Помогите нубу!!!
 
СообщениеВсем здраствуйте, я сдесь с недавних пор! Если эта тема уже была, то простите, значит поиск мне не подчиняется! Вопрос таков: Как сделать при нажатии на кнопку шифт быстрый бег? Помогите нубу!!!

Автор - rambo
Дата добавления - 12 Апр 2012 в 20:29
ДенисДата: Чт, 12 Апр 2012, 20:43 | Сообщение # 2
 
Сообщений: 5098
Награды: 23
Репутация: 910
Статус: Offline
Изучай туториал по Locomotion System...
 
СообщениеИзучай туториал по Locomotion System...

Автор - Денис
Дата добавления - 12 Апр 2012 в 20:43
ramboДата: Чт, 12 Апр 2012, 20:46 | Сообщение # 3
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Денис, Если не сложно, то можно ссылочку!!!
 
СообщениеДенис, Если не сложно, то можно ссылочку!!!

Автор - rambo
Дата добавления - 12 Апр 2012 в 20:46
ЛевшаДата: Чт, 12 Апр 2012, 20:51 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (Денис)
Изучай туториал по Locomotion System...

Не совсем в тему... no

Quote (rambo)
Как сделать при нажатии на кнопку шифт быстрый бег? Помогите нубу!!!


Code
var walkSpeed = 6.0;
var runSpeed = 18.0
var jumpSpeed = 8.0;
private var gravity = 30;
private var moveDirection = Vector3.zero;

function Update() {
      if (grounded)  {
           moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
           moveDirection = transform.TransformDirection(moveDirection);       
       if (Input.GetKey ("left shift") && Input.GetKey ("x"))
        moveDirection *= runSpeed;
       else  moveDirection *= walkSpeed;
          if (Input.GetKey ("backspase"))      
           moveDirection.y = jumpSpeed;
      }
           moveDirection.y -= gravity * Time.deltaTime;
              var controller : CharacterController = GetComponent(CharacterController);
              var flags = controller.Move(moveDirection * Time.deltaTime);
        grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}
@script RequireComponent(CharacterController)


PS. Переименуй название темы в осмысленное... cool


X.cor.R (Prologue)
 
Сообщение
Quote (Денис)
Изучай туториал по Locomotion System...

Не совсем в тему... no

Quote (rambo)
Как сделать при нажатии на кнопку шифт быстрый бег? Помогите нубу!!!


Code
var walkSpeed = 6.0;
var runSpeed = 18.0
var jumpSpeed = 8.0;
private var gravity = 30;
private var moveDirection = Vector3.zero;

function Update() {
      if (grounded)  {
           moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
           moveDirection = transform.TransformDirection(moveDirection);       
       if (Input.GetKey ("left shift") && Input.GetKey ("x"))
        moveDirection *= runSpeed;
       else  moveDirection *= walkSpeed;
          if (Input.GetKey ("backspase"))      
           moveDirection.y = jumpSpeed;
      }
           moveDirection.y -= gravity * Time.deltaTime;
              var controller : CharacterController = GetComponent(CharacterController);
              var flags = controller.Move(moveDirection * Time.deltaTime);
        grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}
@script RequireComponent(CharacterController)


PS. Переименуй название темы в осмысленное... cool

Автор - Левша
Дата добавления - 12 Апр 2012 в 20:51
ДенисДата: Чт, 12 Апр 2012, 20:56 | Сообщение # 5
 
Сообщений: 5098
Награды: 23
Репутация: 910
Статус: Offline
rambo, DocumentationLS.rar

Добавлено (12.04.2012, 20:54)
---------------------------------------------
Ну можно впринципе и так.Просто новичку будет легче освоиться в уже готовой системе.Потыкает,понастроит,а потом и сам все поймет smile

Добавлено (12.04.2012, 20:56)
---------------------------------------------
Переименовал

 
Сообщениеrambo, DocumentationLS.rar

Добавлено (12.04.2012, 20:54)
---------------------------------------------
Ну можно впринципе и так.Просто новичку будет легче освоиться в уже готовой системе.Потыкает,понастроит,а потом и сам все поймет smile

Добавлено (12.04.2012, 20:56)
---------------------------------------------
Переименовал


Автор - Денис
Дата добавления - 12 Апр 2012 в 20:56
ramboДата: Чт, 12 Апр 2012, 20:56 | Сообщение # 6
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Левша, так как я со скриптами еще плохо, то обьясни это мне надо создать новый скрипт и туда это вставить???
 
СообщениеЛевша, так как я со скриптами еще плохо, то обьясни это мне надо создать новый скрипт и туда это вставить???

Автор - rambo
Дата добавления - 12 Апр 2012 в 20:56
ЛевшаДата: Чт, 12 Апр 2012, 21:03 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (rambo)
это мне надо создать новый скрипт и туда это вставить???

Да, это полный FPS контроллер движения на wasd. Создашь пустой Js скрипт и туда скопируешь этот код.
Скрипт повесишь на обьект. Удочеришь обьекту камеру. Ну там для полного комплекта еще 2 mouseLook скрипта нужно для обзора (стандартные скрипты, идут с редактором), на сам обьект и на камеру, с соответствующими осями обзора.


X.cor.R (Prologue)
 
Сообщение
Quote (rambo)
это мне надо создать новый скрипт и туда это вставить???

Да, это полный FPS контроллер движения на wasd. Создашь пустой Js скрипт и туда скопируешь этот код.
Скрипт повесишь на обьект. Удочеришь обьекту камеру. Ну там для полного комплекта еще 2 mouseLook скрипта нужно для обзора (стандартные скрипты, идут с редактором), на сам обьект и на камеру, с соответствующими осями обзора.

Автор - Левша
Дата добавления - 12 Апр 2012 в 21:03
commandobyДата: Сб, 14 Апр 2012, 20:50 | Сообщение # 8
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Я попробую по другому. Если получится, то тут напишу.

Добавлено (14.04.2012, 20:50)
---------------------------------------------
Если вид от первого лица, то можно сделать так:
1. Открываем скрипт "CharacterMotor".

2.Добавляем одну переменную:
Code
static var an = 1.0;

3.В этом же скрипте находим function GetDesiredHorizontalVelocity () (примерно 510 строка).
4.После строчки с сожержимым var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection); пишем:
Code
var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection);
   maxSpeed = maxSpeed * an;

5.Создаём новый скрипт с содержимым:
Code
function Update() {
if (Input.GetKey(KeyCode.LeftShift)) {
              CharacterMotor.an = 1.5;
          } else {
          if (Input.GetKeyUp (KeyCode.LeftShift)) {
              CharacterMotor.an = 1;
          }
          }
}

6.Вешаем скрипт на контроллер.

Теперь легко и просто максимальная скорость контроллера при нажатии Shift увеличивается в 1.5 раза.


Блог.

Сообщение отредактировал commandoby - Сб, 14 Апр 2012, 20:54
 
СообщениеЯ попробую по другому. Если получится, то тут напишу.

Добавлено (14.04.2012, 20:50)
---------------------------------------------
Если вид от первого лица, то можно сделать так:
1. Открываем скрипт "CharacterMotor".

2.Добавляем одну переменную:
Code
static var an = 1.0;

3.В этом же скрипте находим function GetDesiredHorizontalVelocity () (примерно 510 строка).
4.После строчки с сожержимым var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection); пишем:
Code
var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection);
   maxSpeed = maxSpeed * an;

5.Создаём новый скрипт с содержимым:
Code
function Update() {
if (Input.GetKey(KeyCode.LeftShift)) {
              CharacterMotor.an = 1.5;
          } else {
          if (Input.GetKeyUp (KeyCode.LeftShift)) {
              CharacterMotor.an = 1;
          }
          }
}

6.Вешаем скрипт на контроллер.

Теперь легко и просто максимальная скорость контроллера при нажатии Shift увеличивается в 1.5 раза.

Автор - commandoby
Дата добавления - 14 Апр 2012 в 20:50
ramboДата: Вс, 15 Апр 2012, 11:03 | Сообщение # 9
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
commandoby, спасибо очень понятно
 
Сообщениеcommandoby, спасибо очень понятно

Автор - rambo
Дата добавления - 15 Апр 2012 в 11:03
GenaДата: Сб, 15 Ноя 2014, 21:30 | Сообщение # 10
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
commandoby, А как сделать что бы он назад не мог бежать?
 
Сообщениеcommandoby, А как сделать что бы он назад не мог бежать?

Автор - Gena
Дата добавления - 15 Ноя 2014 в 21:30
игнатДата: Вс, 16 Ноя 2014, 13:13 | Сообщение # 11
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Убираем часть кода.


Правила форума · участник GCC
 
СообщениеУбираем часть кода.

Автор - игнат
Дата добавления - 16 Ноя 2014 в 13:13
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Быстрый бег при нажатии на Shift (Нужна помощь)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024