- 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
![](https://koobas.hobune.stream/wayback/20220613091348im_/https://answers.unity.com/themes/thub/images/avi.jpg)
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