抛物线子弹
想实现愤怒小鸟的抛物线,在网上找了一番,没有找到。 自己实现了下。实现了两种抛物线的算法:
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()
{