Player mover de uma plataforma para outra!
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Player mover de uma plataforma para outra!
Entao pessoal estou usando o Script de mover do marcos esta funcionando perfeitamente soque que como monstra a imagem abaixo eu quero que o meu cubo mova de uma plataforma para a outra ele nao vai, ele meche normal mais so se estiver ali naquele chao.
Ele nao esta movendo nao sei por que, era para esta funcionando!!
Script:
Ele nao esta movendo nao sei por que, era para esta funcionando!!
Script:
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class Mover : MonoBehaviour {//NESTE SCRIPT O PERSONAGEM DEVE SE MOVER PARA FRENTE NO EIXO Z(AZUL), PARA TIRAR DÚVIDAS, CONTATE WWW.SCHULTZGAMES.COM
private float ponteiroX, ponteiroY, novaPosicX;
private int indicePosic;
private bool podeMover, estaNoChao, pulouR;
private Vector3 posicInicial;
[Range(0.01f,1)]public float TempoParaMover = 0.15f;
[Range(1,5)]public int QuantoMover = 1;
[Range(1,20)]public float forcaDoPulo = 5.0f;
[Range(0,20)]public float velocidadeJogador = 5.0f;
public bool podePular = true;
public LayerMask LayersNaoIgnoradas = -1;
private Rigidbody corpoRigido;
void Start(){
corpoRigido = GetComponent<Rigidbody> ();
corpoRigido.constraints = RigidbodyConstraints.FreezeRotation;
posicInicial = transform.position;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
indicePosic = 0;
pulouR = false;
podeMover = true;
}
void Update () {
estaNoChao = Physics.Linecast (transform.position, transform.position - Vector3.up, LayersNaoIgnoradas);
if (podeMover) {
DetectarMovimento ();
}
}
IEnumerator EsperarParaMover(float tempo) {
yield return new WaitForSeconds(tempo);
podeMover = true;
}
IEnumerator EsperarParaPular(float tempo) {
yield return new WaitForSeconds(tempo);
pulouR = false;
}
void DetectarMovimento(){
podeMover = false;
StartCoroutine (EsperarParaMover(TempoParaMover));
ponteiroX = ponteiroY = 0;
if (Input.GetMouseButton (0)) {
ponteiroX = Input.GetAxis ("Mouse X");
ponteiroY = Input.GetAxis ("Mouse Y");
}
if (Input.touchCount > 0){
ponteiroX = Input.touches[0].deltaPosition.x;
ponteiroY = Input.touches[0].deltaPosition.y;
}
//DETECTAR EIXO X
if (ponteiroX > 0 && indicePosic < 1) {
indicePosic ++;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
else if (ponteiroX < 0 && indicePosic > -1) {
indicePosic --;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
//DETECTAR EIXO Y
if (ponteiroY > 0.1f && podePular) {
Pular ();
}
}
void FixedUpdate(){
Vector3 proximaPosic = new Vector3 (novaPosicX, transform.position.y, transform.position.z);
transform.position = Vector3.Lerp (transform.position, proximaPosic, Time.deltaTime * 5);
corpoRigido.velocity = new Vector3 (corpoRigido.velocity.x, corpoRigido.velocity.y, velocidadeJogador);
}
void Pular(){
if(estaNoChao == true && pulouR == false){
corpoRigido.AddForce(Vector3.up * forcaDoPulo, ForceMode.Impulse);
pulouR = true;
StartCoroutine (EsperarParaPular(0.5f));
}
}
}
Re: Player mover de uma plataforma para outra!
Pode ser que você tenha mudado aqui "public LayerMask LayersNaoIgnoradas = -1;", e ele só está reconhecendo a layer que você colocou.
Re: Player mover de uma plataforma para outra!
ele esta reconhecendo todas, tipo se eu colocar um chao pequeno e deixar ele ir reto ele cai.
mais quando joga para o lado ele nao cai, eu queria que ele caísse.
Ele nao esta indo para o bloco do lado pq ele simplesmente so move para o lado se for o msm chao.
Tem como resolveri sso?
mais quando joga para o lado ele nao cai, eu queria que ele caísse.
Ele nao esta indo para o bloco do lado pq ele simplesmente so move para o lado se for o msm chao.
Tem como resolveri sso?
Re: Player mover de uma plataforma para outra!
Não estou conseguindo ver problema nesse código, talvez seja o collider, já verificou?
Re: Player mover de uma plataforma para outra!
Olha..
no final do video quando ele esta na outra plataforma ele perde a movimentaçaop ara os lados.
no final do video quando ele esta na outra plataforma ele perde a movimentaçaop ara os lados.
Re: Player mover de uma plataforma para outra!
Achei o problema nessa parte aqui do script ele fala que so pode mover entre -1 e 1 por isso ele nao se movia rs
como eu faria para nao ter limete? sem tem que almentar esse nuemro ai
- Código:
if (ponteiroX > 0 && indicePosic < 1) {//Aqui
indicePosic ++;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
else if (ponteiroX < 0 && indicePosic > -1) {//aqui
indicePosic --;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
//DETECTAR EIXO Y
if (ponteiroY > 0.1f && podePular) {
Pular ();
}
como eu faria para nao ter limete? sem tem que almentar esse nuemro ai
Re: Player mover de uma plataforma para outra!
Esqueci de postar kk ficou assim!MarcosSchultz escreveu:é só tirar essa parte ai, heueheueh
Obrigadoooooo!!!
- Código:
if (ponteiroX > 0) {
indicePosic ++;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
else if (ponteiroX < 0) {
indicePosic --;
novaPosicX = posicInicial.x + indicePosic*QuantoMover;
}
Tópicos semelhantes
» [RESOLVIDO] Como faço para uma plataforma cair ao player colidir com ela?
» Não Acho o Erro no Script - é um script para o player se mover
» [RESOLVIDO] Mover Plataforma
» Skript para atravessar uma area e ir para outra cena já como personagem
» [RESOLVIDO] Player 2D girando ao descer de plataforma
» Não Acho o Erro no Script - é um script para o player se mover
» [RESOLVIDO] Mover Plataforma
» Skript para atravessar uma area e ir para outra cena já como personagem
» [RESOLVIDO] Player 2D girando ao descer de plataforma
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos