首页 文章

Unity OnTriggerExit2D始终不起作用

提问于
浏览
1

我有一个小小的统一游戏,我从预制件中实例化手指克隆,其中附有运动和动画脚本,一个盒子碰撞器对象等于检测碰撞的视图端口大小,以及一个增加对象计数器(即,没有克隆的计数器)手指在屏幕上显示的实例) .

对象以1到3秒的随机间隔进入屏幕,玩家必须握住手指直到下一个物体到来 . 如果屏幕变为空白,则表示游戏结束 .

为了实现这个逻辑,我使用了与视口大小相同的box2d对撞机,并将一个box2d对撞机连接到手指 .

OnTriggerEnter2D总是增加静态对象计数器值,但并不总是触发 . 我需要在哪里销毁对象

手指对象也附有动画,但它仅在玩家握住或按下手指时播放,而不是在对象进入或退出屏幕时播放 .

这是finger对象的代码:

using UnityEngine;
    using System.Collections;
    public class checkCollisionwithBox : MonoBehaviour {
        bool collided = false;

        void OnTriggerEnter2D(Collider2D other) {
            if (other.gameObject.tag == "mesh") {
                if (this.collided == false ) {      
                   GameController.GoodFingerOnScreen++;
                   this.collided = true;
                }
              }
           }
        void OnTriggerExit2D(Collider2D other) {
          if (other.gameObject.tag == "mesh") {
            if (GameController.GoodFingerOnScreen != 0) {   
                GameController.GoodFingerOnScreen--;
             }
           Destroy (this.gameObject);
         }
       }
   }

1 回答

  • 1

    在对撞机检测下尝试在刚体组件中连续检测的选项,否则,如果通过使用一些debug.log或在场景视图内部检查,这无助于确保手指总是在触发器之外 .

相关问题