Poniżej znajduje się kod skryptu C# automatycznej inteligencji dla przeciwników w grze Bastion. Przeciwnik wykrywa gracza gdy ten zbliży się na ustawioną odległość, podąża za graczem utrzymując ustalony w inspektorze dystans. Część kodu odpowiada za pozycje przeciwników by nie nakładały się na siebie przy ich większej liczbie:
using UnityEngine;
using System.Collections;
public class AutInt: MonoBehaviour {
public Transform target;
public int moveSpeed;
public int rotationSpeed;
public int maxDistance;
private Transform myTransform;
void Awake() {
myTransform = transform;
}
void Update () {
//Debug.DrawLine(target.position, myTransform.position, Color.yellow);
//Patrz na target
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
//Debug.Log(Vector3.Distance(target.position, myTransform.position));
if((Vector3.Distance(target.position, myTransform.position) > maxDistance)){//&( Vector3.Distance(GameObject.FindGameObjectWithTag("Wrog").transform.position ,myTransform.position)>100) ){
//Move towards target
myTransform.position += myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
//Przeciwnik wykrywa przeszkode
if (Physics.Raycast(myTransform.position, transform.TransformDirection(Vector3.forward), 50)){
myTransform.position -= myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
}
}