Hello everyone,
I’m trying to make a third person shooter. I’m used the standard AI Third Person Controller. I have a prefab for the bullet. And I have a script for the enemy AI. The problem is it works badly. The bullets instantiate too low, the fire rate this too high (constant barrage of bullets) and the characters move while floating around instead of walking. Can you please help me fix it?
Here it is:
public var Target : Transform;
public var Projectile : Transform;
public var MaximumLookDistance : float = 15;
public var MaximumAttackDistance : float = 10;
public var FollowSpeed : float = 5;
public var MinimumDistanceFromPlayer : float = 2;
public var RotationDamping : float = 2;
public var MoveSpeed : float = 1;
function Update () {
var distance = Vector3.Distance(Target.position, transform.position);
if(distance <= MaximumLookDistance) {
LookAtTarget ();
if(distance <= MaximumAttackDistance)
AttackAndFollowTarget (distance);
}
}
function LookAtTarget () {
var dir = Target.position - transform.position;
dir.y = 0;
var rotation = Quaternion.LookRotation(dir);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * RotationDamping);
}
function AttackAndFollowTarget (distance : float) {
if(distance > MinimumDistanceFromPlayer)
transform.Translate((Target.position - transform.position).normalized * MoveSpeed * Time.deltaTime);
Instantiate(Projectile, transform.position + (Target.position - transform.position).normalized, Quaternion.LookRotation(Target.position - transform.position));
}