- Home /
Turret AI script off rotation
I have a javascript that runs an automatic turret... it controls the movement of the turret and a light that changes color depending if thee turret is engaged or not. Problem is the turret looks about 45 degrees to the right of the player. This has happened with a lot of scripts now and I have tried resetting various coordinates such as rotation of the turret, and the turret head and the player. Here's the code;
var range : float = 75;
var target : Transform;
var damp : float = 2.5;
var indicator : Light;
function Update ()
{
target = GameObject.FindWithTag("Player").transform;
var distance = Vector3.Distance(target.transform.position, transform.position);
if(distance <= range)
{
indicator.light.color = Color.red;
if(target)
{
var rotate = Quaternion.LookRotation(target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp);
transform.LookAt(target);
}
}
if(distance >= range)
{
indicator.light.color = Color.green;
}
}
How can I make it look about 45 degrees further to the left (or right, depending which way you look at it)?
Answer by Berenger · Jan 22, 2013 at 09:51 AM
transform.LookAt(target) will override your setting of the rotation, remove one of the two lines.
Not related to your problem, but you should store the player's transform in a variable instead of searching for it every frame.
To add on. That one line, after update. Dump it into the Start function.
Your answer
Follow this Question
Related Questions
Rotation speed on turret aimed at cursor 1 Answer
Rotating on X and Z axis only 2 Answers
Lock rotation of object 4 Answers
Simple LookAt Rotation with offset pivot 2 Answers
2D Jump AI Help 0 Answers