我有一个小团结游戏,我从预制件中实例化手指克隆,其中附有运动和动画脚本,一个盒子碰撞器对象等于检测碰撞的视图端口大小,以及一个增加对象计数器(即,计数器)没有克隆的手指在屏幕上显示的实例。)
对象以1到3秒的随机间隔进入屏幕,玩家必须握住手指直到下一个物体到来。如果屏幕变为空白,那就是游戏结束。
为了实现这个逻辑,我使用了与视口大小相同的box2d对撞机,并将box2d对撞机连接到了手指。
OnTriggerEnter2D总是递增静态对象计数器值,但不会始终触发。我需要在哪里销毁对象
手指对象也附有动画,但它只在玩家握住或按下手指时播放,而不是在对象进入或退出屏幕时播放。
这里是手指对象的代码:
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);
}
}
}
答案 0 :(得分:1)
在对撞机检测下尝试在刚体组件中连续检测的选项,否则如果这不通过使用一些debug.log或在场景视图内检查确保手指总是在触发器之外。