Appearance
Class类
class 是什么
class 就是“对象的设计图”。
c
public class PlayerData
{
public string Name;
public int Level;
}这个 PlayerData 不是某一个具体玩家,而是“玩家数据长什么样”的蓝图。
创建对象:
c
PlayerData data = new PlayerData();
data.Name = "Hero";
data.Level = 1;data 才是根据类创建出来的对象,也叫实例。
类里面通常有什么
字段:保存数据。
c
private int hp = 100;属性:控制别人怎么读写数据。
c
public int Hp { get; private set; }方法:对象能做的动作。
c
public void TakeDamage(int damage)
{
hp -= damage;
}构造函数:普通 C# 对象创建时初始化。
c
public PlayerData(string name, int level)
{
Name = name;
Level = level;
}普通 C# 类 vs Unity 脚本类
普通类可以 new:
c
PlayerData data = new PlayerData("Hero", 1);Unity 脚本类通常继承 MonoBehaviour:
c
public class PlayerController : MonoBehaviour
{
private void Update()
{
Move();
}
}这种类不要自己 new:
c
// 不推荐
new PlayerController();Unity 组件类应该挂到 GameObject 上,或者用:
c
gameObject.AddComponent<PlayerController>();获取组件:
c
PlayerController player = GetComponent<PlayerController>();新手最重要的理解
class 是蓝图/模板。 object 是实例。 字段保存数据。 方法执行行为。 普通类可以 new。 MonoBehaviour 类由 Unity 管生命周期,挂到 GameObject 上才是组件。
小练习
写两个类:
c
public class PlayerData
{
public string Name;
public int Level;
}
public class PlayerController : MonoBehaviour
{
[SerializeField] private float speed = 5f;
private void Update()
{
Move();
}
private void Move()
{
}
}然后思考:PlayerData 是普通数据类,PlayerController 是 Unity 组件类,它们创建和使用方式不同。
参考链接: