Четверг, 18 Апреля 2024, 11:54

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » УСКОРЕНИЕ (СПРИНТ) в CharacterMotor (Не получается реализовать спринт :()
УСКОРЕНИЕ (СПРИНТ) в CharacterMotor
dostalitionДата: Воскресенье, 27 Января 2013, 02:13 | Сообщение # 1
был не раз
Сейчас нет на сайте
В стандартном скрипте ФПКонтоллера CharacterMotor есть переменная maxFovardspeed ... Решил сделать ускорение по нажатию шифта, вставив такой код
Код
if(Input.GetKeyDown(KeyCode.LeftShift))
                     maxForwardSpeed = 30;
в функцию Update, но это не срабатывает ... Подскажите, в чём ошибка ?
Knight1032Дата: Воскресенье, 27 Января 2013, 02:40 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Вряд ли поможет но всёже попробуйте так:
Код
if(Input.GetKeyDown(KeyCode.LeftShift)){
                      maxForwardSpeed = 30;}


Да, я программист, дизайнер, сценарист,
Я сам себе издатель и сам себе игрок...
dostalitionДата: Воскресенье, 27 Января 2013, 04:07 | Сообщение # 3
был не раз
Сейчас нет на сайте
Да дело не в скобках ... Как Я уже только не пробовал ... Проблема , видимо, в том, что эта и некоторые другие переменный заключены в класс
Код
#pragma strict
#pragma implicit
#pragma downcast

// Does this script currently respond to input?
var canControl : boolean = true;

var useFixedUpdate : boolean = true;

// For the next variables, @System.NonSerialized tells Unity to not serialize the variable or show it in the inspector view.
// Very handy for organization!

// The current global direction we want the character to move in.
@System.NonSerialized
var inputMoveDirection : Vector3 = Vector3.zero;

// Is the jump button held down? We use this interface instead of checking
// for the jump button directly so this script can also be used by AIs.
@System.NonSerialized
var inputJump : boolean = false;

class CharacterMotorMovement {
  // The maximum horizontal speed when moving
  var maxForwardSpeed : float = 10.0;
  var maxSidewaysSpeed : float = 10.0;
  var maxBackwardsSpeed : float = 10.0;
   
  // Curve for multiplying speed based on slope (negative = downwards)
  var slopeSpeedMultiplier : AnimationCurve = AnimationCurve(Keyframe(-90, 1), Keyframe(0, 1), Keyframe(90, 0));
   
  // How fast does the character change speeds?  Higher is faster.
  var maxGroundAcceleration : float = 30.0;
  var maxAirAcceleration : float = 20.0;

  // The gravity for the character
  var gravity : float = 10.0;
  var maxFallSpeed : float = 20.0;
   
  // For the next variables, @System.NonSerialized tells Unity to not serialize the variable or show it in the inspector view.
  // Very handy for organization!

  // The last collision flags returned from controller.Move
  @System.NonSerialized
  var collisionFlags : CollisionFlags;  

  // We will keep track of the character's current velocity,
  @System.NonSerialized
  var velocity : Vector3;
   
  // This keeps track of our current velocity while we're not grounded
  @System.NonSerialized
  var frameVelocity : Vector3 = Vector3.zero;
   
  @System.NonSerialized
  var hitPoint : Vector3 = Vector3.zero;
   
  @System.NonSerialized
  var lastHitPoint : Vector3 = Vector3(Mathf.Infinity, 0, 0);
}

var movement : CharacterMotorMovement = CharacterMotorMovement();
и Я не могу добраться туда ...

Добавлено (27.01.2013, 04:07)
---------------------------------------------
Советуют обратится к переменной moveSpeed, но где её искать ? ....

seamanДата: Воскресенье, 27 Января 2013, 09:29 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
Советуют обратится к переменной moveSpeed, но где её искать ?

Как где?- в скриптах. Вы не умеете искать файлы с нужным текстом? Но на самом деле это не нужно - искать. moveSpeed для TPC у Вас TPC


Сообщение отредактировал seaman - Воскресенье, 27 Января 2013, 09:43
dostalitionДата: Воскресенье, 27 Января 2013, 15:27 | Сообщение # 5
был не раз
Сейчас нет на сайте
НЕ TPC, а FPC !!!

Добавлено (27.01.2013, 14:24)
---------------------------------------------
Я использую игрока от первого лица ....

Добавлено (27.01.2013, 15:27)
---------------------------------------------
ВОПРОС РЕШЕН ! Создаём в моторе статик-переменную static var an = 1.0; Находим (тоже в моторе) function GetDesiredHorizontalVelocity () и
после строчки с var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection); пишем: maxSpeed = maxSpeed * an; Выглядит так

Код
var maxSpeed : float = MaxSpeedInDirection(desiredLocalDirection);  
       maxSpeed = maxSpeed * an;
и вставляем это
Код
if (Input.GetKey(KeyCode.LeftShift)) {  
                  CharacterMotor.an = 3;  
              } else {  
              if (Input.GetKeyUp (KeyCode.LeftShift)) {  
                  CharacterMotor.an = 1;  
              }  
              }
в апдейт мотора ...
nikДата: Воскресенье, 27 Января 2013, 19:37 | Сообщение # 6
just nik
Сейчас нет на сайте
не проще ли чтото подобное

var maxForwardSpeed float

var ForwardSpeedWalk float
var ForwardSpeedSprint float

if(input.getbuttom кнопка
maxForwardSpeed=ForwardSpeedSprint;
else
maxForwardSpeed=ForwardSpeedWalk;


BridgeGamingTeam
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » УСКОРЕНИЕ (СПРИНТ) в CharacterMotor (Не получается реализовать спринт :()
  • Страница 1 из 1
  • 1
Поиск:

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