Appearance
字段
字段是什么
字段就是写在类里面、方法外面的变量。
public class Player : MonoBehaviour
{
private int currentHp;
private float moveSpeed;
}currentHp 和 moveSpeed 就是字段。 它们用来保存这个对象自己的数据和状态。
字段和局部变量的区别
字段写在类里、方法外:
private int hp = 100;局部变量写在方法里:
void Update()
{
float move = input * speed;
}区别是:
- 字段:对象存在时通常一直存在,多个方法都能用。
- 局部变量:只在方法或代码块里临时使用。
- 属性:更像字段的安全读写入口。
实例字段
普通字段属于每个对象自己:
public class Enemy
{
private int hp;
}如果有 3 个敌人,它们各自有自己的 hp。 一个敌人受伤,不会自动影响另一个敌人的 hp。
static 字段
static 字段属于类本身,所有对象共享:
public class Enemy
{
public static int AliveCount;
}AliveCount 更像“所有 Enemy 共用的数据”。 新手阶段不要乱用 static,它容易让数据变得难追踪。
Unity 里的字段
Unity Inspector 主要显示可序列化字段。
不太推荐:
public float speed = 5f;更推荐:
[SerializeField] private float speed = 5f;这样做的好处是: Inspector 可以调,但其他脚本不能随便直接改。
常见辅助标签:
[Header("移动设置")]
[Tooltip("角色移动速度")]
[Range(0f, 20f)]
[SerializeField] private float moveSpeed = 5f;字段常见用途
private int hp;
private float speed;
private bool isDead;
private Rigidbody rb;
private Animator animator;
private GameObject prefab;
private AudioClip clip;字段通常保存:
- 角色状态:血量、速度、是否死亡
- 组件引用:
Rigidbody、Animator - 资源引用:预制体、音频、图片
- 配置参数:伤害、冷却、移动速度
新手口诀
字段保存状态。 方法修改状态。 字段默认 private。 需要 Inspector 调,就加 [SerializeField]。 不要为了显示在 Inspector 就把字段全写成 public。
参考链接: