I want to get rid of errors in the console like this one:
UnassignedReferenceException: The variable leftFlame of 'TurretControl' has not been assigned.
You probably need to assign the leftFlame variable of the TurretControl script in the inspector.
TurretControl.Awake () (at Assets/Scripts/TurretControl.js:12)
I want to see print outputs instead of errors.
Script:
//Turret control script
var target : Transform;
var range = 10.0;
var leftFlame: GameObject;
var rightFlame : GameObject;
static var mode = "idle";
function Awake()
{
target = GameObject.FindWithTag("Player").transform;
leftFlame.renderer.enabled = false;
rightFlame.renderer.enabled = false;
}
function Update ()
{
if(target && CanAttackTarget())
{
//transform.LookAt(target);
var targetRotation = Quaternion.LookRotation(target.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 1.2);
}
}
function CanAttackTarget()
{
//check if the target is close enough
if(Vector3.Distance(transform.position, target.position) > range)
{
Disengage();
return false;
}
var hit : RaycastHit;
//check if there is collision inbetween turrent and target
if(Physics.Linecast(transform.position, target.position, hit))
{
if(hit.collider.gameObject.tag != "Player")
{
Disengage();
return false;
}
else
{
Attack();
return true;
}
}
return true;
}
function Attack()
{
if(mode != "attack")
{
InvokeRepeating("FalconAnimate", 2, 0.05);
mode = "attack";
}
}
function Disengage()
{
if(mode != "idle")
{
CancelInvoke();
mode = "idle";
leftFlame.renderer.enabled = false;
rightFlame.renderer.enabled = false;
}
}
function FalconAnimate()
{
if(leftFlame && rightFlame)
{
if(leftFlame.renderer.enabled)
{
leftFlame.renderer.enabled = false;
rightFlame.renderer.enabled = true;
}
else
{
leftFlame.renderer.enabled = true;
rightFlame.renderer.enabled = false;
}
}
else
{
print("Effects on turrent not set!");
}
}