在unity 3d中检测物体
本文关键字:检测 unity 3d | 更新日期: 2023-09-27 18:04:03
我有一个名为pacman的对象,我想知道在他的左右是否有另一个对象(饼干)。例如,我的吃豆人位置是(-55,5,-55),我想知道在(-45,5,-55)处是否有一块饼干,在他的右边10个单位处。我用的是物理。OverlapSphere,但是它给了我吃豆人周围的所有饼干我想分别检查左右
您应该从返回的Physics.OverlapSphere
出发旅行所有Collider
,并检查collider.transform.position
试试这个方法
public void Detect(GameObject pacman, float radius) {
Vector3 pacmanPosition = pacman.transform.position;
var hitColliders = Physics.OverlapSphere(pacmanPosition, radius);
for (var i = 0; i < hitColliders.Length; i++) {
if(hitColliders[i].gameObject.transform.position.x == (pacmanPosition.x-10)){
//TODO
}
else if(hitColliders[i].gameObject.transform.position.x == (pacmanPosition.x+10)){
//TODO
}
}
}