- Home /
GameObjects are moving incredibly fast, possibly make slower?
Hello, I have these game objects that I was going to make chase the player in a forward moving rail shooter. However, the enemies moves incredibly fast and leaves almost no time for the player to react making this unfair. What I am asking is some advice on how to make the enemies slow down at an appropriate speed. I would appreciate any advice and thanks in advance. Here is the script I have been working on for awhile that I can't get the speed quite right:
using UnityEngine;
using System.Collections;
public class EnemyAIMelee : MonoBehaviour
{
private bool AttackStatus;
public float attackDistance = 5.0f;
public float chaseSpeed = 0.01f;
private bool unlockAI;
public GameObject playerCharacterManager;
// Use this for initialization
void Start()
{
playerCharacterManager = GameObject.FindGameObjectWithTag ("PlayerCharacterManager");
AttackStatus = false;
unlockAI = true;
}
// Update is called once per frame
void Update ()
{
if (AttackStatus == true)
{
MovingAI ();
}
}
void MovingAI()
{
if(unlockAI == true)
{
transform.rotation = Quaternion.LookRotation(transform.position - playerCharacterManager.transform.position);
transform.position = Vector3.MoveTowards (transform.position, playerCharacterManager.transform.position, chaseSpeed);
Debug.Log ("MovingAI has been reached");
SendMessage ("EnemyMovingAnimation", true);
float distance = Vector3.Distance(playerCharacterManager.transform.position, transform.position);
if(distance<=attackDistance)
{
AttackAI();
}
}
}
void AttackAI()
{
unlockAI =false;
int numOfSwings = 1;
while (numOfSwings > 0)
{
SendMessage ("EnemyAttackAnimation", true);
numOfSwings--;
}
SendMessage ("EnemyAttackAnimation", false);
Debug.Log ("AttackAI has been reached");
Invoke ("WaitTime",5.0f);
}
void WaitTime()
{
//SendMessage ("EnemyAttackAnimation", false);
unlockAI =true;
}
void BeginTheAttack(bool chase)
{
AttackStatus = chase;
}
}
Answer by cdrandin · Feb 03, 2015 at 03:35 AM
Try including a Time.deltatime multiplying against your resulting speed.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Use vim with unity? 1 Answer
How to get multiple string values from override ToString()? 1 Answer