O pulo só funciona as vezes
3 participantes
Página 1 de 1
O pulo só funciona as vezes
ola pessoal!
Estou com um problema chato que o pulo só sai as vezes. Isso começou a acontecer depois que eu adicionei a animação. Agora mesmo que eu remova as animações continua saindo só as vezes. Oou foi o código que eu usei para checar se o play esta ou não no chão. Esse código foi oque eu usei pra checar.
public LayerMask LayerMask;
public bool IsGrounded;
public float GroundCheckSize;
public Vector3 GroundCheckPosition;
var groundcheck = Physics.OverlapSphere(transform.position + GroundCheckPosition, GroundCheckSize, LayerMask);
if(groundcheck.Length != 0)
{
IsGrounded = true;
}
else
{
IsGrounded = false;
}
anim.SetBool("Jump", !IsGrounded);
}
private void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position + GroundCheckPosition, GroundCheckSize);
}
Estou com um problema chato que o pulo só sai as vezes. Isso começou a acontecer depois que eu adicionei a animação. Agora mesmo que eu remova as animações continua saindo só as vezes. Oou foi o código que eu usei para checar se o play esta ou não no chão. Esse código foi oque eu usei pra checar.
public LayerMask LayerMask;
public bool IsGrounded;
public float GroundCheckSize;
public Vector3 GroundCheckPosition;
var groundcheck = Physics.OverlapSphere(transform.position + GroundCheckPosition, GroundCheckSize, LayerMask);
if(groundcheck.Length != 0)
{
IsGrounded = true;
}
else
{
IsGrounded = false;
}
anim.SetBool("Jump", !IsGrounded);
}
private void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position + GroundCheckPosition, GroundCheckSize);
}
yagamikira51- Iniciante
- PONTOS : 1054
REPUTAÇÃO : 0
Respeito as regras :
Re: O pulo só funciona as vezes
Há mais código que isto, certo?! Poderias postá-lo aqui?! Seu chão é irregular (tem inclinações)?!
Não há algum objeto (chão) com LayerMask diferente?!
Não há algum objeto (chão) com LayerMask diferente?!
classicandsimple- ProgramadorMaster
-
PONTOS : 1149
REPUTAÇÃO : 26
Áreas de atuação : Desenvolvimento de software (iniciante com linguagem C).
Respeito as regras :
Re: O pulo só funciona as vezes
classicandsimple escreveu:Há mais código que isto, certo?! Poderias postá-lo aqui?! Seu chão é irregular (tem inclinações)?!
Não há algum objeto (chão) com LayerMask diferente?!
O chão chão é reto. Eu revisei as Layer e ta certo. Mas tipo, esse código é só pra chegar pelo menos eu acho.
bom ta ai o código completo de movimento e pulo.
acho que aprendi a usar a caixa de codigo
- Código:
[size=14]public class Player : MonoBehaviour {
CharacterController controller;
Vector3 forward;
Vector3 strafe;
Vector3 vertical;
float forwardSpeed = 6f;
float strafeSpeed = 6f;
//jump variavel
public float JumpForce;
public LayerMask LayerMask;
public bool IsGrounded;
public float GroundCheckSize;
public Vector3 GroundCheckPosition;
float gravity;
float jumpSpeed;
float maxJumpHeight = 2f;
float timeToMaxHeight = 0.5f;
public Animator anim;
void Start() {
controller = GetComponent<CharacterController>();
gravity = (-2 * maxJumpHeight) / (timeToMaxHeight * timeToMaxHeight);
jumpSpeed = (2 * maxJumpHeight) / timeToMaxHeight;
}
void FixedUpdate() {
float forwardInput = Input.GetAxisRaw("Vertical");
float strafeInput = Input.GetAxisRaw("Horizontal");
forward = forwardInput * forwardSpeed * transform.forward;
strafe = strafeInput * strafeSpeed * transform.right;
if(strafeInput != 0 || forwardInput != 0)
{
anim.SetBool("Run", true);
}
else
{
anim.SetBool("Run", false);
}
//pulo
vertical += gravity * Time.deltaTime * Vector3.up;
if(controller.isGrounded) {
vertical = Vector3.down;
}
if(Input.GetKeyDown(KeyCode.Space) && controller.isGrounded) {
vertical = jumpSpeed * Vector3.up;
}
if (vertical.y > 0 && (controller.collisionFlags & CollisionFlags.Above) != 0) {
vertical = Vector3.zero;
}
Vector3 finalVelocity = forward + strafe + vertical;
controller.Move(finalVelocity * Time.deltaTime);
//pulocheck
var groundcheck = Physics.OverlapSphere(transform.position + GroundCheckPosition, GroundCheckSize, LayerMask);
if(groundcheck.Length != 0)
{
IsGrounded = true;
}
else
{
IsGrounded = false;
}
anim.SetBool("Jump", !IsGrounded);
}
private void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position + GroundCheckPosition, GroundCheckSize);
}
}[/size]
yagamikira51- Iniciante
- PONTOS : 1054
REPUTAÇÃO : 0
Respeito as regras :
Re: O pulo só funciona as vezes
COLOCA IF NÃO SEI O QUE IQUAL A ZERO AO INVES DE USAR O ELSE DE VEZ ENQUANDO ELE DÁ BUG E NÃO RECONHECE
WLO GAMES- Iniciante
- PONTOS : 1055
REPUTAÇÃO : 0
Respeito as regras :
![-](https://2img.net/i/empty.gif)
» [RESOLVIDO] O pulo as vezes funciona e as vezes não
» Limitar quantidades de vezes chamadas na void Update
» Shotgun mata um inimigo 4 vezes
» Unity - Há alguma forma de abrir duas vezes o mesmo projeto?
» Como fazer uma tecla ser pressionado x vezes.
» Limitar quantidades de vezes chamadas na void Update
» Shotgun mata um inimigo 4 vezes
» Unity - Há alguma forma de abrir duas vezes o mesmo projeto?
» Como fazer uma tecla ser pressionado x vezes.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos