Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何判断Unity2D中的一个精灵是否正在触摸另一个精灵_C#_.net_Unity3d_Collision Detection - Fatal编程技术网

C# 如何判断Unity2D中的一个精灵是否正在触摸另一个精灵

C# 如何判断Unity2D中的一个精灵是否正在触摸另一个精灵,c#,.net,unity3d,collision-detection,C#,.net,Unity3d,Collision Detection,假设我有两个雪碧。这些精灵将不会有任何BoxCollideR2D或RigidBody2D 如何使用第一个精灵内部的脚本来检测一个精灵是否正在触摸另一个精灵 例如,我有一名球员和一面旗帜。我希望当球员触到旗子时会发生一些事情 很抱歉,如果这篇文章写得不好或信息不足,如果您需要更多信息,请留下评论,我会回复。由于碰撞产生的物理排斥,您不想要碰撞器吗?如果您只想检测两个对象是否已相互进入,则可能就是您要查找的对象。两个对象上都需要一个碰撞器,但可以标记它们isTrigger。要准确查看要使OnTrig

假设我有两个雪碧。这些精灵将不会有任何BoxCollideR2D或RigidBody2D

如何使用第一个精灵内部的脚本来检测一个精灵是否正在触摸另一个精灵

例如,我有一名球员和一面旗帜。我希望当球员触到旗子时会发生一些事情


很抱歉,如果这篇文章写得不好或信息不足,如果您需要更多信息,请留下评论,我会回复。

由于碰撞产生的物理排斥,您不想要碰撞器吗?如果您只想检测两个对象是否已相互进入,则可能就是您要查找的对象。两个对象上都需要一个碰撞器,但可以标记它们
isTrigger
。要准确查看要使
OnTriggerEnter2D
启动所需的内容,请查看

如果您真的不想使用碰撞器,您可以自己为这两个对象实现基本的碰撞检测。对于两个简单的长方体,可以使用AABB碰撞检测,这只是获取两个长方体的角并确定角是否重叠

if (obj1Pos.x < obj2Pos.x + obj2.width &&
   obj1Pos.x + obj1.width > obj2Pos.x &&
   obj1Pos.y < obj2Pos.y + obj2.height &&
   obj1Pos.y + obj1.height > obj2Pos.y) {
    // collision detected!
}
if(obj1Pos.xobj2Pos.x&&
obj1Pos.yobj2Pos.y){
//检测到碰撞!
}
如果您想了解有关检测2D碰撞的自我实现的更多信息。对于更复杂的几何体,碰撞变得更高级,但我相信您只想使用触发器。如果你有更多关于触发因素是什么、它们如何工作等的问题,我可以回答,但我不确定你想如何解决你的问题