PRoblema com IsGrounded
2 participantes
Página 1 de 1
PRoblema com IsGrounded
Basicamente estou tentando fazer um script de movimentação, mas a função IsGrounded do Character Controller nunca funciona.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
public CharacterController controller;
private Vector3 direction;
public float speed = 8, turnSmoothTime = 0.1f, turnSmoothVelocity, jumpForce = 10, gravity = -20;
//public Transform groundCheck, c;
//public LayerMask groundLayer;
public Animator animator;
private float hInput, vInput, ySpeed;
void Update()
{
Movimento();
}
void FixedUpdate()
{
Jump();
Debug.Log(controller.isGrounded); //sempre em false
if (controller.isGrounded == false)
{
transform.position += new Vector3(0f,ySpeed,0f);
ySpeed += Physics.gravity.y * Time.deltaTime;
}
}
private void Movimento(){
hInput = Input.GetAxis("Horizontal");
vInput = Input.GetAxis("Vertical");
direction = new Vector3(hInput, 0, vInput).normalized;
if (direction.magnitude >= 0.1)
{
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg + c.eulerAngles.y;
float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref turnSmoothVelocity, turnSmoothTime);
transform.rotation = Quaternion.Euler(0f, angle, 0f);
Vector3 moveDir = Quaternion.Euler(0f,targetAngle,0f) * Vector3.forward;
controller.Move(moveDir.normalized * Time.deltaTime * speed);
}
}
private void Jump(){
if (Input.GetButtonDown("Jump") && controller.isGrounded)
{
ySpeed = jumpForce;
transform.position += new Vector3(0f,ySpeed,0f);
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
public CharacterController controller;
private Vector3 direction;
public float speed = 8, turnSmoothTime = 0.1f, turnSmoothVelocity, jumpForce = 10, gravity = -20;
//public Transform groundCheck, c;
//public LayerMask groundLayer;
public Animator animator;
private float hInput, vInput, ySpeed;
void Update()
{
Movimento();
}
void FixedUpdate()
{
Jump();
Debug.Log(controller.isGrounded); //sempre em false
if (controller.isGrounded == false)
{
transform.position += new Vector3(0f,ySpeed,0f);
ySpeed += Physics.gravity.y * Time.deltaTime;
}
}
private void Movimento(){
hInput = Input.GetAxis("Horizontal");
vInput = Input.GetAxis("Vertical");
direction = new Vector3(hInput, 0, vInput).normalized;
if (direction.magnitude >= 0.1)
{
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg + c.eulerAngles.y;
float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref turnSmoothVelocity, turnSmoothTime);
transform.rotation = Quaternion.Euler(0f, angle, 0f);
Vector3 moveDir = Quaternion.Euler(0f,targetAngle,0f) * Vector3.forward;
controller.Move(moveDir.normalized * Time.deltaTime * speed);
}
}
private void Jump(){
if (Input.GetButtonDown("Jump") && controller.isGrounded)
{
ySpeed = jumpForce;
transform.position += new Vector3(0f,ySpeed,0f);
}
}
}
DarthFontes- Iniciante
- PONTOS : 1207
REPUTAÇÃO : 0
Idade : 23
Áreas de atuação : Programador iniciante, não sei modelar nem desenhar mas quem sabe um dia
Respeito as regras :
Re: PRoblema com IsGrounded
DarthFontes escreveu:Basicamente estou tentando fazer um script de movimentação, mas a função IsGrounded do Character Controller nunca funciona.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
public CharacterController controller;
private Vector3 direction;
public float speed = 8, turnSmoothTime = 0.1f, turnSmoothVelocity, jumpForce = 10, gravity = -20;
//public Transform groundCheck, c;
//public LayerMask groundLayer;
public Animator animator;
private float hInput, vInput, ySpeed;
void Update()
{
Movimento();
}
void FixedUpdate()
{
Jump();
Debug.Log(controller.isGrounded); //sempre em false
if (controller.isGrounded == false)
{
transform.position += new Vector3(0f,ySpeed,0f);
ySpeed += Physics.gravity.y * Time.deltaTime;
}
}
private void Movimento(){
hInput = Input.GetAxis("Horizontal");
vInput = Input.GetAxis("Vertical");
direction = new Vector3(hInput, 0, vInput).normalized;
if (direction.magnitude >= 0.1)
{
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg + c.eulerAngles.y;
float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref turnSmoothVelocity, turnSmoothTime);
transform.rotation = Quaternion.Euler(0f, angle, 0f);
Vector3 moveDir = Quaternion.Euler(0f,targetAngle,0f) * Vector3.forward;
controller.Move(moveDir.normalized * Time.deltaTime * speed);
}
}
private void Jump(){
if (Input.GetButtonDown("Jump") && controller.isGrounded)
{
ySpeed = jumpForce;
transform.position += new Vector3(0f,ySpeed,0f);
}
}
}
DarthFontes- Iniciante
- PONTOS : 1207
REPUTAÇÃO : 0
Idade : 23
Áreas de atuação : Programador iniciante, não sei modelar nem desenhar mas quem sabe um dia
Respeito as regras :
Re: PRoblema com IsGrounded
cara so no debug mesmo, põe um debug no update, vai mesendo o tamanho do character controler e ve
Fluttershy28- Avançado
- PONTOS : 2769
REPUTAÇÃO : 52
Idade : 28
Áreas de atuação : Modelagem, Animação, Texturização, Design
Respeito as regras :
Tópicos semelhantes
» Ajuda erro em bool IsGrounded()
» Problema com mutiplayer
» Problema com NullReferenceException
» Problema com AI
» Problema com o ThirdPersonController
» Problema com mutiplayer
» Problema com NullReferenceException
» Problema com AI
» Problema com o ThirdPersonController
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos