Unity中如何在OnTriggerEnter函数内判断触发对象的指定Tag?
Unity触发器Tag判断实现方案
核心实现逻辑
你只需要在OnTriggerEnter方法中增加Tag判断逻辑即可,以下是两种常用实现方式:
方案1:硬编码固定Tag
适合Tag不需要频繁调整的场景,示例中以匹配PlayerTag为例,可替换为你需要的自定义Tag:
void OnTriggerEnter(Collider other) { // 仅触发对象匹配指定Tag时才执行后续逻辑 if (other.CompareTag("Player")) { Destroy(gameObject); } }
推荐使用
CompareTag方法而非other.tag == "自定义Tag"的写法:前者性能更优,且如果Tag拼写错误或未提前配置,Unity会主动抛出异常方便排查问题。
方案2:Inspector可配置Tag
适合需要灵活调整匹配Tag的场景,无需修改代码直接在编辑器中调整即可:
// 在Inspector面板可直接修改要匹配的目标Tag public string targetTag = "Player"; void OnTriggerEnter(Collider other) { if (other.CompareTag(targetTag)) { Destroy(gameObject); } }
注意事项
- 请提前在Unity编辑器的
Edit > Project Settings > Tags and Layers中添加你需要使用的Tag,否则判断逻辑会失效。
内容的提问来源于stack exchange,提问作者Stan Easthope
相关产品推荐
相关产品推荐

