Erro com botão de agachar (CONTROLE MOBILE)
Página 1 de 1
Erro com botão de agachar (CONTROLE MOBILE)
Eu estive tentando adaptar o ThirdPersonController padrão da Unity a um controle virtual,
então adicionei um outro script e fiz algumas alterações no script que já estava atribuído a ele.
O botão de pular e o joystick funcionou, mas o botão de agachar não está
funcionando direito.
Quando aperto o botão, o personagem agacha-se mas não consegue entrar em áreas menores.
Aqui estão as prints que tirei, e o que acontece em cada uma:
Aqui, usei o controle virtual para agachar. o personagem atendeu o comando, mas não consegue entrar nesse espaço.
(mas ele deveria se encaixar, pois a capsula responde ao comando do script).
Resumindo: o botão virtual faz exatamente o que a tecla "C" faz, mas o personagem parece não reconhecer o comando, como se ele ainda
estivesse em pé.
Se alguém puder me dar uma dica de como resolver isso, eu agradeço. Mas simplifique a explicação, pois não sei programar. Estou experimentando várias coisas para ver o que dá certo.
Aqui estão as linhas do script padrão do personagem(ThirdPersonCharacter)
e o script que eu adicionei a ele.(OwnThirdPersonUserControl):
ou seja, funcionou mais ou menos...
então adicionei um outro script e fiz algumas alterações no script que já estava atribuído a ele.
O botão de pular e o joystick funcionou, mas o botão de agachar não está
funcionando direito.
Quando aperto o botão, o personagem agacha-se mas não consegue entrar em áreas menores.
Aqui estão as prints que tirei, e o que acontece em cada uma:
Aqui, usei o controle virtual para agachar. o personagem atendeu o comando, mas não consegue entrar nesse espaço.
(mas ele deveria se encaixar, pois a capsula responde ao comando do script).
Resumindo: o botão virtual faz exatamente o que a tecla "C" faz, mas o personagem parece não reconhecer o comando, como se ele ainda
estivesse em pé.
Se alguém puder me dar uma dica de como resolver isso, eu agradeço. Mas simplifique a explicação, pois não sei programar. Estou experimentando várias coisas para ver o que dá certo.
Aqui estão as linhas do script padrão do personagem(ThirdPersonCharacter)
e o script que eu adicionei a ele.(OwnThirdPersonUserControl):
- Código:
void ScaleCapsuleForCrouching(bool crouch)
{
if (m_IsGrounded && crouch)
{
if (m_Crouching) return;
m_Capsule.height = m_Capsule.height / 2f;
m_Capsule.center = m_Capsule.center / 2f;
m_Crouching = true;
}
else
{
Ray crouchRay = new Ray(m_Rigidbody.position + Vector3.up * m_Capsule.radius * k_Half, Vector3.up);
float crouchRayLength = m_CapsuleHeight - m_Capsule.radius * k_Half;
if (Physics.SphereCast(crouchRay, m_Capsule.radius * k_Half, crouchRayLength, Physics.AllLayers, QueryTriggerInteraction.Ignore))
{
m_Crouching = true;
return;
}
m_Capsule.height = m_CapsuleHeight;
m_Capsule.center = m_CapsuleCenter;
m_Crouching = false;
}
}
void PreventStandingInLowHeadroom()
{
// prevent standing up in crouch-only zones
if (!m_Crouching)
{
Ray crouchRay = new Ray(m_Rigidbody.position + Vector3.up * m_Capsule.radius * k_Half, Vector3.up);
float crouchRayLength = m_CapsuleHeight - m_Capsule.radius * k_Half;
if (Physics.SphereCast(crouchRay, m_Capsule.radius * k_Half, crouchRayLength, Physics.AllLayers, QueryTriggerInteraction.Ignore))
{
m_Crouching = true;
}
}
}
ou seja, funcionou mais ou menos...
- Código:
private void Crouch()
{
var crouchbutton = CrouchButton.Pressed || Input.GetKey(KeyCode.C);
if (!isCrouching && crouchbutton)
{
//crouch
CapCollider.height = 1f;
CapCollider.center = new Vector3(CapCollider.center.x, 0.5f, CapCollider.center.z);
isCrouching = true;
Actions.SetBool("Crouch", isCrouching);
}
Debug.DrawRay(transform.position, Vector3.up * 2f, Color.green);
if (isCrouching && !crouchbutton) return;
{
//try to stand up
Ray crouchRay = new Ray(Rigidbody.position + Vector3.up * CapCollider.radius * Cooldown, Vector3.up);
float crouchRayLength = CapCollider.height - CapCollider.radius * Cooldown;
if (Physics.SphereCast(crouchRay, CapCollider.radius * Cooldown, crouchRayLength, Physics.AllLayers, QueryTriggerInteraction.Ignore))
{
isCrouching = true;
return;
}
CapCollider.height = CapCollider.height;
CapCollider.center = CapCollider.center;
isCrouching = false;
}
}
N.P.C- Iniciante
- PONTOS : 1708
REPUTAÇÃO : 6
Idade : 21
Respeito as regras :
Tópicos semelhantes
» sistema de agachar e correr deu erro
» Erro em script de controle de personagem.
» Erro de perder controle da câmera ao conectar um jogador a cena
» [RESOLVIDO] Ajuda com controle mobile
» erro erro e mais erro script de craft
» Erro em script de controle de personagem.
» Erro de perder controle da câmera ao conectar um jogador a cena
» [RESOLVIDO] Ajuda com controle mobile
» erro erro e mais erro script de craft
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos