Unity实现2D的抛物线轨迹预测效果
程序开发
2023-09-13 11:33:59
首先来看实现效果:
做的时候距离现在有好几个月了 关键代码只有几行
//生成轨迹点 且轨迹点随着距离越来越小 这里的轨迹点就是gif图里的紫色轨迹
private void PrepareDots()
{dotsList = new Transform[dotsNumber];dotPrefab.transform.localScale = Vector3.one * dotMaxScale;float scale = dotMaxScale;float scaleFactor = scale / dotsNumber;for (var i = 0; i < dotsNumber; ++i){dotsList[i] = Instantiate(dotPrefab, null).transform;dotsList[i].parent = dotsParent.transform;dotsList[i].localScale = Vector3.one * scale;if (scale > dotMinScale)scale -= scaleFactor;}
}
//根据物体拖动的位置和力 来确定轨迹点的位置
//第一个参数是物体当前的位置
//第二个参数是鼠标给予物体施加的带方向的力public void UpdateDots(Vector3 ballPos, Vector2 forceApplied){timeStamp = dotSpacing;//dotspacing 相邻轨迹点之间的距离for (var i = 0; i < dotsNumber; ++i){pos.x = (ballPos.x + forceApplied.x * timeStamp);pos.y = (ballPos.y + forceApplied.y * timeStamp) - (Physics2D.gravity.magnitude * timeStamp * timeStamp) / 2f;dotsList[i].position = pos;//在for循环里形成类似于抛物线的轨迹timeStamp += dotSpacing;//timeStamp 时间}}
关于这一行代码的解释:其实可以看作物理上的平抛运动(应该是⊙▽⊙)
工程上传到了github 码友们可以去看一看
github下载链接
标签:
相关文章
-
无相关信息