找回密码
 立即注册
查看: 289|回复: 0

【Unity】抛物线公式

[复制链接]
发表于 2022-6-8 07:57 | 显示全部楼层 |阅读模式
先上公式
        public static Vector3 Parabola(Vector3 start, Vector3 end, float totalTime, float curTime)        {            //var g = 9.8f;            var g = 50f;            var halfTime = totalTime / 2f;            var vec = (end - start) / totalTime;            var initVelocity = vec + new Vector3(0, g * halfTime, 0);            var acc = new Vector3(0, -g, 0);            var curPos = start + initVelocity * curTime + 1f / 2f * acc * curTime * curTime;            return curPos;        }
使用方法,这里我用的是协程
            float totalTime = 0.5f;            float startTime = Time.time;            while (true)            {                if (Time.time > startTime + totalTime)                {                    break;                }                var curTime = Time.time - startTime;                goGrenade.transform.position = MathTool.Parabola(startPos, targetPos, totalTime, curTime);                yield return null;            }
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 09:42 , Processed in 0.122429 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表