任何人都请帮忙,我是团结的新手,目前正在制作移动垃圾分类游戏,玩家必须将掉落的垃圾拖到各自的垃圾箱中。
游戏有“ 4个垃圾桶”,每个垃圾桶都有自己的多边形对撞机,该撞机设置为触发器。当前,一旦垃圾箱的碰撞器和垃圾的边缘与其碰撞,触发器就会破坏拖到其上的“垃圾游戏对象”,我正在使用“ OnTriggerEnter2D”执行销毁功能。
但是,我想要的是破坏垃圾游戏对象的触发器,“前提是玩家停止触摸垃圾并将其放在触发器的位置”
答案 0 :(得分:2)
使用OnTriggerEnter(Collider)
和OnTriggerExit(Collider)
更改垃圾状态。
这样一来,布尔值就足够了(在垃圾桶中/不在垃圾桶中)。
所以:
您的垃圾脚本:
bool inTrash=false;
void OnTriggerEnter(Collider other)
{
inTrash=true;
}
void OnTriggerExit(Collider other)
{
inTrash=false;
}
您的触摸控制器脚本:
//your touch management here
case TouchPhase.Ended:
if(garbage.inTrash)
{
garbage.Destroy();
}
break;
另一个方法:使用OnTriggerStay(Collider)
void OnTriggerStay(Collider other)
{
//OnTriggerStay is called once per physics update for every Collider other that is touching the trigger.
if (yourTouch.TouchPhase==TouchPhase.Ended)
{
DestroyGarbage();
}
}