[RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
Fala pessoal, sou menino novo na Unity, estou desenvolvendo um projeto seguindo um curso que comprei, estou enfrentando problemas com a gravidade do boneco, ele está com o Rigidbody ativo, capsule collider, mas quando eu ativo o Character controller ele trava a posição no eixo Y, já verifiquei a únicas opções travadas no rigidbody é as de rotação.
em baixo o código referente a movimentação,
espero que me ajudem, ganha um abraço pós pandemia.
em baixo o código referente a movimentação,
- Código:
[size=14] private float horizontal;
private float vertical;
void Start()
{
controller = GetComponent<CharacterController>();
anim = GetComponent<Animator>();
}
void Update()
{
Inputs();
MoveCharacter();
UpdadeAnimator();
}
void Inputs(){
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
if(Input.GetButtonDown("Fire1") && isAttack ==false)
{
Attack();
}
}
void MoveCharacter()
{
direction = new Vector3(horizontal, 0f, vertical).normalized;
if(direction.magnitude > 0.1f){
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, targetAngle, 0);
isWalk = true;
}else { //(direction.magnitude <= 0.1f)
isWalk = false;
}
controller.Move(direction * movementSpeed * Time.deltaTime);[/size]
espero que me ajudem, ganha um abraço pós pandemia.
Minijump- Iniciante
- PONTOS : 1376
REPUTAÇÃO : 0
Respeito as regras :
Re: [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
Minha telaMinijump escreveu:Fala pessoal, sou menino novo na Unity, estou desenvolvendo um projeto seguindo um curso que comprei, estou enfrentando problemas com a gravidade do boneco, ele está com o Rigidbody ativo, capsule collider, mas quando eu ativo o Character controller ele trava a posição no eixo Y, já verifiquei a únicas opções travadas no rigidbody é as de rotação.
em baixo o código referente a movimentação,
- Código:
[size=14] private float horizontal;
private float vertical;
void Start()
{
controller = GetComponent<CharacterController>();
anim = GetComponent<Animator>();
}
void Update()
{
Inputs();
MoveCharacter();
UpdadeAnimator();
}
void Inputs(){
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
if(Input.GetButtonDown("Fire1") && isAttack ==false)
{
Attack();
}
}
void MoveCharacter()
{
direction = new Vector3(horizontal, 0f, vertical).normalized;
if(direction.magnitude > 0.1f){
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, targetAngle, 0);
isWalk = true;
}else { //(direction.magnitude <= 0.1f)
isWalk = false;
}
controller.Move(direction * movementSpeed * Time.deltaTime);[/size]
espero que me ajudem, ganha um abraço pós pandemia.
Minijump- Iniciante
- PONTOS : 1376
REPUTAÇÃO : 0
Respeito as regras :
Re: [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
O Character Controller (CC) não considera a gravidade, se você colocou o Rigidbody no seu boneco na esperança de fazer ele cair, só vai adicionar mais problemas do que resolver.
Você pode checar se o CC não está em contato com o solo, e se não estiver, você adiciona manualmente a aceleração da gravidade.
Você pode checar se o CC não está em contato com o solo, e se não estiver, você adiciona manualmente a aceleração da gravidade.
- Código:
using UnityEngine;
public class PlayerController2 : MonoBehaviour
{
private CharacterController controller;
private Animator anim;
private const float GRAVIDADE = -9.81f;
public Vector3 velocity;
private float horizontal;
private float vertical;
private bool isAttack;
private Vector3 direction;
private bool isWalk;
private float movementSpeed;
private void Start()
{
controller = GetComponent<CharacterController>();
anim = GetComponent<Animator>();
}
private void Update()
{
Inputs();
MoveCharacter();
UpdadeAnimator();
}
private void UpdadeAnimator()
{
}
private void Inputs()
{
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
if (Input.GetButtonDown("Fire1") && isAttack == false)
{
Attack();
}
}
private void Attack()
{
}
void MoveCharacter()
{
direction = new Vector3(horizontal, 0f, vertical).normalized;
if (direction.magnitude > 0.1f)
{
float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, targetAngle, 0);
isWalk = true;
}
else
{ //(direction.magnitude <= 0.1f)
isWalk = false;
}
if (controller.isGrounded)
{
if (velocity.y < 0)
{
velocity.y = -2f; //Esse valor assegura que o player vá descer nas elevações do terreno.
}
}
else
{
velocity.y += GRAVIDADE * Time.deltaTime;
}
controller.Move((direction + velocity) * movementSpeed * Time.deltaTime);
}
}
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
Problema resolvido, muito obrigado my friend!
Minijump- Iniciante
- PONTOS : 1376
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» [Desabilitar gravidade de um Character Controller]
» [RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
» [RESOLVIDO] Como Desabilito a Gravidade?
» [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
» [RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
» [RESOLVIDO] Como Desabilito a Gravidade?
» [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos