我有一个小小的统一游戏,我从预制件中实例化手指克隆,其中附有运动和动画脚本,一个盒子碰撞器对象等于检测碰撞的视图端口大小,以及一个增加对象计数器(即,没有克隆的计数器)手指在屏幕上显示的实例) .
对象以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 回答
在对撞机检测下尝试在刚体组件中连续检测的选项,否则,如果通过使用一些debug.log或在场景视图内部检查,这无助于确保手指总是在触发器之外 .