- Home /
How to set-up a Door that locks behind you after walk in to a room, but need a iPhone as a key to get out?
Hey Guys, I need some help I set up a level to get inside the bedroom, the plan was, I already set up the some javascripts and the animation for the door to be closed (but don't know how to reverse it"
Player gets in a bedroom, but the door shuts behind him, and he's trapped
Player waits for 20 seconds, the Iphone rings
The bedroom doors opens as the player picks up the Iphone into inventory,
Then heads out of the bedroom then gets into the lab door that opened as well
I set the animation from DoorJoint, and the BedroomDoor as a child of DoorJoint.
JavaScript for PlayerInventory.js
#pragma strict
//Inventory List
public var hasIphone : boolean;
JavaScript for DoorCloses.js
var CloseDoorClip : AnimationClip;
private var playerInventory : PlayerInventory;
private var count : int;
function OnTriggerEnter (player : Collider) {
if(player.tag=="Player")
GameObject.Find("DoorJoint").GetComponent.<Animation>().Play("BedroomDoorClose");
}
function OnTriggerExit (player : Collider)
{
if(player != null && player.HasIphone()) {
GameObject.Find("DoorJoint").GetComponent.<Animation>().Play("BedroomDoorClose");
}
}
JavaScript for Tags.js
#pragma strict
//List of tag strings for the game that will store data
public static var player : String = "Player";
public static var gameController : String = "Game Controller";
public static var enemy : String = "Enemy";
public static var iphone : String = "Iphone";
public static var doorjoint : String = "DoorJoint";
JavaScript for IphonePickup.js
#pragma strict
public var keyGrab : AudioClip; // Audioclip to play when the key is picked up.
private var player : GameObject; // Reference to the player.
private var playerInventory : PlayerInventory; // Reference to the player's inventory.
function Awake ()
{
// Setting up the references.
player = GameObject.FindGameObjectWithTag(Tags.player);
playerInventory = player.GetComponent(PlayerInventory);
}
function OnTriggerEnter (other : Collider)
{
// If the colliding gameobject is the player...
if(gameObject.tag == "Player");
{
// ... the player has a key ...
playerInventory.hasIphone = true;
// ... and destroy this gameobject.
Destroy(gameObject);
}
}
Answer by spiceboy9994 · May 29, 2015 at 01:34 PM
If you only need to reverse the animation, just change the animation speed to -1
var doorJointAnimation = GameObject.Find("DoorJoint").GetComponent.<Animation>();
doorJointAnimation["BedroomDoorClose"].speed = -1.0f;
doorJointAnimation.Play("BedroomDoorClose");
Regards
Your answer
Follow this Question
Related Questions
How to open a door with the "E" key 1 Answer
Start Animation in code is not working 1 Answer
Open doors with key & sound 1 Answer
How to launch an animation pressing e 1 Answer
Key to open door not working. 1 Answer