检查游戏对象是否在另外两个游戏对象之间传递
checking if Gameobject passing between two other Gameobject
我有一个统一的三个游戏对象(前锋)让我们说红色,绿色和蓝色。
当我对绿色物体施加重力时,我想检查它是否在红色和蓝色之间通过?我对红色对象施加力我还想检查它是否在绿色和蓝色之间传递
unity中有线碰撞器之类的吗?
下面我还附上了我想要实现的图像
在检查器中创建三个图层用于遮罩,分别命名为greenballlayer、blueballlayer、redballlayer。现在 select 球一个一个地分配给相应的层(蓝色到蓝色等)。现在-
public GameObject redBall, blueBall, greenBall;
public LayerMask greenBallLayerMask;
greenBallLayerMask 将仅检查与检查器中的图层关联的游戏对象的碰撞器。然后 select 这个脚本的游戏对象。您会在检查器中看到一个绿色球图层蒙版 "nothing"。 Select greenballlayer 从下拉列表中而不是什么都没有。通过一个一个地拖动球,在检查器中相应地分配 (GameObject redBall, blueBall, greenBall)。完毕。现在-
void FixedUpdate(){
bool greenBallPassed = Physics2D.Linecast (new Vector2(redBall.transform.position.x, redBall.transform.position.y), new Vector2(blueBall.transform.position.x, blueBall.transform.position.y), greenBallLayerMask);
if(greenBallPassed){
//Do your stuff
}
}
如果您需要其他线条和其他球的图层蒙版,请执行上述步骤。希望它能帮助你。可能需要根据您的需要进行调整。但是你会知道如何去做。
我有一个统一的三个游戏对象(前锋)让我们说红色,绿色和蓝色。
当我对绿色物体施加重力时,我想检查它是否在红色和蓝色之间通过?我对红色对象施加力我还想检查它是否在绿色和蓝色之间传递
unity中有线碰撞器之类的吗?
下面我还附上了我想要实现的图像
在检查器中创建三个图层用于遮罩,分别命名为greenballlayer、blueballlayer、redballlayer。现在 select 球一个一个地分配给相应的层(蓝色到蓝色等)。现在-
public GameObject redBall, blueBall, greenBall;
public LayerMask greenBallLayerMask;
greenBallLayerMask 将仅检查与检查器中的图层关联的游戏对象的碰撞器。然后 select 这个脚本的游戏对象。您会在检查器中看到一个绿色球图层蒙版 "nothing"。 Select greenballlayer 从下拉列表中而不是什么都没有。通过一个一个地拖动球,在检查器中相应地分配 (GameObject redBall, blueBall, greenBall)。完毕。现在-
void FixedUpdate(){
bool greenBallPassed = Physics2D.Linecast (new Vector2(redBall.transform.position.x, redBall.transform.position.y), new Vector2(blueBall.transform.position.x, blueBall.transform.position.y), greenBallLayerMask);
if(greenBallPassed){
//Do your stuff
}
}
如果您需要其他线条和其他球的图层蒙版,请执行上述步骤。希望它能帮助你。可能需要根据您的需要进行调整。但是你会知道如何去做。