Unity2D预测弓瞄准,使用仅垂直显示的物体阵列



我正在Unity2D中制作一款弓箭游戏,我想使用愤怒的小鸟风格的预测瞄准系统(如图所示https://i.stack.imgur.com/A6Jqy.png)。

我大致遵循了一个教程,但无论出于什么原因,在我的游戏中,它只在垂直轴上预测。该代码通过初始化GameObjects并将它们放在列表中来工作。这是代码:

for(int i = 0; i < Points.Length; i++) {
Points[i].transform.position = PointPosition(i * time);          
}
Vector2 PointPosition(float t) {
Vector2 currentPointPos = (Vector2)transform.position + ((direction.normalized * force * t) * 0.5f * Physics2D.gravity * (t*t));
return currentPointPos;
}

按照我的理解,通过在transform.position上使用+操作数,它将添加到两个轴上。我错了吗?我需要为两个轴做两个操作吗?还是我的错误在其他地方?

您应该将重力添加到初始速度中。(你把它相乘,这是错误的(

var v0 = direction.normalized * force;
var delta = new Vector2(0, 0.5f * Physics2D.gravity * t);
var offset = (v0 + delta) * t;
Vector2 currentPointPos = (Vector2)transform.position + offset;

最新更新