Menu
CoddyTech

Referencias en el Inspector

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 29 de 67.

Un campo puede contener otro objeto. Asígnale un tipo como Transform o GameObject, y el Inspector muestra un espacio vacío que puedes llenar arrastrando un objeto desde la Hierarchy hasta él. Este script de cámara sigue al objeto que se haya arrastrado a player, manteniéndose 3 unidades por encima y 6 por detrás:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

Un espacio vacío muestra None, y la primera línea que lo usa genera, en cada fotograma: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. La siguiente línea del mensaje indica qué hacer: You probably need to assign the player variable of the CameraFollow script in the inspector. Nombra el campo y el script, para que sepas qué espacio debes llenar.

Algunos scripts también deberían funcionar con el espacio vacío. Unity hace que un espacio vacío sea igual a null en una comparación, así que ese tipo de script comprueba el valor antes de usarlo. Si pones if (player != null) alrededor de la línea en Update(), una cámara sin jugador se queda donde está en lugar de generar un error.

challenge icon

Desafío

Intermedio

Cada guardia camina hasta su propio puesto. En la escena, el Inspector de Guard1 coloca el objeto Post1 en un campo llamado post. El puesto de Guard2 aún no está configurado, así que su espacio post está vacío.

  • Añade al script Guard un campo Transform llamado post.
  • Un guardia camina hasta la posición de su puesto a una velocidad de speed unidades por segundo y se detiene allí, incluso si el puesto se mueve después.
  • Un guardia cuyo espacio para el puesto está vacío se queda donde está, sin que se produzca un error.

Pulsa Play, selecciona cada guardia en la Jerarquía para ver su espacio Post y, después, pulsa Check.

Pruébalo tú mismo

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: el Transform hacia el que camina este guardia, configurado en el Inspector
    public float speed = 2f;

    void Update()
    {
        // Camina hacia post a la velocidad speed. Un guardia sin un post asignado permanece en su sitio.
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos de scripting en Unity