话不多说,直接上代码。代码复制粘贴即可用,使用代码的时候,给目标添加刚体即可。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Parabol : MonoBehaviour
{
private Rigidbody rgb;
/// <summary>
/// 目标
/// </summary>
public GameObject target;
/// <summary>
/// 子弹的发射点
/// </summary>
private Vector3 originPoint;
private Vector3 aimPoint;
/// <summary>
/// 无弹道偏移的当前位置
/// </summary>
private Vector3 myVirtualPosition;
/// <summary>
/// 定位最后一帧
/// </summary>
private Vector3 myPreviousPosition;
/// <summary>
/// 是否可以发射
/// </summary>
private bool sw = false;
private bool actived = false;
/// <summary>
/// 最大发射距离
/// </summary>
public float maxLaunch = 1f;
/// <summary>
/// 加速度计算计数器
/// </summary>
private float counter;
/// <summary>
/// 刚刚启动时的速度
/// </summary>
public float speed = 0.5f;
/// <summary>
/// 恒定加速度
/// </summary>
public float speedUpOverTime = 0.1f;
/// <summary>
/// 弹道偏移量(与目标的距离)
/// </summary>
public float ballisticOffset = 0.5f;
void Start()
{
rgb = GetComponent<Rigidbody>();