首页 > 软件开发 > 软件开发

软件开发Unity实现2D的抛物线轨迹预测效果

admin 软件开发 2021-05-25 09:27:23 unity 
后台-系统设置-扩展变量-手机广告位-内容正文底部

首先来看实现效果:

芜湖 成了!

做的时候距离现在有好几个月了 关键代码只有几行

//生成轨迹点 且轨迹点随着距离越来越小 这里的轨迹点就是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下载链接

文章来源:https://blog.csdn.net/qq_46013595/article/details/117168675

后台-系统设置-扩展变量-手机广告位-内容正文底部
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:https://www.jcdi.cn/ruanjiankaifa/30840.html

留言与评论(共有 0 条评论)
   
验证码:
后台-系统设置-扩展变量-手机广告位-评论底部广告位

教程弟

https://www.jcdi.cn/

统计代码 | 京ICP1234567-2号

Powered By 教程弟 教程弟

使用手机软件扫描微信二维码