es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Unity3D Player caminando a través y sobre la piedra.

Hola chicos, mi jugador está caminando sobre la piedra y a través de la piedra. El jugador llamado Champ tiene un colisionador de caja y la piedra tiene un colisionador de malla. Además, el jugador tiene un Rigidbody. He intentado todo lo que he encontrado, pero nada me ha ayudado con mi problema.

Script MovePlayer.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovePlayer : MonoBehaviour
{

Rigidbody rb;

public float speed = 10f;
private Vector3 moveDirection;
public float rotationSpeed = 0.05f;

void Start()
{
    rb = GetComponent<rigidbody>();
}

void Update()
{
    moveDirection = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")).normalized;
}

void FixedUpdate()
{
    rb.MovePosition(rb.position + transform.TransformDirection(moveDirection * speed * Time.deltaTime));
    RotatePlayer();
}

void RotatePlayer()
{
    if (moveDirection != Vector3.zero)
    {
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(moveDirection.normalized), rotationSpeed);
    }
    transform.Translate(moveDirection * speed * Time.deltaTime, Space.World);
}

}

Configuración del jugador en el Inspector

Configuración de la piedra en el Inspector

Vista previa de la escena

¡Gracias por su ayuda chicos! 🙂

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver tu problema de que el jugador atraviesa la piedra, puedes intentar seguir los siguientes pasos:

    1. Verifica si la piedra tiene un Collider de Malla y si está configurado como Convexo.
    2. Asegúrate de que tanto el jugador como la piedra tengan un Rigidbody adjunto.

    3. En el componente Rigidbody del jugador, verifica si la Detección de Colisiones está configurada como Dinámica Continua.

    4. En el componente Collider de Malla de la piedra, verifica si la casilla de Convexo está marcada y si la casilla de Es Trigger no está marcada.

    5. Si hay múltiples componentes Collider de Malla adjuntos a la piedra, intenta habilitar/deshabilitarlos uno por uno para ver si esto soluciona el problema.

    6. Adicionalmente, puedes intentar ajustar el tamaño y la posición del Collider de Caja del jugador para asegurarte de que se ajuste al tamaño del modelo del jugador, y verifica si el Collider de Malla de la piedra está escalado correctamente y no está intersectando con otros objetos.

    7. Otra solución es cambiar a utilizar un Collider de Caja en lugar de un Collider de Malla para la piedra, especialmente si la piedra tiene una forma simple, ya que esto puede reducir problemas de rendimiento.

    Esperamos que estos pasos te ayuden a solucionar tu problema de detección de colisiones entre el jugador y la piedra. ¡Buena suerte!

Comments are closed.