[ME AJUDA] O player não se movimenta...
+2
rafaelllsd
Junim
6 participantes
Página 1 de 1
[ME AJUDA] O player não se movimenta...
Opa, estou fazendo um script para movimentar o jogador, eu vi este script em um video gringo. Mas o meu jogador até estava andando normal na antiga primeira fase, mas agora eu um amigo mudamos o design da primeira fase, mas o personagem fica travado e não sai do lugar, alguem poderia dar uma ajudinha ai?
Obs: no debug não apresenta nenhum erro ou algo do tipo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterController : MonoBehaviour {
public static Animator Anim;
[System.Serializable]
public class MoveSettings{
public float forwardVel = 2;
public float rotateVel = 100;
public float jumpVel = 5;
public float distToGrounded = 0.1f;
public LayerMask ground;
}
[System.Serializable]
public class PhysSettings{
public float downAccel = 0.75f;
}
[System.Serializable]
public class InputSettings{
public float InputDelay = 0.1f;
public string FORWARD_AXIS = "Vertical";
public string TURN_AXIS = "Horizontal";
public string JUMP_AXIS = "Jump";
}
public MoveSettings moveSetting = new MoveSettings ();
public PhysSettings physSetting = new PhysSettings ();
public InputSettings inputSetting = new InputSettings ();
Vector3 velocity = Vector3.zero;
Quaternion targetRotation;
Rigidbody rBody;
float forwardInput, turnInput, jumpInput;
public Quaternion TargetRotation {
get{ return targetRotation; }
}
bool Grounded(){
return Physics.Raycast(transform.position, Vector3.down, moveSetting.distToGrounded, moveSetting.ground);
}
void Start(){
Anim = GetComponent<Animator> ();
targetRotation = transform.rotation;
if (GetComponent<Rigidbody> ()) {
GetComponent<Rigidbody> ();
} else {
Debug.LogError ("O personagem precisa de um rigidbody");
}
forwardInput = turnInput = jumpInput = 0;
}
void GetInput(){
forwardInput = Input.GetAxis (inputSetting.FORWARD_AXIS);
turnInput = Input.GetAxis (inputSetting.TURN_AXIS);
jumpInput = Input.GetAxisRaw (inputSetting.JUMP_AXIS);
}
void Update(){
GetInput ();
Turn ();
}
void FixedUpdate(){
Run ();
Jump ();
GetComponent<Rigidbody> ().velocity = transform.TransformDirection (velocity);
}
void Run(){
if (Mathf.Abs (forwardInput) > inputSetting.InputDelay) {
velocity.z = moveSetting.forwardVel * forwardInput;
Anim.SetBool ("Run", true);
Anim.SetBool ("Idle", false);
} else {
velocity.z = 0;
Anim.SetBool ("Run", false);
Anim.SetBool ("Idle", true);
}
}
void Turn(){
if (Mathf.Abs (turnInput) > inputSetting.InputDelay) {
targetRotation *= Quaternion.AngleAxis (moveSetting.rotateVel * turnInput * Time.deltaTime, Vector3.up);
}
transform.rotation = targetRotation;
}
void Jump (){
if (jumpInput > 0 && Grounded ()) {
velocity.y = moveSetting.jumpVel;
Anim.SetBool ("Jump", true);
Anim.SetBool ("Run", false);
Anim.SetBool ("Idle", false);
} else if (jumpInput == 0 && Grounded ()) {
velocity.y = 0;
Anim.SetBool ("Jump", false);
} else {
velocity.y -= physSetting.downAccel;
}
}
}
Obs: no debug não apresenta nenhum erro ou algo do tipo.
Última edição por Junim em Qui Mar 23, 2017 10:09 pm, editado 1 vez(es)
Re: [ME AJUDA] O player não se movimenta...
Se ninguem respondeu seu tópico espere não é toda hora que todos Moderadores, Instrutores, Programadores mestres vão estar a disposição para ajudar, ninguem aqui fica 24 horas por dia dando suporte as pessoas.
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [ME AJUDA] O player não se movimenta...
'-' Já te ajudei...
o erro provavelmente está acontecendo por algum eixo,collider ou animação errado....
se já funcionou e só mudaram a fase é algo q vcs fizeram...
o erro provavelmente está acontecendo por algum eixo,collider ou animação errado....
se já funcionou e só mudaram a fase é algo q vcs fizeram...
Re: [ME AJUDA] O player não se movimenta...
Mais ja postei 3 tópicos esses tempos pra tras e ninguem me ajudou esperei por uns 2 dias as respostas.. Não, não fiz nada apenas troquei a estrutura/designer da fase.
Re: [ME AJUDA] O player não se movimenta...
A animação do player acontece só que ele não sai do lugar. Deve ser algo no script algo que esta verificando o chão sei lá.. Vocês que são programadores masters poderiam olhar o meu código..
Re: [ME AJUDA] O player não se movimenta...
Voce setou as Layer que o player pode andar em ground? se não tiver nenhuma ele nao vai detectar chao...
Re: [ME AJUDA] O player não se movimenta...
Eu sempre salvo o Player em prefabs para quando for fazer um novo cenario coloca-lo da uma olhada dele no cenario que esta funcionando copia ele e adiciona no novo cenario
Re: [ME AJUDA] O player não se movimenta...
talvez isso te ajude!Junim escreveu:Opa, estou fazendo um script para movimentar o jogador, eu vi este script em um video gringo. Mas o meu jogador até estava andando normal na antiga primeira fase, mas agora eu um amigo mudamos o design da primeira fase, mas o personagem fica travado e não sai do lugar, alguem poderia dar uma ajudinha ai?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterController : MonoBehaviour {
public static Animator Anim;
[System.Serializable]
public class MoveSettings{
public float forwardVel = 2;
public float rotateVel = 100;
public float jumpVel = 5;
public float distToGrounded = 0.1f;
public LayerMask ground;
}
[System.Serializable]
public class PhysSettings{
public float downAccel = 0.75f;
}
[System.Serializable]
public class InputSettings{
public float InputDelay = 0.1f;
public string FORWARD_AXIS = "Vertical";
public string TURN_AXIS = "Horizontal";
public string JUMP_AXIS = "Jump";
}
public MoveSettings moveSetting = new MoveSettings ();
public PhysSettings physSetting = new PhysSettings ();
public InputSettings inputSetting = new InputSettings ();
Vector3 velocity = Vector3.zero;
Quaternion targetRotation;
Rigidbody rBody;
float forwardInput, turnInput, jumpInput;
public Quaternion TargetRotation {
get{ return targetRotation; }
}
bool Grounded(){
return Physics.Raycast(transform.position, Vector3.down, moveSetting.distToGrounded, moveSetting.ground);
}
void Start(){
Anim = GetComponent<Animator> ();
targetRotation = transform.rotation;
if (GetComponent<Rigidbody> ()) {
GetComponent<Rigidbody> ();
} else {
Debug.LogError ("O personagem precisa de um rigidbody");
}
forwardInput = turnInput = jumpInput = 0;
}
void GetInput(){
forwardInput = Input.GetAxis (inputSetting.FORWARD_AXIS);
turnInput = Input.GetAxis (inputSetting.TURN_AXIS);
jumpInput = Input.GetAxisRaw (inputSetting.JUMP_AXIS);
}
void Update(){
GetInput ();
Turn ();
}
void FixedUpdate(){
Run ();
Jump ();
GetComponent<Rigidbody> ().velocity = transform.TransformDirection (velocity);
}
void Run(){
if (Mathf.Abs (forwardInput) > inputSetting.InputDelay) {
velocity.z = moveSetting.forwardVel * forwardInput;
Anim.SetBool ("Run", true);
Anim.SetBool ("Idle", false);
} else {
velocity.z = 0;
Anim.SetBool ("Run", false);
Anim.SetBool ("Idle", true);
}
}
void Turn(){
if (Mathf.Abs (turnInput) > inputSetting.InputDelay) {
targetRotation *= Quaternion.AngleAxis (moveSetting.rotateVel * turnInput * Time.deltaTime, Vector3.up);
}
transform.rotation = targetRotation;
}
void Jump (){
if (jumpInput > 0 && Grounded ()) {
velocity.y = moveSetting.jumpVel;
Anim.SetBool ("Jump", true);
Anim.SetBool ("Run", false);
Anim.SetBool ("Idle", false);
} else if (jumpInput == 0 && Grounded ()) {
velocity.y = 0;
Anim.SetBool ("Jump", false);
} else {
velocity.y -= physSetting.downAccel;
}
}
}
Obs: no debug não apresenta nenhum erro ou algo do tipo.
Gabriel César O- Profissional
- PONTOS : 3986
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [ME AJUDA] O player não se movimenta...
Gabriel ja havia feito a movimentação dele desse jeito, porem contem muitos bugs e decidi fazer deste metodo gringo, só que to vendo que mesmo assim tem bugs kkks
Tópicos semelhantes
» [AJUDA] UNITY NAO MOVIMENTA PLAYER COM JOYSTICK VIRTUAL
» Player olhar para direção em que se movimenta
» Player se movimenta em direção diferente da posição da camera
» Ajuda com scripts de inimigo e player'' interação de zumbi e player''
» Ajuda arma se movimenta para cima e para baixo...
» Player olhar para direção em que se movimenta
» Player se movimenta em direção diferente da posição da camera
» Ajuda com scripts de inimigo e player'' interação de zumbi e player''
» Ajuda arma se movimenta para cima e para baixo...
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos