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.

La búsqueda de ruta A* (Astar) no funciona con el clon/instantánea del jugador en Unity.

Mi jugador aparece en el juego.

Cuando coloco mi Prefab de Jugador en “target”, no lo sigue.
Pero cuando coloco mi clon (instanciado) de mi prefab (lo que aparece en la jerarquía cuando comienzo el juego) en “target”, entonces funciona.

¿Cómo puedo hacer que “target” obtenga automáticamente la instancia de mi Prefab de jugador? Estaba pensando en algo con “encontrar objeto de juego con etiqueta”, pero soy un novato legítimo en c#, prefiero usar Bolt. Solo para la búsqueda de rutas necesito usar ese método.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para asignar automáticamente la instancia de tu objeto Prefab de jugador al objetivo, puedes utilizar el método GameObject.FindWithTag en tu script.

    Aquí tienes un ejemplo de fragmento de código que puedes utilizar:

    // Declara una variable para almacenar la etiqueta de tu objeto Prefab de jugador.
    private string playerTag = "Jugador";
    
    // Declara una variable para almacenar la referencia al objeto Prefab de jugador instanciado.
    private GameObject playerInstance;
    
    // En el método Start, instancia tu objeto Prefab de jugador y almacena la referencia a él.
    void Start () {
        playerInstance = Instantiate(playerPrefab);
    }
    
    // En el método Update o en cualquier otro lugar aplicable, busca el objeto objetivo con la etiqueta "Jugador" y asigna la instancia de tu objeto Prefab de jugador a él.
    void Update () {
        GameObject target = GameObject.FindWithTag(playerTag);
        if (target != null) {
            target.transform.position = playerInstance.transform.position;
        }
    }
    

    Puedes reemplazar la variable playerTag con la etiqueta de tu objeto Prefab de jugador, y playerPrefab con la referencia a tu objeto Prefab de jugador.

    Ten en cuenta que el uso de GameObject.FindWithTag puede ser costoso y se debe utilizar con moderación. Es mejor utilizar variables o referencias en caché siempre que sea posible para mejorar el rendimiento.

Comments are closed.