Verificar se player está posado em blogo
2 participantes
Página 1 de 1
Verificar se player está posado em blogo
Boa noite,
estou fazendo um jogo 3d, onde o player ao pular em um bloco ele depois de um tempo cai.
No entanto, no código que fiz, o bloco só cai quando o player pisa no centro do bloco.
Sei que o problema está no "Vector3.up", mas não sei o que fazer para resolver.
Desde já agradeço.
estou fazendo um jogo 3d, onde o player ao pular em um bloco ele depois de um tempo cai.
No entanto, no código que fiz, o bloco só cai quando o player pisa no centro do bloco.
- Código:
using UnityEngine;
public class BlockCair : MonoBehaviour
{
public float shakeForce = 10f; // Força que o bloco tremerá quando o jogador pular nele
public float shakeDuration = 1.5f; // Duração do tremer do bloco antes de cair
public float playerCheckDistance = 1.0f; // Distância do raio para verificar se o jogador está acima do bloco
private Rigidbody rb;
private bool isShaking = false;
void Start()
{
rb = GetComponent<Rigidbody>();
}
private void Update()
{
if (!isShaking)
{
// Verificar se o jogador está acima do bloco usando um raio (raycast)
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.up, out hit, 2))
{
if (hit.collider.CompareTag("Player"))
{
isShaking = true;
Invoke("StopShakingAndFall", shakeDuration);
}
}
}
}
public void StartShaking()
{
}
private void StopShakingAndFall()
{
rb.isKinematic = false; // Permite que o bloco caia (não é mais afetado pelo jogador)
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
StartShaking();
}
}
}
Sei que o problema está no "Vector3.up", mas não sei o que fazer para resolver.
Desde já agradeço.
theoalves- Iniciante
- PONTOS : 490
REPUTAÇÃO : 0
Respeito as regras :
Re: Verificar se player está posado em blogo
use um Collider com o IsTrigger ativado.
Como fazer:
- Adicione um Objeto-vazio como Filho deste bloco específico.
- Em seguida, Inclua o componente BoxCollider e proceda com a configuração do collider ajustando a parte superior para que fique ligeiramente mais alto do que o próprio bloco. Lembre-se de marcar a opção IsTrigger para o BoxCollider.
- Crie um script para identificar quando o player estiver sobre o bloco.
OBS: Coloque o player com a tag "Player".
Como fazer:
- Adicione um Objeto-vazio como Filho deste bloco específico.
- Em seguida, Inclua o componente BoxCollider e proceda com a configuração do collider ajustando a parte superior para que fique ligeiramente mais alto do que o próprio bloco. Lembre-se de marcar a opção IsTrigger para o BoxCollider.
- Crie um script para identificar quando o player estiver sobre o bloco.
- Código:
private void OnTriggerEnter(Collider col)
{
if (col.gameObject.tag == "Player")
{
// REALIZA A AÇÃO DO BLOCO CAIR.
// Invoke("StopShakingAndFall", shakeDuration);
}
}
OBS: Coloque o player com a tag "Player".
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Tópicos semelhantes
» [Unity 5] Como verificar se player está se locomovendo ?
» Verificar se é o Player local Network
» VERIFICAR SE O USUARIO ESTÁ COM INTERNET
» Como verificar se o objeto esta em movimento?
» Verificar se a camera está virada para o objeto
» Verificar se é o Player local Network
» VERIFICAR SE O USUARIO ESTÁ COM INTERNET
» Como verificar se o objeto esta em movimento?
» Verificar se a camera está virada para o objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos