- Home /
I am making an AI Script and i need to find out how to make the enemy move in random x and z axis movements(Random!!!)This script works, but the movement is never ending.
var speed : int = 10; var shotDelay : float = 1;
function Update() { transform.Translate(Vector3(speed,0,0)); transform.Translate(Vector3(0,0,speed));
}
Answer by whebert · Mar 20, 2013 at 09:04 PM
Use the Random class.
var speed : float = 10;
function Update () {
transform.Translate(Random.value * speed, 0, Random.value * speed);
}
$$anonymous$$y answer was kind of simple and quick, just suggesting using the Random class for random results. But just looking over it, it probably isn't what you were looking for. There are a myriad of ways to move an object randomly in Unity, and I don't really know what your intent was, but here is another example that would give you more control over the movement. You can modify the movementDistance for each random change and the time between changes with timerDuration. Just another possibility...
#pragma strict
var fromPosition : Vector3;
var targetPosition : Vector3;
var movementDistance : float = 10;
var timerDuration : float = 1;
var timer : float = 0;
var moveRandomly : boolean = true;
function Update () {
if(moveRandomly)
{
if(timer <= 0)
{
timer = timerDuration;
fromPosition = transform.position;
targetPosition = fromPosition + Random.insideUnitSphere * movementDistance;
// $$anonymous$$eep movement within X,Z plane
targetPosition.y = fromPosition.y;
}
transform.position = Vector3.Lerp(fromPosition, targetPosition, $$anonymous$$athf.Clamp((timerDuration - timer)/timerDuration, 0, 1));
timer -= Time.deltaTime;
}
}
Your answer
Follow this Question
Related Questions
why won't my code work? 1 Answer
Help with Enemy AI 1 Answer
2D sidescroller ranged character shooting problem. 0 Answers
Enemy following Player in range 2 Answers
Checking Enemies In An Area. 1 Answer