Basic AI Movment

I have been searching around but i cant find anything that will work. All im looking for is a script that moves the enemy forward and when it encouteres an object it randomly picks going right or left.
Edit or backwards

Thats pretty simple to do, and if its all you need i would recommend looking at Raycast documentation

Also, Random.Range and a simple if() statement would take care of your left / right issue.

If your totally new to the scripting side of things , send me a pm, i will help ya out. However - all the info you need is found in abundance.

i tried using constant force to move forward but it gave me a ton of errors.

I got This

var leftright = 0;
function Update () {
leftright = Random.Range(1, 3);
transform.Translate(Vector3.forward * Time.deltaTime * 5);
var fwd = transform.TransformDirection (Vector3.forward);
if (Physics.Raycast (transform.position, fwd, 10)) {
if (leftright == 1){
transform.Rotate (0,0,10);
}
else if (leftright == 2){
transform.Rotate (0,10,0);
}
else if (leftright == 3){
transform.Rotate (10,0,0);
}
}
but the turn does not work.

maybe this help

var forwardSpeed	: int = 5;
var CheckWide		: int = 10;
var rotateSpeed		: int = 1;

function Update () {

	// Moving Forward
	if (!Physics.Raycast (transform.position, transform.forward, CheckWide)) {
		transform.Translate(transform.forward * forwardSpeed * Time.deltaTime);
	}

	// Check if we hit something to the Right side. Move left
	if(Physics.Raycast(transform.position, transform.forward + transform.right, CheckWide)) {
		transform.Rotate(-transform.right * rotateSpeed * Time.deltaTime);
	}
	// Check if we hit something to the left side. Move right
	else if(Physics.Raycast(transform.position, -transform.right + transform.forward, CheckWide)) {
		transform.Rotate(transform.right * rotateSpeed * Time.deltaTime);
	}
}

That worked for about 1 second. Then stoped

Anyone to help?

Edit i tried this

var forwardSpeed : int = 5;

var CheckWide : int = 10;

var rotateSpeed : int = 1;
function Update () {
time = Time.time;

transform.Translate(Vector3.forward * Time.deltaTime * 5);
var fwd = transform.TransformDirection (Vector3.forward);
// Check if we hit something to the Right side. Move left

if(Physics.Raycast(transform.position, transform.forward + transform.right, CheckWide)) {

transform.Rotate(-transform.right * rotateSpeed * Time.deltaTime);

}

// Check if we hit something to the left side. Move right

else if(Physics.Raycast(transform.position, -transform.right + transform.forward, CheckWide)) {

transform.Rotate(transform.right * rotateSpeed * Time.deltaTime);
}
}

var forwardSpeed    : int = 5;

var CheckWide       : int = 10;

var rotateSpeed     : int = 1;
function Update () {
time =  Time.time;

    transform.Translate(Vector3.forward * Time.deltaTime * 5);
    var fwd = transform.TransformDirection (Vector3.forward);
    // Check if we hit something to the Right side. Move left

    if(Physics.Raycast(transform.position, transform.forward + transform.right, CheckWide)) {

        transform.Rotate(-transform.right * rotateSpeed * Time.deltaTime);

    }
    // Check if we hit something to the left side. Move right

    else if(Physics.Raycast(transform.position, -transform.right + transform.forward, CheckWide)) {

        transform.Rotate(transform.right * rotateSpeed * Time.deltaTime);
        }  
        }

I got this but how would you implement if somethings in front then turn around.

Edit: to get them to go forward i added a cube jetting out of the sphere.