I really don’t know how else to describe this problem. I’m making a game in which the enemies approach the player and jump randomly. I recently asked a question about getting them to do this, which was amazingly helpful, and now I have a whole new problem: They’re doing it too much. Now they are jumping multiple times per instance, and I can’t figure out how to get it to limit it to one jump at a time. I’m sure there needs to be some sort of wait time or if statement, but I’m still wrapping my head around general programming, so I choose to defer to experts.
Here is my code:
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
public float speed;
public float jumpHeight;
public float jumpWaitMin, jumpWaitMax;
public float jumpRate;
public Rigidbody2D rigidbody2d;
void Start ()
{
StartCoroutine (JumpLogic ());
rigidbody2d.velocity = transform.right * speed;
}
IEnumerator JumpLogic()
{
float minWaitTime = jumpWaitMin;
float maxWaitTime = jumpWaitMax;
while (true) {
yield return new WaitForSeconds (Random.Range (minWaitTime, maxWaitTime));
Jump ();
}
}
void Jump()
{
rigidbody2d.AddForce (new Vector2 (0, 1) * jumpHeight * 100);
}
}
Thanks in advance for your help!