Platformer: Elevator Movement

Intro

In this article, we will cover having the elevator move down when it is called and when the player steps onto the elevator it will move up to the next level.

Setting Up The Elevator

The elevator is made up of 3 basic cubes and will have a Box Collider with Is Trigger true and a Rigidbody with Use Gravity to false. This is so we can detect when the player steps onto the elevator.

We will also need to create two empty gameobjects for the start position and end position. This is all stored in an empty gameobject, Elevator_Container, to keep everything neat and organized.

The Code

The first thing is to being able to access the new elevator script from the elevator panel script. The reason being the elevator panel has the button that detects when the player presses meaning it has been called to move down. We declared an Elevator class, assign it using GameObject.Fin, and complete a null check.

When the player calls for the elevator, we access the elevator script and call the CallElevator method.

In the Elevator script, we declared these variables which I will go over how each will be implemented.

The first is a bool that keeps track of if the elevator should be moving down and is set to true when Call Elevator method is called from the elevator panel script.

In a fixed update, if the moving down is true, we set the position of the elevator to move towards the transform of the End game object at the speed of variable. If moving down is false, meaning it has reached the bottom floor, we reverse it by setting the transform to move towards the transform of the start game object.

Also, when moving down is true, we change the elevator button changed to green and when it is moving up, we set it to red.

The last thing is having the player be coupled with the elevator to prevent it from jittering. We use the OnTriggerEnter for when the player enters the BoxCollider on the elevator. Once this happens we set the player’s to be a child of the elevator and set the moving down bool to false, since we want the elevator to now move up.

When the player exits the elevator, we use OnTriggerExit to exit the player from being a child of the elevator by setting it to null.

Conclusion

It was extremely fun to figure out how to create buttons to create moving platforms and I will want to return to this in hopes to make it more modular. I feel elevators are essential in platformers along with button presses being used in puzzles for the player to solve. Until next time…

Cheers!

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Clean architecture - making Node.js API shine!

My reflections on Andela EPIC Values

Evaluating Cloud Technology Solutions for your Business

How to Connect WiFi Extender to Verizon Router

The Beginner’s Guide To SQL For Data Analysis

The most fun part about #NFTxCards’ concept

Provisioning EC2 for a Basic Docker Image

Troubleshooting Power Apps Custom Connector Issues

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ryan McCoach

Ryan McCoach

More from Medium

Ledge Grab System: Part IV

Structuring Your Unity Code For Production: Important Best Practices

Cinematography In Unity — Cameras In Cinemachine

47 High Quality Plugins on Unity Asset Store-Essential Tools for Unity Developers