Menu
CoddyTech

Referencias en el Inspector

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 43 de 85.

Un campo puede contener otro objeto. Asígnale un tipo como Transform o GameObject, y el Inspector mostrará un espacio vacío que puedes rellenar arrastrando un objeto desde la Hierarchy hasta él. Este script de cámara sigue al objeto que se arrastró 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, así que sabes qué espacio rellenar.

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

challenge icon

Desafío

Intermedio

Envía a cada guardia al puesto que indica su Inspector.

  1. Añade el campo public Transform post;. El espacio de Guard1 contiene Post1; el de Guard2 está vacío.
  2. En Update(), cuando post == null, usa return; para que un guardia sin puesto se quede quieto.
  3. Después, muévete con Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).

Pulsa «Jugar»: Guard1 camina hasta su puesto y Guard2 espera. Después, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

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

    void Update()
    {
        // Camina hacia post a la velocidad speed. Un guardia con el espacio de post vacío se queda quieto.
    }
}

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity