Unity 为游戏对象设置标签

我们从【是什么】【为什么】【怎么用】三个问题,来讨论游戏对象的标签。

1. 什么是标签

标签 (Tag) 是可分配给游戏对象参考词。例如,可为玩家控制的角色定义“Player”标签,为场景中的各种树木定义为“Tree”标签。

具体到Unity中,比如,我们新建一个游戏对象,那么,Inspector面板,开头就是个Tag的坑位。
在这里插入图片描述
值是Untagged,也就是没有具体标签值。

2. 为什么要有标签

标签不是必须的,默认可以不设置。只有在你脚本需要用时,才需要设置一下。一个典型的例子是,脚本中,你拿到了一个gameObject,但不知道这个是啥东西,就可以用tag来判断。

3. 怎么用标签

3.1 为游戏对象设置标签

点击旁边的小三角,有几个默认的标签,但一般咱不用,咱自己定义。也就是自己Add Tag.
在这里插入图片描述
出来的窗口,点击加号,就可以自定义一个Tag:
在这里插入图片描述
添加好了,就可以把Tag那一栏,设置为你要的标签。

3.2 在脚本代码中使用

我们以碰撞检测来说明。
假设有个脚本,绑定到了某个gameObject A,然后设置为刚体,这样另一个也是刚体的游戏对象B,位置着渐靠近这个A,会发生碰撞,脚本中,会回调一个函数,叫OnTriggerEnter2D。

    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag.Contains("Fruit")) {
            //TODO
            collider.gameObject.GetComponent<Fruit>().GetStatus();
        }
    }

代码如上,变量collider代表碰撞了谁,可以获得gameObject,但gameObject无法判断具体类型。

怎么办,就是通过读取tag,如果tag是Fruit,那说明碰到的物体,标签是Fruit。

假设碰到的物体B,它标签设置了“Fruit”,然后绑定了一个脚本叫“Fruit”,那想调用B的脚本函数,就可以用collider.gameObject.GetComponent<Fruit>(),后面跟上脚本的各种函数了,例如GetStatus()。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newchenxf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值