(Ajuda) Movimento com 2 teclas
3 participantes
Página 1 de 1
(Ajuda) Movimento com 2 teclas
Olá, estou elaborando uma movimentação simples de andar, tava tentando fazer um sistema de quando o player segurar W e Shift ele correr só que não deu muito certo ele só fica na mesma velocidade de antes quando o w era pressionado.
- Código:
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey(KeyCode.W)) {
transform.Translate (0, 0, Frente * Time.deltaTime*10);
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: (Ajuda) Movimento com 2 teclas
Poste o código completo por favor... más há algumas maneiras mais simples de fazer o sistema
Re: (Ajuda) Movimento com 2 teclas
É bem simples, to fazendo testes de movimentação com animações:
- Código:
public Animator Players;
public int Frente,Lado,Rotacao;
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Lado * Time.deltaTime, 0, 0);
transform.Rotate (0, Rotacao * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.A)) {
transform.Translate (-Lado * Time.deltaTime, 0, 0);
transform.Rotate (0, -Rotacao * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.W)) {
transform.Translate (0, 0, Frente * Time.deltaTime);
Players.SetInteger ("Condicao", 1);
} else {
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey(KeyCode.W)) {
transform.Translate (0, 0, Frente * Time.deltaTime*5);
Players.SetInteger ("Condicao", 2);
} else {
if (Input.GetMouseButtonDown (0)) {
Players.SetInteger ("Condicao", 4);
} else {
if (Input.GetKey (KeyCode.S)) {
transform.Translate (0, 0, -Frente * Time.deltaTime);
Players.SetInteger ("Condicao", 1);
} else {
Players.SetInteger ("Condicao", 0);
}
}
}
}
}
}
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: (Ajuda) Movimento com 2 teclas
Não faço a menooooor ideia se vai funcionar ou não...
Más não aconselho nem um pouco fazer movimentação com Rotate e Translate...
- Código:
using UnityEngine;
using System.Collections;
public class Mover : MonoBehaviour {
public Animator Players;
public int Frente,Lado,Rotacao;
void Update () {
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Lado * Time.deltaTime, 0, 0);
transform.Rotate (0, Rotacao * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.A)) {
transform.Translate (-Lado * Time.deltaTime, 0, 0);
transform.Rotate (0, -Rotacao * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.W)) {
if (Input.GetKey (KeyCode.LeftShift)) {
transform.Translate (0, 0, Frente * Time.deltaTime*5);
Players.SetInteger ("Condicao", 2);
}
else {
transform.Translate (0, 0, Frente * Time.deltaTime);
Players.SetInteger ("Condicao", 1);
if (Input.GetMouseButtonDown (0)) {
Players.SetInteger ("Condicao", 4);
}
else {
if (Input.GetKey (KeyCode.S)) {
transform.Translate (0, 0, -Frente * Time.deltaTime);
Players.SetInteger ("Condicao", 1);
} else {
Players.SetInteger ("Condicao", 0);
}
}
}
}
}
}
Más não aconselho nem um pouco fazer movimentação com Rotate e Translate...
Re: (Ajuda) Movimento com 2 teclas
É ainda não deu certo vou continuar tentando algumas coisas talvez de certo, a movimentação com Rotate e Translate é temporario pra teste.
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: (Ajuda) Movimento com 2 teclas
vc pode adicionar o valor dos Inputs em Vector3 a sim vc pode verificar se existe um valor em Z a sim fazendo um bool fica true
Ex:
Ex:
- Código:
public float speedMaximum;
public float speedMinimum;
private float speed;
private float RotaionX, RotaionY;
private Vector3 direction;
private bool running = false;
void Update()
{
DetectRunning();
SetDirection();
}
void FixedUpdate()
{
MovementPerformance();
}
private void MovementPerformance()
{
transform.Translate(direction * speed * Time.deltaTime);
}
private void SetDirection()
{
direction = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
}
private void DetectRunning()
{
if (Input.GetKey(KeyCode.LeftShift) && direction.z >= 0.1f)
{
running = true;
}
else
{
running = false;
}
if (running)
{
speed = speedMaximum;
}
else
{
speed = speedMinimum;
}
}
Não Esqueça da quele Like
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: (Ajuda) Movimento com 2 teclas
rafaelllsd escreveu:É ainda não deu certo vou continuar tentando algumas coisas talvez de certo, a movimentação com Rotate e Translate é temporario pra teste.
Ué, eu testei aqui e deu certão O.o
Re: (Ajuda) Movimento com 2 teclas
Estou fazendo algo de errado que não esta certo vo tentar denovo só que em um novo script.
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Tópicos semelhantes
» ajuda com script de movimento
» (Ajuda) Movimento de imagem.
» me ajuda pf (movimento e spaw)
» (Ajuda) Movimento de carro
» Conversor de movimento do Unity para o MMD [Ajuda]
» (Ajuda) Movimento de imagem.
» me ajuda pf (movimento e spaw)
» (Ajuda) Movimento de carro
» Conversor de movimento do Unity para o MMD [Ajuda]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos