Creating Floating Floor- Game Dev Series 81

Objective: creating moving platform.

Moving platforms usually are the first obstacle of player when played the platformer game first time, especially for those who are not good at action game. Yet, it is a common level design in this type of game.

In this article, we will create a simple direction moving platform.

Basic moving function

First let’s create 2 target position in game scene. Duplicate the moving platform twice, and rename the new gameobjects to Point_A & Point_B. Then remove all the components within except transform. We will just use their position as moving target.

Then create a new script and attach it to Moving_Platform. First we will create the function of moving.
Create 2 transform variables of point A & B, then use Vector3.MoveTowards in Update() and set point_B as the first target.

The MoveToward method should be in Update().

This is the basic to move platform. However, we need it to move between 2 points. We have to set the turning point to the moving method.

I will use switch statement as a two-way switch to change the moving direction.
Create a new integer variable as switch ID and a new transform to set the next target, and use this ID in switch statement.

Then we need to set the target in MoveTowards method to _selectedTarget.

And we can create an if statement to switch the ID when platform is reached one of the target position.

All done! Back to editor and drag in point A & B into attached script and it should work!

Untouchable platform issue

Once you played, you might notice that Player could not stand on platform. It will just slipped away like this:

To fixed this issue, we need to make Player become the child of platform when standing on it.

Add a rigidbody and a box collider with setting as trigger. Adjust the trigger box collider slightly higher than platform.

Inside script, add two methods: OnTriggerEnter() & OnTriggerExit().

With these two detection, Player should be able to stand on platform now.

Extra: modular moving platform system

Once we finished the moving platform, we can create an empty object to store the platform and 2 target points as modular. And also drag the whole bundle into Project as a new prefab.

Now if we want to add a new moving platform in scene, simply drag it in from prefab and move the Point_B as target position.

--

--

--

A passionate gamer whose goal is to work in video game development.

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

Recommended from Medium

Crawl Product Details in Decathlon Pages Using Scrapy-Splash

Let’s Migrate Symfony Project to Kubernetes!

What Is a Thumbs.db File? How to Solve Problems Related to It?

C/C++ 常見試題

Introducing Ahoy! — a Helm GUI

Multitenancy in BDRSuite: Use Cases and Working

Statistics: Law of large numbers and Chebyshev’s inequality

Coding Mindset

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
S.J. Jason Liu

S.J. Jason Liu

A passionate gamer whose goal is to work in video game development.

More from Medium

Building a Custom Cinemachine Virtual Camera Zoom Feature with One Button in Unity

Building A Stealth Game — Helping Your Guards “See”

Day 105: Working with Animation Events in Unity

Adding FPS Functionality to the Player Controller in Unity 2021