Hey guys.
I’m trying to Lerp and smooth out a movement for my melee weapons.
Its a top-down shooter style game.
Here’s my melee script.
public void OnTriggerEnter(Collider other)
{
Vector3 dir = other.transform.position - transform.position;
dir.y = 0;
if (other.rigidbody)
{
if(swinging)
{
other.rigidbody.AddForce (dir.normalized * force);
}
}
if (other.gameObject.tag == "Enemy")
{
var aiHealth = other.gameObject.GetComponent<ZombieDeathScript>();
if(swinging)
{
CharacterController controller = other.gameObject.GetComponent<CharacterController>();
aiScript = other.gameObject.GetComponent<AIFollow>();
Vector3 bashDir = other.transform.TransformDirection(Vector3.back);
other.transform.position = Vector3.Lerp(transform.position, transform.position + bashDir, pushSpeed);
//controller.SimpleMove(bashDir * Time.deltaTime * pushSpeed);
aiScript.speed = 2.5f;
aiHealth.health -= damage;
audio.clip = sounds[Random.Range(0,sounds.Length)];
audio.Play();
Invoke("ResetSpeed", 2);
}
}
}
void ResetSpeed ()
{
aiScript.speed = 5;
}
The problem is, the knock-back is instant, I want it to knock the enemy back slowly.
The enemies use Character Controllers, I had them as rigidbodies before, but recently changed. And that’s why I’m asking for some help.