Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 14.02.2013, 11:33   #1
SGREED
ПроЭктировщик
 
Аватар для SGREED
 
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
Проблемы с бегом игрока

Вот есть код:
using UnityEngine;
 
public class 
Player MonoBehaviour
{
    
// скорость ходьбы и скорость поворота в секунду
    
public float moveSpeed 2;
    public 
float turnSpeed 90;
 
    private 
CharacterController _controller;
    private 
Transform _thisTransform;
 
    public 
void Start()
    {
        
// Получаем контроллер
        
_controller GetComponent<CharacterController>();
 
        
// Получаем компонент трансформации объекта, к которому привязан данный компонент
        
_thisTransform transform;
    }
  
void Update() {
        if (
Input.GetKey("q"))
        {
            
animation.Play ("run");
            
moveSpeed 4;
        }
        else
         if (
Input.GetKey("w"))
        {
            
animation.Play ("walk");
            
moveSpeed 2;
        }
        else
        {
            
animation.Play ("idle");
            
moveSpeed 2;
            }
    }
    public 
void FixedUpdate()
    {
        
// Рассчитываем позицию
        
_controller.Move(_thisTransform.forward moveSpeed Time.deltaTime Input.GetAxis("Vertical") +
                        
Vector3.down 10.0f Time.deltaTime);
          
                
// Рассчитываем поворот
        
Quaternion rot Quaternion.AngleAxis(
            
turnSpeed Time.deltaTime Input.GetAxis("Horizontal"), Vector3.up);
        
_thisTransform.rotation *= rot;

    }

клавиша " q " бежать, только когда нажимаешь " w " он идет а потом ище если нажать " q " он начинает воспроизводить анимацию и бежать.
вроде круто,
так вот, когда я просто нажму клавишу " q " (бежать) он не бежит а воспроизводит анимацию.
Как мне сделать так что бы в хотьбе была проверка if что когда скорость равна [2] и потом только можна задействувать бег?
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 15:00   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблемы с бегом игрока

попробуй замени везде Play на CrossFade
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 15:03   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Проблемы с бегом игрока

using UnityEngine;
 
public class 
Player MonoBehaviour
{
    
// скорость ходьбы и скорость поворота в секунду
    
public float moveSpeed 2;
    public 
float turnSpeed 90;
 
    private 
CharacterController _controller;
    private 
Transform _thisTransform;
 
    public 
void Start()
    {
        
// Получаем контроллер
        
_controller GetComponent<CharacterController>();
 
        
// Получаем компонент трансформации объекта, к которому привязан данный компонент
        
_thisTransform transform;
    }
  
void Update() {
        
         if (
Input.GetKey("w"))
        {
if (
Input.GetKey("q"))
        {
            
animation.Play ("run");
            
moveSpeed 4;
        }
        else
{
            
animation.Play ("walk");
            
moveSpeed 2;
        }
}
        else

        {
            
animation.Play ("idle");
            
moveSpeed 2;
            }
    }
    public 
void FixedUpdate()
    {
        
// Рассчитываем позицию
        
_controller.Move(_thisTransform.forward moveSpeed Time.deltaTime Input.GetAxis("Vertical") +
                        
Vector3.down 10.0f Time.deltaTime);
          
                
// Рассчитываем поворот
        
Quaternion rot Quaternion.AngleAxis(
            
turnSpeed Time.deltaTime Input.GetAxis("Horizontal"), Vector3.up);
        
_thisTransform.rotation *= rot;

    }


Уже хотябы так сделай
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 17:51   #4
SGREED
ПроЭктировщик
 
Аватар для SGREED
 
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
Ответ: Проблемы с бегом игрока

спасибо за CrossFade, хорошая функция =)
И спасибо за переработку скрипта)
Все работает нормально
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:53.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com