Hey, when I finally got back to classes today and set up my FSM as described in my previous questions, I received the same problems as my first question(the framerate drops dramatically, the enemies perform all their actions, and the game eventually crashes). Can anyone explain to me what the problem is with my current script that keeps providing this same problem?
var speed = 10;
var minspeed = 2.5;
speed *= Random.value;
speed += minspeed;
var shipTarget : Transform;
enum State {
WAITING,
SEEKING,
ATTACKING,
MOVING
}
var state : State;
function Update () {
if (Time.timeScale > 0) {
if (transform.position.y == 0) {
switch (state)
{
case State.WAITING:
shipWait(5);
break;
case State.SEEKING:
facePlayer(shipTarget);
break;
case State.ATTACKING:
fire();
break;
case State.MOVING:
moveForward();
break;
}
}
}
}
function shipWait (waitTime : float) { //Waits up to 5 seconds.
yield WaitForSeconds(Random.value * waitTime);
}
function moveForward () { //Simply moves forward
transform.Translate (0, 0, speed * Time.deltaTime);
}
function facePlayer (target : Transform) { //Turns to face the player
if (shipTarget) {
// Look at and dampen the rotation
var rotation = Quaternion.LookRotation(shipTarget.position - transform.position);
transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime);
}
}
function fire () {
gameObject.SendMessage("Shoot", SendMessageOptions.DontRequireReceiver);
}