SerializeField
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 15 de 85.
Um campo public faz duas coisas ao mesmo tempo: aparece no Inspector, e qualquer outro script pode lê-lo e alterá-lo. Muitas vezes, você quer apenas a primeira. Um campo private (o padrão em C#) só pode ser alterado pela própria classe, então nenhum outro script pode modificá-lo, mas o Unity não o mostra no Inspector.
[SerializeField] pede ao Unity que salve e mostre mesmo assim um campo privado. O alcance desta torreta é definido para cada torreta no Inspector, e nenhum outro script pode acessá-lo:
[SerializeField] private float range = 5f;
void Start()
{
Debug.Log("Range: " + range);
}É assim que a maioria dos códigos do Unity mantém suas configurações: privadas, com [SerializeField]. Fique atento ao contrário: torne um campo privado e esqueça o atributo, e o Unity descartará silenciosamente o valor salvo na cena. O campo volta ao número definido no código, sem nenhum erro para avisar você.
Desafio
FácilOculte a altura da lâmpada dos outros scripts, mas mantenha-a no Inspector.
- Altere o campo para
[SerializeField] private float height = 1f;. - Mantenha
Start()como está: o Inspector defineheightcomo 4.
Pressione “Jogar”: a lâmpada continua suspensa a uma altura de 4. Depois, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
Todas as lições de Fundamentos de Scripting no Unity
1Fundamentos de C# no Unity
Olá, UnityVariáveisDecimais precisam de um fTexto no ConsoleVariáveis que guardam valoresIf e ElseComparar númerosRevisão: Coletor de Moedas7Laços e Métodos
Repita com forLaços dentro de laçosEscreva um métodoMétodos que respondemArraysRevisão: Escada10Encontrando coisas
Buscar pelo nomeTagsBuscar por tipoReferências são melhores que FindO null do UnityRevisão: moeda mais próxima13Projeto: Desvie dos Blocos
O CorredorBlocos do Céu2Faça-o se mover
Posicione o cuboMova a cada quadroGire a cada segundoDirija com as teclasRecapitulando: dirija o cubo5Vetores
Somando vetoresDireçõesEspaço local e globalVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone8GameObjects e Componentes
Referências no InspectorObter um componenteComponentes ausentesAdicionar um componenteRequireComponentMostrar e ocultarRevisão: Interruptor de luz6Transformações e hierarquia
Pais e filhosIçar a bandeiraEscalaOlhar para as coisasMover-se em direção a um pontoRevisão: Lua em órbita9Projeto: Pegue a Estrela
O PegadorUma Estrela CadentePratique por conta própria: Playground de Unity