Personagem voando infinitamente no Unity 2D
2 participantes
Página 1 de 1
Personagem voando infinitamente no Unity 2D
Bom.. estou com um problema no Unity em um jogo 2D onde eu sempre usei tal script e sempre funcionou, sem querer eu joguei no lixo e ao restaurar, toda vez que eu apertasse o botão de pulo ele era disparado para o céu e voava infinitamente, como resolvo esse problema ?
Abaixo está o script do player
Abaixo está o script do player
- Código:
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(Rigidbody2D))]
public class Player : MonoBehaviour
{
public float WalkSpeed;
public float JumpForce;
public AnimationClip _walk, _jump;
public Animation _Legs;
public Transform _Blade, _GroundCast;
public Camera cam;
public bool mirror;
private bool _canJump, _canWalk;
private bool _isWalk, _isJump;
private float rot, _startScale;
private Rigidbody2D rig;
private Vector2 _inputAxis;
private RaycastHit2D _hit;
void Start()
{
rig = gameObject.GetComponent<Rigidbody2D>();
_startScale = transform.localScale.x;
}
void Update()
{
if (_hit = Physics2D.Linecast(new Vector2(_GroundCast.position.x, _GroundCast.position.y + 0.2f), _GroundCast.position))
{
if (!_hit.transform.CompareTag("Player"))
{
_canJump = true;
_canWalk = true;
}
}
else _canJump = false;
_inputAxis = new Vector2(SimpleInput.GetAxisRaw("Horizontal"), SimpleInput.GetAxisRaw("Vertical"));
if (_inputAxis.y > 0 && _canJump)
{
_canWalk = false;
_isJump = true;
}
if (_inputAxis.x != 0)
{
rig.velocity = new Vector2(_inputAxis.x * WalkSpeed * Time.deltaTime, rig.velocity.y);
if (_canWalk)
{
_Legs.clip = _walk;
_Legs.Play();
}
}
else
{
rig.velocity = new Vector2(0, rig.velocity.y);
}
if (_isJump)
{
rig.AddForce(new Vector2(1, JumpForce));
_Legs.clip = _jump;
_Legs.Play();
_canJump = false;
_isJump = false;
}
}
public bool IsMirror()
{
return mirror;
}
void OnDrawGizmos()
{
Gizmos.DrawLine(transform.position, _GroundCast.position);
}
}
anomaly160- Membro
- PONTOS : 1935
REPUTAÇÃO : 1
Idade : 39
Respeito as regras :
Re: Personagem voando infinitamente no Unity 2D
Já que antes estava funcionando e agora não está mais, verifique se no inspector do script os objetos estão associados corretamente, se estiver faltando algum pode acarretar esse erro.
Re: Personagem voando infinitamente no Unity 2D
Muito Obrigado, consegui fazer com que funcionasse e voltasse como antes, mas ele está com um bug, ele tem um jump force de 620, ele pula normalmente mas as vezes ele dá uns saltos mais alto que o normal até o triplo do salto que era pra dar, não faço ideia do que sejaMayLeone escreveu:Já que antes estava funcionando e agora não está mais, verifique se no inspector do script os objetos estão associados corretamente, se estiver faltando algum pode acarretar esse erro.
anomaly160- Membro
- PONTOS : 1935
REPUTAÇÃO : 1
Idade : 39
Respeito as regras :
Re: Personagem voando infinitamente no Unity 2D
É que você está adicionando força no rigidbody dentro do Update, tente colocar a validação do pulo dentro do FixedUpdate.
Sempre que você for mexer com física, opte por usar o FixedUpdate ao invés do Update, ok?
Também antes de dar o comando de AddForce, resete a velocidade dele no eixo Y para evitar de incrementar mais velocidade, aí sim depois do reset você usa o AddForce:
Sempre que você for mexer com física, opte por usar o FixedUpdate ao invés do Update, ok?
Também antes de dar o comando de AddForce, resete a velocidade dele no eixo Y para evitar de incrementar mais velocidade, aí sim depois do reset você usa o AddForce:
- Código:
rig.velocity = new Vector2(rig.velocity.x,0);
Tópicos semelhantes
» fazer com que o personagem não pule infinitamente
» Meu personagem consegue pular infinitamente
» Mudar a malha do personagem em 3º pessoa da unity
» Movimentação de Personagem No Unity 3D
» Unity 2d - AJUDA PERSONAGEM N FICA NA PLATAFORMA EM MOVIMENTO
» Meu personagem consegue pular infinitamente
» Mudar a malha do personagem em 3º pessoa da unity
» Movimentação de Personagem No Unity 3D
» Unity 2d - AJUDA PERSONAGEM N FICA NA PLATAFORMA EM MOVIMENTO
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos