本文主要是介绍抛物线子弹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
抛物线子弹
想实现愤怒小鸟的抛物线,在网上找了一番,没有找到。 自己实现了下。实现了两种抛物线的算法:
1.通过sin函数,需知道目标点。
2. 通过匀加速和自由落体,模拟了抛物线子弹的效果。
如有更好的计算方式,请留言。 互相分享,共同进步。
// 需知道目标点
public class TestBullet : MonoBehaviour
{
public float value;
public float hightRate = 2; // 高度
public Transform startPoint; // 起点
public Transform endPoint; // 终点
public Transform target; // 发射物public float a = 1;
public float b = 1;
public float c = 1;
public Transform xTr;
public Transform yTr;// 已知起点和终点,求抛物线点
private Vector3 GetParabolaPoint(float time, float hightRate, Vector3 startPoint, Vector3 endPoint)
{value = Mathf.Clamp(value, 0, 1);float hight = Mathf.Sin(value * Mathf.PI) * hightRate;Vector3 result = Vector3.Lerp(startPoint, endPoint, value);result.y = result.y + hight;return result;
}// 已知起点、方向、速度,求抛物线
private Vector3 GetParabolaPoint()
{
这篇关于抛物线子弹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!