Skip to content

Class类

unity-csharp-class-system

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 是实例。 字段保存数据。 方法执行行为。 普通类可以 newMonoBehaviour 类由 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 组件类,它们创建和使用方式不同。

参考链接:

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

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