You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity VR中OnTriggerEnter函数未触发问题求助

问题排查方案

先看你代码里的语法错误,这些是导致函数根本不会被Unity调用的核心原因:

  • Unity生命周期函数大小写敏感:update()要改成Update(),Ontriggerenter()要改成OnTriggerEnter()
  • 访问修饰符Private需改为小写private
  • OnTriggerEnter参数顺序和类型写错,正确签名是private void OnTriggerEnter(Collider other)(你颠倒了参数顺序,且collider要大写为Collider)

修正后的代码示例:

public void Update()
{
    // Called once per frame
}

private void OnTriggerEnter(Collider other)
{
    if (other.tag == "Hand")
    {
        Copper.SetActive(false);
    }
}

除了代码问题,还要检查Unity场景组件设置:

  • 按钮的Collider必须勾选Is Trigger,否则不会触发OnTriggerEnter
  • VR手部物体必须带有Collider组件:如果手部Collider也勾选了Is Trigger,按钮或手部其中一个必须挂载Rigidbody且不能勾选Kinematic;如果手部Collider不是Trigger,至少其中一个物体要有Rigidbody
  • 确认手部物体的标签确实是Hand,标签的大小写、拼写必须完全匹配,不能有多余空格

另外,Start和Update函数和这个触发问题无关,只要OnTriggerEnter签名正确、组件设置到位,就能正常触发。

内容的提问来源于stack exchange,提问作者Uncle_batty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:30:53