0

我有一个统一的三个游戏对象(前锋)让我们说红色,绿色和蓝色。

当我对绿色物体施加重力时,我想检查它是否在红色和蓝色之间传递?我对红色对象施加力我还想检查它是否在绿色和蓝色之间传递

是否有任何线对撞机或类似的东西?

下面我还附上了我想要实现的图像在此处输入图像描述

4

1 回答 1

2

在检查器中创建三个用于遮罩的图层,分别命名为 greenballlayer、blueballlayer、redballlayer。现在一一选择球并将它们相应地分配给图层(蓝色到蓝色等)。现在 -

public GameObject redBall, blueBall, greenBall;
public LayerMask greenBallLayerMask;

greenBallLayerMask 只会在检查器中检查与图层关联的游戏对象的碰撞器。然后使用此脚本选择游戏对象。您将在检查器中看到绿色球层蒙版“无”。从下拉列表中选择 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
        }
    }

如果您需要其他线条和其他球的图层蒙版,请执行上述步骤。希望它会帮助你。可能需要根据您的需要进行调整。但是你会知道如何去做。

于 2015-02-13T12:22:45.743 回答