here's what i need it for: you walk around the level, and when you hit a helicopter in the game, i have it where it turns off the script used to move a player so that when you're in the helicopter, you can't control movement of the main player.
that works and all, but i want to be able to actually turn on the MoveAround script after the helicopter hits it's end trigger. right now, it's not re-enabling that script...
here are my scripts to control this:
this script is titled: "PlayerHeliPlayer"
var Cam1 : Camera;//player camera
var Cam2 : Camera;//heli camera main
var Cam3 : Camera;//heli camera move-able
static var fly = false;//am i flying yet?
function OnTriggerEnter(hit : Collider)
{
if(hit.gameObject.tag == "endFlight")//to stop flying
{
Cam1.enabled = true;
Cam2.enabled = false;
Cam3.enabled = false;
}
}
function Update () {
if(fly)//if i am (supposed to be) flying...
{
Fly();
}
}
function Fly()
{//make me fly!
transform.Translate(Vector3.forward * Time.smoothDeltaTime * 100);
}
and that obviously makes the heli move. this script goes on the player and turns off the MoveAround script it's titled: "PlayerCall"
static var Walk = true;
static var WALK = false;
var camera1 : Camera;
var camera2 : Camera;
var camera3 : Camera;
function Start()
{
camera1.enabled = true;
camera2.enabled = false;
Walk = true;
WALK = false;
}
function OnTriggerEnter(hit : Collider)
{
if(hit.gameObject.tag == "Heli")
{
PlayerHeliPlayer.fly = true;
camera1.enabled = false;
camera2.enabled = true;
camera3.enabled = true;
Walk = false;
WALK = false;
}
}
function Update()
{
MA = GetComponent(MoveAround);
if(Input.GetKeyUp("escape"))
{
Application.LoadLevel("Main Menu");
}
if(Walk && gameObject.tag == "Player")
{
MA.enabled = true;
}
else
{MA.enabled = false;}
}
those script work fine together to turn off the MoveAround script... but apparantly i don't know the correct way to turn a script back on... so could you please help me?
in case you need my MoveAround script (you shouldn't but), here it is:
//shooting
static var UseBetterBullet = false;
//dying
static var dead = false;
static var Dead = false;
private var Respawn = true;
static var money = 0;
static var SCORE = 0;
static var Player1 = true;
var bullitPrefab : Transform;
var respawn1 : Vector3;
var respawn2 : Vector3;
static var DSN = false;
//geting hit
static var gotHit = false;
static var IsPlayer = true;
function Start()
{
particleEmitter.emit = false;
}
//respawn
function LateUpdate()
{
if(DSN)
{
// activates the game object.
gameObject.active = true;
}
if(Dead && !Respawn)
{
transform.position = respawn2;
Dead = false;
print("i respawned yet again!");
}
if(dead && Respawn)
{//where the player respawns
transform.position = respawn1;
dead = false;
print("i respawned!");
}
}
function OnTriggerEnter( hit : Collider )
{
if(hit.gameObject.tag == "SuddenDeath1")
{
enemyFollow.MOVE1 = false;
enemyFollow.MOVE2 = false;
enemyFollow.MOVE3 = true;
}
if(hit.gameObject.tag == "TurretSlaught2")
{
enemyFollow.MOVE1 = false;
enemyFollow.MOVE2 = true;
enemyFollow.MOVE3 = false;
}
if(hit.gameObject.tag == "MoneyMaker")
{
money += 50;
Destroy(hit.gameObject);
print("I have " +money+ " Dollars!");
}
if(hit.gameObject.tag == "fallout3" && !Respawn)
{
Dead = true;
HealthControl.LIVES -= 1;
}
if(hit.gameObject.tag == "fallout2")
{
Respawn = false;
}
//when the player falls off (this doesnt really work too good. )
if(hit.gameObject.tag == "fallout")
{
dead = true;
//subtract life here
HealthControl.LIVES -= 1;
print("i fell off...");
}
//getting hit (this works)
if(hit.gameObject.tag == "enemyProjectile")
{
gotHit = true;
HealthControl.HITS += 1;
Destroy(hit.gameObject);
print("i got hit!");
}
//manipulating weather
if(hit.gameObject.tag == "weather")
{
ParticleEmitToggle.WCONTROL = true;
print("Now i can control weather.");
}
//level select button controls
if(hit.gameObject.tag == "Level2")
{
GUIshader.Level2 = true;
print("hit level two");
}
if(hit.gameObject.tag == "Level3")
{
GUIshader.Level3 = true;
print("hit level three");
}
if(hit.gameObject.tag == "Level4")
{
GUIshader.Level4 = true;
print("hit level four");
}
if(hit.gameObject.tag == "Level5")
{
GUIshader.Level5 = true;
print("hit level five");
}
if(hit.gameObject.tag == "WORK")
{
MovingPlatform4.work = true;
}
}
/// This script moves the character controller forward
/// and sideways based on the arrow keys.
/// It also jumps when pressing space.
/// Make sure to attach a character controller to the same game object.
/// It is recommended that you make only one call to Move or SimpleMove per frame.
var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;
private var moveDirection : Vector3 = Vector3.zero;
function Update()
{
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
// We are grounded, so recalculate
// move direction directly from axes
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
//jumping
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
print("I'm jumping!");
}
}
// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
// Move the controller
controller.Move(moveDirection * Time.deltaTime);
//main menu button
if(Input.GetKeyDown("escape"))
{
Application.LoadLevel("Main Menu");
print("Main Menu Loading...");
}
//shooting
if(Input.GetKeyDown("f") && !UseBetterBullet && !Player1)
{//makes a fireball prefab
var bullit2 = Instantiate(bullitPrefab, gameObject.Find("SPawnPoint").transform.position,
Quaternion.identity);
bullit2.tag = "wormProjectile";
//shoots it forward
bullit2.rigidbody.AddForce(transform.forward * 4000);
//makes it go completely straight
useGravity = false;
print("I shot a fireball!");
}
if(Input.GetKeyDown("f") && !UseBetterBullet && Player1)
{//makes a fireball prefab
var bullit = Instantiate(bullitPrefab, gameObject.Find("spawnPoint").transform.position,
Quaternion.identity);
bullit.tag = "wormProjectile";
//shoots it forward
bullit.rigidbody.AddForce(transform.forward * 4000);
//makes it go completely straight
useGravity = false;
print("I shot a fireball!");
}
if(Input.GetKey("f") && UseBetterBullet)
{
particleEmitter.emit = true;
Invoke("DestroyEmitter",1);
}
//prints your score
print("Score: "+SCORE);
//changes your score
switch(SCORE)
{
case 10:
Application.LoadLevel("Main Menu");
break;
}
}
function DestroyEmitter()
{
if(Time.time*1.5 > 7.5)
particleEmitter.emit = false;
}
@script RequireComponent(CharacterController)
Thank You in advance!!!