Unity2D - 实现Linecast2d

时间:2018-04-27 07:37:40

标签: c# unity3d

我知道线播是如何工作的,但我无法弄清楚如何在我的代码中正确实现它。

基本上我拥有的是一个可以通过肮脏的atm挖掘的玩家。我已经有了它的工作,所以当用户按下S时,它会向下挖并摧毁物体。我想要做的是让线下投射开始于玩家并稍后结束(比如说距离约.5f),当发生这种情况时,玩家会挖掘右侧的污垢。

我有几层泥土,都有自己的盒子对撞机,都有相同的标签“Dirt”。

我遇到麻烦的地方是试图弄清楚这些论点。我有一个名为Vector2的{​​{1}}获取玩家所在位置(playerPos的开头参数)。我还为Physics2d.Linecast获得Vector2但我不知道如何在播放器下方的污垢对象没有问题的情况下初始化它。

是否有完整的开始完成新项目 - >加载精灵 - >编码 - >我可以看到完整的游戏教程,我看过YouTube视频和内容,但它们似乎只显示blockPos的初始化而不是之前的过程。

我真的迷失在Linecast的这一点上,我真的很感激能让我回到正轨。

1 个答案:

答案 0 :(得分:1)

  

Vector2也获得了blockPos,但我不知道如何在播放器下方没有问题的情况下初始化它。

矢量数学。

Vector2 blockPos = playerPos + Vector2.Down * maxDistance;

maxDistance是距离玩家位置最远的距离,你希望该线被投出,可能只有1或2个单位。