发射炮弹(可蓄力)
using System. Collections;
using System. Collections. Generic;
using UnityEngine;
public class TankShoot : MonoBehaviour
{
public Rigidbody shell;
public Transform firePos;
public float maxForce= 20f ;
public float minForce= 10f ;
public float maxChargeTime = 0.75f ;
private float currentForce;
private float chargeSpeed;
private bool isFired;
private void OnEnable ( )
{
currentForce = minForce;
}
private void Start ( )
{
chargeSpeed = ( maxForce - minForce) / maxChargeTime;
}
private void Update ( )
{
if ( currentForce >= maxForce && ! isFired)
{
currentForce = maxForce;
Fire ( ) ;
}
else if ( Input. GetKeyDown ( KeyCode. Space) )
{
isFired = false ;
currentForce = minForce;
}
else if ( Input. GetKeyDown ( KeyCode. Space) && ! isFired)
{
currentForce + = chargeSpeed * Time. deltaTime;
}
else if ( Input. GetKeyUp ( KeyCode. Space) && ! isFired)
{
Fire ( ) ;
}
}
private void Fire ( )
{
isFired = true ;
Rigidbody tankShell = Instantiate ( shell, firePos. position, firePos. rotation) as Rigidbody;
currentForce = minForce;
}
}