Hoppa till innehåll

Prefabs, varianter och overrides

↑

En Prefab asset lagrar en återanvändbar GameObject-hierarki med komponenter och serialiserade värden. En Prefab-instans är en förekomst i en scen eller en instans som skapats vid körning. När du uppdaterar prefaben uppdateras normalt instanserna, utom egenskaper som har en särskild override.

Overrides gör en instans unik. Prefab Variants skapar återanvändbara varianter som ärver från en basprefab. Nested Prefabs låter en prefab innehålla en annan. Välj en variant för en fiende med annan hastighet i stället för att kopiera en hel komplex hierarki.

EnemySpawner.cs
using UnityEngine;
public sealed class EnemySpawner : MonoBehaviour
{
[SerializeField] private GameObject enemyPrefab;
[SerializeField] private Transform spawnPoint;
public void Spawn()
{
if (enemyPrefab == null || spawnPoint == null) return;
Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation);
}
}

När ska det användas och vad kan gå fel?

Section titled “När ska det användas och vad kan gå fel?”

När: Upprepade fiender, UI-element, loot och projektiler. Fallgrop: Att ändra en sceninstans kan skapa en override i stället för att uppdatera källan. Kontrollera alltid vad du tillämpar eller återställer. Vid mycket frekvent spawn bör du även överväga objektpoolning.

Öva: Skapa en basprefab för en fiende och en variant med annan hastighet. Ändra en gemensam Renderer i basen och undersök båda instanserna.