我遇到一个小问题,就是我想发射一个火箭打击目标,而且火箭需要是曲线运动,并且火箭后面要有水蒸气,或者是火焰之类的粒子或者特效,我查阅了一下,就想先做一个小demo看一下
思路
我们首先思考两个问题:
1:火箭曲线运动
2:火箭运动的同时留下痕迹,使用画线工具
先来看看第一个问题:
1火箭曲线运动:就是火箭呈现抛物线运动,
抛物线运动所需要的必须条件:1自身位置
2目标位置
3起始速度/时间
根据给定平均速度,然后再通过距离/速度,就可得出时间,那么轨迹也就确定
水平距离=水平速度*时间
1参数1:初始速度
2参数2:目标点
3参数3:可以自己求出
public float ShotSpeed = 10;//初始速度
private float time = 1;//代表从A点出发到B经过的时长
public Transform pointA;//点A 可以不需要,也可以用,好处就是方便更改起始移动的位置
public Transform pointB;//点B
public float g = -10;//重力加速度
// Use this for initialization
private Vector3 speed;//初速度向量
private Vector3 Gravity;//重力向量
private bool IsDistance=true;//判断是否到达目标点--》后期方便物体停下
private Vector3 currentAngle;//当前旋转
1这样我们的原材料就准备好了,下面我们就把他们需要的值分别赋予他们
time = Vector3.Distance(pointA.position, pointB.position) / ShotSpeed;//这个是总距离/速度求得时间
transform.position = pointA.position;//将物体置于A点
//通过一个式子计算初速度
speed = new Vector3((pointB.position.x - pointA.position.x) / time