COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
2 participantes
Página 1 de 1
COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
Eu estou usando esse codigo para poder usar as rotações usando wasd mas eu queria simplificar e poupar menos linhas usando GetButton("Horizontal") e GetButton("Vertical") sem haver conflito com as rotações
- Código:
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
{
Quaternion direction = new Quaternion();
Vector3 camera3 = camera.transform.rotation.eulerAngles;
camera3 = new Vector3(0, camera3.y, 0);
direction = Quaternion.Euler(camera3);
transform.rotation = Quaternion.Slerp(transform.rotation, direction, rotateSpeed * Time.deltaTime);
vel = transform.forward * movimento;
vel.y = gravity;
rb.velocity = vel;
}
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
Quaternion direction = new Quaternion();
Vector3 camera3 = camera.transform.rotation.eulerAngles;
camera3 = new Vector3(0, camera3.y, 0);
camera3 += new Vector3(0, 90, 0);
direction = Quaternion.Euler(camera3);
transform.rotation = Quaternion.Slerp(transform.rotation, direction, rotateSpeed * Time.deltaTime);
vel = transform.forward * movimento;
vel.y = gravity;
rb.velocity = vel;
}
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
{
Quaternion direction = new Quaternion();
Vector3 camera3 = camera.transform.rotation.eulerAngles;
camera3 = new Vector3(0, camera3.y, 0);
camera3 += new Vector3(0, -90, 0);
direction = Quaternion.Euler(camera3);
transform.rotation = Quaternion.Slerp(transform.rotation, direction, rotateSpeed * Time.deltaTime);
vel = transform.forward * movimento;
vel.y = gravity;
rb.velocity = vel;
}
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
{
Quaternion direction = new Quaternion();
Vector3 camera3 = camera.transform.rotation.eulerAngles;
camera3 = new Vector3(0, camera3.y, 0);
camera3 += new Vector3(0, 180, 0);
direction = Quaternion.Euler(camera3);
transform.rotation = Quaternion.Slerp(transform.rotation, direction, rotateSpeed * Time.deltaTime);
vel = transform.forward * movimento;
vel.y = gravity;
rb.velocity = vel;
}
teos626- Membro
- PONTOS : 1928
REPUTAÇÃO : 0
Respeito as regras :
Re: COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
meu problema eu acho que não é dificil, para resumir eu usava um simples comando pra adaptar meu script do game versão pc para o versão mobile.
Eu subsituia
Eu subsituia
- Código:
float horizontal = MSJoystickController.joystickInput.x;
float vertical = MSJoystickController.joystickInput.y
- Código:
float horizontal = GetButton ("Horizontal");
float vertical = GetButton ("Vertical");
teos626- Membro
- PONTOS : 1928
REPUTAÇÃO : 0
Respeito as regras :
Re: COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
Eu vi que dava para usar GetAxi ("Horizontal") <0 ou >0
mas não consigo adaptar usando o MSJoystickController.joystickInput.x
mas não consigo adaptar usando o MSJoystickController.joystickInput.x
teos626- Membro
- PONTOS : 1928
REPUTAÇÃO : 0
Respeito as regras :
Re: COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
Eu fiz os testes usando o event trigger já que você quer uma versão para celular.
O que eu percebi é que não vale muito a pena. O comando fica mais lento. Mas estão aí os scripts. No vídeo, por na hora não diferenciar os strings do botão do pulo e o da frente, acabou dando interferência. Mas já corrigi.
O pulo é um pulo como do vídeo do Marcos
A movimentação é padrão. Só fiz a para frente e a para trás.
O que eu percebi é que não vale muito a pena. O comando fica mais lento. Mas estão aí os scripts. No vídeo, por na hora não diferenciar os strings do botão do pulo e o da frente, acabou dando interferência. Mas já corrigi.
O pulo é um pulo como do vídeo do Marcos
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ok2 : MonoBehaviour {
public Vector3 direcaoDoPulo = new Vector3(0,1,0);
public float distanciaDoChao = 1, forcadoPulo = 7, tempoPorPulo = 1;
public LayerMask LayersNaoIgnoradas = -1;
public bool estaNoChao, pulou1, pulou2, podePular;
public Rigidbody corpoRigido;
public bool pule, pule2;
void Start(){
corpoRigido = GetComponent<Rigidbody>();
pulou1 = pulou2 = false;
podePular = true;
}
void Update() {
estaNoChao = Physics.Linecast(transform.position, transform.position - Vector3.up*distanciaDoChao, LayersNaoIgnoradas);
if((pulou1 == true || pulou2 == true) && estaNoChao == true){
pulou1 = pulou2 = false;
}
if (Input.GetKeyDown (KeyCode.Space) && estaNoChao == false) {
pulou1 = true;
}
if(estaNoChao == true && pulou1 == false && podePular == true && pulou2 == false && pule == true){
StartCoroutine("CronometroPular");
pulou1 = true;
pulou2 = false;
corpoRigido.AddForce(direcaoDoPulo*forcadoPulo, ForceMode.Impulse);
pule = false;
}
if(estaNoChao == false && pulou1 == true && podePular == true && pulou2 == false && pule2 == true){
StartCoroutine("CronometroPular");
pulou1 = true;
pulou2 = true;
corpoRigido.AddForce(direcaoDoPulo*forcadoPulo, ForceMode.Impulse);
pule2 = false;
}
}
IEnumerator CronometroPular(){
podePular = false;
yield return new WaitForSeconds(tempoPorPulo);
podePular = true;
}
public void Exemplo(string aoub){
if (aoub == "c") {
pule = true;
pule2 = false;
}
if(aoub == "d"){
pule2 = true;
}
}
}
A movimentação é padrão. Só fiz a para frente e a para trás.
- Código:
using System.Collections.Generic;
using UnityEngine;
using System.Collections;
public class exemplo10 : MonoBehaviour {
private Rigidbody rBody;
public bool lado, lado2;
public int numerook = 1;
void Start(){
rBody = GetComponent<Rigidbody>();
}
void Update(){
if (lado== true) {
transform.Translate (0, 0, -Time.deltaTime*5);
StartCoroutine("Doexemplo");
lado = true;
}
if (lado2 == true) {
transform.Translate (0, 0, Time.deltaTime*5);
StartCoroutine("Doexemplo");
lado2 = true;
}
}
IEnumerator Doexemplo(){
yield return new WaitForSeconds(3);
lado = false;
}
public void Exemplo5(string aoub){
if (aoub == "a") {
lado = true;
lado2 = false;
}
if(aoub == "b"){
lado2 = true;
}
}
}
CShar- MembroAvançado
- PONTOS : 1649
REPUTAÇÃO : 11
Idade : 26
Respeito as regras :
Tópicos semelhantes
» Como usar o GetButton(¨Vertical¨) e o GetButton(¨Horizontal¨)
» - COMO FAZER UMA CONVERSÃO DE GETKEY PARA ONCLICK -
» (Duvida) Jogo na horizontal e vertical.
» Como faço para ficar planando e nadar na horizontal?
» [RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
» - COMO FAZER UMA CONVERSÃO DE GETKEY PARA ONCLICK -
» (Duvida) Jogo na horizontal e vertical.
» Como faço para ficar planando e nadar na horizontal?
» [RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos