Skip to content

字段

unity-csharp-fields-system

字段是什么

字段就是写在类里面、方法外面的变量。

public class Player : MonoBehaviour
{
    private int currentHp;
    private float moveSpeed;
}

currentHpmoveSpeed 就是字段。 它们用来保存这个对象自己的数据和状态。

字段和局部变量的区别

字段写在类里、方法外:

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;

字段通常保存:

  • 角色状态:血量、速度、是否死亡
  • 组件引用:RigidbodyAnimator
  • 资源引用:预制体、音频、图片
  • 配置参数:伤害、冷却、移动速度

新手口诀

字段保存状态。 方法修改状态。 字段默认 private。 需要 Inspector 调,就加 [SerializeField]。 不要为了显示在 Inspector 就把字段全写成 public

参考链接:

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

本站访客数0总站访问量0本页访问量0