What you need to know?

Here’s the list of things that you need to know before reading further:

What is Free Level Selector?

Free Layout (or Free Level Selector) is a layout that allows you to build level selection screen where you can freely distribute your level icons and drag them on the whole area. It can be used to create maps with level icons on it just like in games like Candy Crush or Jelly Splash.

You can see the demo here.

Initialization

In order to create free layout, initialize new scene as described in this tutorial. Please be sure to select Free as Screen Layout.

If you have your scene already initialized with a Mad Level Root, please select Tools → Mad Level Manager → Create Free Layout from the main menu.

Setup

New object called Free Layout should appear (Normally it can be found in the Hierarchy: Mad Level Manager / Camera 2D / Panel / Free Layout). Make sure that this new object is selected and take a look at its inspector:

As you can see it’s split to two sections.

Fundaments section

Here you can set most basic properties of the free layout.

  • Configuration – This is the Level Configuration that should be used to build this map. All levels of type Level will be represented as an icon in the given order.
  • Icon Template – Prefab or scene object of icon that should be instanced for each level.
  • Background Texture – A texture used for background.

Mechanics section

Here you can setup how free script will behave.

  • Look At Last Level – When level select screen is visited just after playing any Level, it will center to the icon of that level. You can also do it from the Layout API.
  • Handle Mobile ‘Back’ – Sets the behavior for back button on mobiles (e.g. Android). The options are:
    • Load Previous Level – Will load previous level from the Level Configuration from the current one. For instance if you will set Main Menu level right before Level Select level, pressing the back button will load the Main Menu.
    • Load Specified Level – Will load level of specified name (a new level name entry will appear).
  • Two Step Activation – Allows icons to be activated in 2-step manner. Usable if you want icon to pop-up when pressed the first time, and load a level when pressed the second time. Pressing elsewhere on the screen will cancel the activation process.
    • Disabled – Pressing or clicking on the icon first time will load the level immediately.
    • Only On Mobiles – On mobiles pressing the icon first time will invoke the focus event, second time will load the level.
    • Always – 2-step activation enabled on all devices.
More information about events and how to animate icons can be found here.

Example Usage

Now let’s icon put prefab icon2Prefab from Mad Level Manager/Examples/Prefabs to Icon Template field. Your Scene and Game views should be now displaying something like this:

Each time when you add new levels to your current level configurations, new icons will appear on the free layout. They will cascade near to 0,0 point of your scene, so you can easily find, and them move them to desired place.

Next let’s add the background. Locate the background texture in Mad Level Manager/Examples/Textures/Example2/free_bg.png and move it to Background Texture field:

And your Game and Scene views should now both look like this:

You can see that the background on the scene is a little too small. To test out the dragging ability let’s make it a lot bigger than it is now. To do so just select the background in Scene view, and resize it just as you would resize any other Unity object. For me the optimal x, y scale was 1.6, 2.2.

Positioning

Let’s now place our icons to the right places. You can select icons just by clicking on them, but there’s high risk that you would select sprites that lies underneath. Easier and safer way to select the icon is to use Hierarchy view:

Move your icons anywhere you like. My configuration looks like this:

Drag Area

There’s one more thing to setup before your level select screen will work. Have you noticed the red rectangle in screenshots above? This is the drag area, and it need to be setup too. Please select the Draggable object from the Hierarchy:

And look at the Inspector view. You should see the configuration of drag area and start position:

Now try to change Free Drag Area and see how your scene view is updated. Try to find out which values that will closely match bounds of your background. Hint: setup x and y first to set the rectangle in lower-left corner.

Testing it

Now you can hit the Play button and if you did everything right you should now be able to drag through the map, select levels and complete them. You can reset your progress any time using the Profile Tool.