Unity:标签(tags)

目录

第一性原理:如何在庞大的游戏世界中“识别对象”?

🛠️ Unity 中 Tags 的工作方式:

🔍 使用 Tags 的核心动机: 

 📌 总结一句话:


第一性原理:如何在庞大的游戏世界中“识别对象”?

在任何一个复杂系统中(比如一个 RPG、平台跳跃、射击游戏),我们都会遇到下面这个最原始的问题:

🧩 “我怎么知道这个 GameObject 是敌人?是玩家?是可拾取物?” 

这就是 分类和识别的问题,本质上是“给物体贴标签”。 

例如:你在超市看到东西时,靠什么判断它们的用途?

  • 价格标签、商品名、分类标签(“牛奶”、“即食”、“冷冻”)

这就是 Unity 中 Tags 的本质: 

“标签”是用来给 GameObject 添加意义的元数据,它不会改变对象的行为,但能让你识别、筛选、交互。 

🛠️ Unity 中 Tags 的工作方式:

✅ 每个 GameObject 有一个 tag 属性,可以手动设置:

  • 打开 GameObject,在 Inspector 面板中找到 Tag 属性。

  • Unity 提供了几个默认的,比如 Untagged, Player, MainCamera

  • 你也可以自己添加自定义的,比如 "Enemy""Item"

🔍 使用 Tags 的核心动机: 

从逻辑判断角度来说,你不想写成这样: 

if (other.gameObject.name == "Goblin123")  // 易碎,不可维护

 你希望这样判断:

if (other.CompareTag("Enemy"))
{
    // 扣血、战斗逻辑等
}

 ✅ 这是第一性原理的一个关键点:

你不是在判断“这个具体对象是不是谁”,而是在判断“这个对象属于哪类”。 

示例:简单碰撞检测用 Tag 判断类型 

void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("Enemy"))
    {
        Debug.Log("碰到敌人了!");
        TakeDamage();
    }
}

 📌 总结一句话:

从第一性原理出发,Tag 就是 GameObject 的“身份识别标签”,是逻辑世界中分类的手段,而不是行为的一部分。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值