素材巴巴 > 程序开发 >

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下载链接


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。