player pulando eternamente quando dentro de um trigger colllider, como corrigir isso? 2D
Página 1 de 1
player pulando eternamente quando dentro de um trigger colllider, como corrigir isso? 2D
Eu fui usar um confiner no cinemachine pra bloquear a camera de passar nas bordas, porem, como fica um collider cobrindo toda a cena, o player acaba tendo a capacidade de pular sequencialmente no ar ate sair do mapa
Eu ja limitei a interacao do collider do player com a layer do limitador da camera mas tambem nao resolveu, se alguem souber como resolver eu agradeceria muito!
Eu ja limitei a interacao do collider do player com a layer do limitador da camera mas tambem nao resolveu, se alguem souber como resolver eu agradeceria muito!
- Código:
public class Player : MonoBehaviour {
public float maxSpeed;
public float jumpForce;
public Transform groundChecker;
private bool grounded = true;
private bool jumping;
private Rigidbody2D rb2d;
private Animator anim;
private SpriteRenderer sprite;
public vectorValue startingPosition;
public float dirX;
//private bool facingRight = true;
//Vector3 localScale;
// public Transform teleportTarget;
void Awake()
{
rb2d = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
// Use this for initialization
void Start()
{
transform.position = startingPosition.initialValue;
}
// Update is called once per frame
void Update()
{
grounded = Physics2D.OverlapCircle(groundChecker.position, 0.02f);
if (Input.GetKeyDown(KeyCode.Space) && grounded)
{
jumping = true;
}
if (Input.GetKey(KeyCode.LeftShift))
{
maxSpeed = 1.5f;
}
else
{
maxSpeed = 0.6f;
}
dirX = Input.GetAxis("Horizontal") * maxSpeed;
}
/* void CheckWhereToFace()
{
if (dirX > 0)
facingRight = true;
else if (dirX < 0)
facingRight = false;
if (((facingRight) && (localScale.x < 0)) || ((!facingRight) && (localScale.x > 0)))
localScale.x *= -1;
transform.localScale = localScale;
}
*/
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "ground")
{
grounded = true;
}
}
void OnCollisionExit2D(Collision2D coll)
{
if (coll.gameObject.tag == "ground")
{
grounded = false;
}
}
void OnTriggerExit2D(Collider2D other)
{
}
void FixedUpdate()
{
float move = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(move));
rb2d.velocity = new Vector2(move * maxSpeed, rb2d.velocity.y);
if ((move > 0f && sprite.flipX) || (move < 0f && !sprite.flipX))
{
Flip();
}
if (jumping)
{
rb2d.AddForce(new Vector2(1f, jumpForce));
jumping = false;
}
anim.SetBool("jumpFall", rb2d.velocity.y != 0f && !grounded);
}
void Flip()
{
sprite.flipX = !sprite.flipX;
}
}
mathhBR- Membro
- PONTOS : 2128
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Mudar Scene quando o player colidir com um trigger
» COMO SALVAR O PLAYER QUANDO ELE TIVER DESATIVO OU ATIVADO??
» [RESOLVIDO] Como fazer isso em for ou foreach dentro do update
» Como mudar de camera assim que o player entrar no Trigger
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
» COMO SALVAR O PLAYER QUANDO ELE TIVER DESATIVO OU ATIVADO??
» [RESOLVIDO] Como fazer isso em for ou foreach dentro do update
» Como mudar de camera assim que o player entrar no Trigger
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos