This is my enter turret script that i have attached to a collider.
private var weaponCamera : GameObject; // drag and drop player camera from Hierarchy to Inspector window!
var vehicleCam : GameObject;
var vehicleCameraTarget : Transform;
var vehicle : GameObject;
private var Player;
var GetOutPosition : Transform; // Empty game object, where player will get out of the vehicle
var VehicleControllScript: String = "ScriptName"; // Just write script name, which controls vehicle movement (controller script).
private var opened : boolean = false;
private var waitTime : float = 1; // leave it as 1
private var temp : boolean = false;
private var mainCamera : GameObject;
function Start () {
Player = GameObject.FindWithTag("Player");
mainCamera = GameObject.FindWithTag("MainCamera");
weaponCamera = GameObject.FindWithTag("WeaponCamera");
vehicleCam.camera.enabled = false;
vehicle.GetComponent(VehicleControllScript).TurretEnabled = false;
vehicleCam.GetComponent(AudioListener).enabled = false;
}
function Update() {
if ((Input.GetKeyDown("e")) && opened && !temp){
GetOut();
opened = false;
temp = false;
}
}
function Action (){
if (!opened && !temp){
GetIn();
opened = true;
temp = true;
yield WaitForSeconds(waitTime);
temp = false;
}
}
function GetIn() {
var changeTarget : VehicleCamera = vehicleCam.transform.GetComponent("VehicleCamera");
changeTarget.target = vehicleCameraTarget;
Player.BroadcastMessage("LightOff");
// Disable all script behaviours on Player (Essentially deactivating player control)
var coms : Component[] = Player.GetComponentsInChildren(MonoBehaviour);
for (var b in coms) {
var p : MonoBehaviour = b as MonoBehaviour;
if (p)
p.enabled = false;
}
// Disable all renderers
var gos = Player.GetComponentsInChildren(Renderer);
for( var go : Renderer in gos){
go.enabled = false;
}
Player.transform.parent = vehicle.transform;
Player.transform.position = vehicleCameraTarget.transform.position;
Player.rigidbody.isKinematic = true;
Player.collider.isTrigger = true;
weaponCamera.camera.enabled = false;
weaponCamera.GetComponent(AudioListener).enabled = false;
mainCamera.camera.enabled = false;
vehicleCam.camera.enabled = true;
vehicle.GetComponent(VehicleControllScript).TurretEnabled = true;
vehicleCam.GetComponent(AudioListener).enabled = true;
}
function GetOut() {
// Enable all script behaviours on Player (Essentially deactivating player control)
var coms : Component[] = Player.GetComponentsInChildren(MonoBehaviour);
for (var b in coms) {
var p : MonoBehaviour = b as MonoBehaviour;
if (p)
p.enabled = true;
}
// Enable all renderers
var gos = Player.GetComponentsInChildren(Renderer);
for( var go : Renderer in gos){
go.enabled = true;
}
Player.transform.parent = null;
Player.rigidbody.isKinematic = false;
Player.collider.isTrigger = false;
Player.transform.position = GetOutPosition.transform.position;
weaponCamera.camera.enabled = true;
weaponCamera.GetComponent(AudioListener).enabled = true;
mainCamera.camera.enabled = true;
vehicleCam.camera.enabled = false;
vehicleCam.GetComponent(AudioListener).enabled = false;
vehicle.GetComponent(VehicleControllScript).TurretEnabled = false;
}
here’s my shooting script added inside the turret model (the barrel of it)
var fireRate = 1.0;
var projectile : Rigidbody;
var speed = 20;
var crashSound : AudioClip;
private var nextFire = 0.0;
public var TurretEnabled : boolean;
function Update()
{
if (Input.GetButtonDown("Fire1") && (Time.time <= nextFire) && TurretEnabled)
{
nextFire = Time.time + fireRate;
}
if(Input.GetButton("Fire1") && (Time.time > nextFire) && TurretEnabled)
{
nextFire = Time.time + fireRate;
clone = Instantiate(projectile, transform.position, transform.rotation);
clone.velocity = transform.TransformDirection( Vector3 (0, 0, speed));
audio.PlayOneShot(crashSound);
Destroy (clone.gameObject, 3);
}
}
how will i do so that the enter turret script changes the “TurretOn” boolean variable to on and off?