We can regard it as a big three-step process in which we first manipulate the internal target position in a parameterized random way, face that position, and move accordingly:
- Create the Wander class deriving from Face:
using UnityEngine; using System.Collections; public class Wander : Face { public float offset; public float radius; public float rate; }
- Define the Awake function in order to set up the internal target:
public override void Awake() { target = new GameObject(); target.transform.position = transform.position; base.Awake(); }
- Define the GetSteering function:
public override Steering GetSteering() { Steering steering = new Steering(); float wanderOrientation = Random.Range(-1.0f, 1.0f) * rate; float targetOrientation ...