Search Unity

Mad Level Manager - Level chooser and manager

Discussion in 'Assets and Asset Store' started by genail, Jul 13, 2013.

  1. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    We’ve released the 2.2.5 version!

    But this version is not introducing anything important against 2.2.4. We’ve added new Boogaloo font version (the old one is still there) and created a new documentation page about using Mad Level Manager from the Unity command line to build your project.

    Releasing of this version was necessary in order to release Loading Screens 1.1! Loading Screens is something that looks like Unity community needs, so we will be making it worth for a while :)

    Cheers!
    Piotr
     
  2. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    I tried to replace my sprite's icon with Atlas content and I still get the same result.
    I'm quite locked with MLM at the moment (I also updated Unity Beta to the last stable version (14) with the same result). Now that I had a taste of the uGUI in ETB I can't wait to get the same awesome stuff in MLM. When do you think we could expect a first beta ?
     
  3. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    I need to fix atlases support for fonts first and I've planed to do this today :) I will e-mail you with the fixed version.
    I cannot tell when the first beta will be available. Currently there are some things that I need to change/implement in MLM before that. Lately I am working even on the weekends ;-)

    I will let you know when the beta will be available!
     
  4. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hey IOZO!



    I will send it to you in a moment :)
     
  5. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    I just received it :) many thanks.
    I'm testing right away.
     
  6. eridani

    eridani

    Joined:
    Aug 30, 2012
    Posts:
    655
    I don't see a thread for the Mad Loading Screens asset so apologies if I simply couldn't find it...

    ...but could you explain how the process of how the progress bar slowly fills up while loading when using Unity Free?

    Thank you!
     
  7. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello!
    I've created the thread but I think I forgot to add a link on the asset store page, uh...

    It's really simple! Unity free do not allow to get loading progress and the loading procedure freezes the scene for few seconds. There's nothing you or I can do about it. What Loading Screens script is doing is loading the level before the bar starts to fill up. It's really good for a loading screens that have some information for the player like objectives or game hints. The level will be already loaded on the background, but the loading screen will fill its progress bar and only then it will switch to the actual level scene in a instant.

    And this fake loading is really good if you don't want to give a player the feeling that something has just frozen :)

    Please write if you have more questions!

    Cheers!
    Piotr
     
  8. eridani

    eridani

    Joined:
    Aug 30, 2012
    Posts:
    655
    So is this sequence correct:

    1. The loading scene freezes with the progress bar empty (could take a while)
    2. After some time, the real level loads, but the progress bar remains onscreen
    3. The gameplay is delayed for a bit while the progress bar "pretends" to suddenly fill up quickly
    4. When the progress bar is full, the real level commences

    I wonder if using a frozen empty progress bar makes the user less impatient than simply putting "Loading..." as a static loading screen, and then saving the time in Step 3.

    I wish you had an example for Unity free and a large "real level" that takes a long time to load. Anyways thank you
     
  9. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    I tested the version and it works well on my side. Thank you !!!
    I've got some annoying crashes when I was filling the atlas file with the sprites.
    The way to reproduce is to select any item in the template which is set with a single sprite and to switch to atlas.
    If you already have the atlas editor opened and you select a sprite from the atlas editor without setting the atlas prefabin the field, Unity crashes.

    To avoid the crash I needed to close the atlas editor, drag/drop the atlas prefab into the atlas field, click the sprite navigation button to open the atlas editor and select the right sprite.

    Also I got an error when building the game.
    In madtext.cs, I had to change :

    using UnityEditor;

    to

    #if UNITY_EDITOR
    using UnityEditor;
    #endif
     
  10. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Yep, that's right! Of course you can use Loading Screens without a progress bar and take advantage of its other features, but if you're good at scripting I would recommend to write it by yourself :)

    Hmm I will try maybe to prepare APK with angry bots tomorrow or the day after tomorrow, should be heavy enough!
     
  11. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    I'm sorry for the compilation error. This one happens very often :)

    About the crash, thank you for the reproduction steps! I will check a little later if this is my error or Unity bug.

    Cheers!
    Piotr
     
  12. eridani

    eridani

    Joined:
    Aug 30, 2012
    Posts:
    655
    Thanks for your explanations! I don't think I will buy it as I don't think such "fake loading" is worth it for myself personally as a user of Unity Free, but it looks like a useful asset for Unity Pro users. I do own your other products Mad Level Manager and Energy Bar Toolkit and am looking forward to their upcoming integration with the 4.6 UI. Keep up the great work!
     
  13. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Sure!
    If you're interested I can add you to the EBT 3.0.0 beta mailing list. I don't remember if I've added you already, so if you're interested just send me your invoice no. to support@madpixelmachine.com
     
  14. luizcarlosfx

    luizcarlosfx

    Joined:
    May 28, 2013
    Posts:
    15
    Does scene loading progress bar works on unity free? Since unity free does not have Application.LoadLevelAsync...
     
  15. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello There,

    Please read my conversation with eridani above :)
    Simply saying loading bar is faked to make a feeling that level is loading.

    I'm now thinking of implementing pre-fill feature on 1.2 version. It may work like that:
    - loading screen is showing
    - bar is filling to a half for example
    - the level is loading (in unity free it will freeze the loading)
    - when the level is loaded the bar will unfreeze and jump to 100% percent

    Cheers!
    Piotr
     
  16. misterjl

    misterjl

    Joined:
    Aug 16, 2013
    Posts:
    6
    When a level is in a locked state, is it possible for the icon to be invisible, and only after you unlock it it becomes visible?
     
  17. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello misterjl,

    Interesting question. I think it can, but it is a little tricky.
    1. Do not assign any sprite for an icon or a transparent sprite if icon requires to have a sprite.
    2. Create a child sprite for this icon, assign the icon sprite and set it to be visible when icon is unlocked.
    3. Remember to set this child sprite depth to be lower than other sprites.

    This should do it :) Please write if you will have any issues!

    Cheers!
    Piotr
     
  18. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    in a free layout is it possible to animate the changes from the last finished level to the next one (character moving from level n to level n+1, footsteps, or any other kind of animation).
     
  19. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    I some time need to use the 'synchronize' button but it's not always displayed.
    What I have to do when it happens is to create a new level configuration and synchronize it. I then switch back to my level configuration after the sync is done with the fake config.
     
  20. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    It's possible :) It requires some programming and it can be done using the Layout API. What you would need to do is to query last completed icon and last unlocked icon. You will get these icons objects, so you can access the position. Use iTween (iTween is included in the MLM package as MadiTween) to make a tween between these two icons. Please see the Layout API example on its page.

    Can you provide me reproduction steps of this issue?

    Cheers!
    Piotr
     
  21. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    excellent, I'll look at that thanks.

    Most of the time the button is not displayed. It is displayed only if I create a new config. The button disappears after the sync but never reappears.

    In case you don't remember I'm on Unity5 Beta 14
     
    Last edited: Dec 2, 2014
  22. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    Another usage question. I'm with a free layout config. I have a large map, included as a scrollable background in the free layout settings. I'd like to zoom on a it from a global view perspective toward the last unlocked levels. When I'm close enough I want the levels to be displayed, not before. Is that easy with the animation API. Can you give me some guidance ?

    thanks
     
    Last edited: Dec 2, 2014
  23. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Uhh.. the button is displayed only when the synchronization is needed. If it's invisible then everything is in sync :)

    Wow... I think this may be possible. Try accessing transform.localScale property of Draggable object. Based on this you can decide to go through the icons and enable/disable them at will. I'm not sure if it will be working as expected, but you can give a try :)

    There may be issues with free layout zooming in and out. If you will encounter any, please write!

    Cheers!
    Piotr
     
  24. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    Yes that's expected but .. it's not the way it behaves and that's my problem.
    Sometimes I make modification which would need a resync, but it's not detected and the button remains hidden.
    Is there away to force it to show up ?

    Can you clarify that ? Is there an event or anything I can use to trigger the launch of the animation which displays the levels when my animation's done ? Can I force MLM to stay at a given position of the scrollable background when it displays the levels ?
     
  25. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    That's why I need reproduction steps :) What changes are you doing that makes you believe that your configuration is invalid? Can you provide me a example where your build configuration scene setup is invalid to what Level Configuration from my tool shows you?

    Not directly. I think you need to hack into the code and most probably:
    1. Wait or certain property value like transform.localScale to be under or above certain value
    or
    2. modify the draggable code to give a notification when the animation is finished.

    In order to look at any position you can use the MadFreeDraggable.MoveToLocal() method. It is used by Layout API functions to look at icons, but you can provide any local position into it.
     
  26. IOZO

    IOZO

    Joined:
    Jun 26, 2010
    Posts:
    55
    not sure of what I do to get to this situation but for instance I can use some extensions in a level and decide later to remove it. when I still see the scenes used for the extension in the build list, I assume it went out of sync but the button is still inactive.

    The other way round is to add an extension to a level and it's not displayed until the next sync.

    I also reported in a previous post a case where the first level was not opening the game level but actually refresh the same scene.

    In all of these cases the button is not visible. However if I create a new config to get and switch to activate the button, I can then do the sync and see the a clean build scene + eliminate the issues

    OK I'll look into that later in my project and let you know how it goes. Might be useful for somebody else.

    also I wanted to report an issue with the Atlas Editor. For instance if you choose one icon of a level or the template open the Atlas Editor and you select an item from the Atlas Editor that works fine.
    Now if you leave the Atlas Editor window opened switch to another level and select a texture out of the opened Atlas Editor, Unity crashes. I need to close the Atlas Editor and reopen it each time I need to select something into it.
     
  27. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello IOZO,

    I'm sorry for my absence. Yesterday I went sick and I'm also not very well today, but I've managed to get to my PC :)

    That's actually how the sync is working. The additional scenes that do not exists in the level configuration may exists. This is in a case when you want to use different tool that adds additional scene to your build list. There's one exception though: If this additional scene will be a first scene on the list, MLM will yield about the need of synchronization.

    If you want to get rid of these scenes, just open the build configuration, select and remove all the scenes at once. Maybe I will add another button to Level Configuration about removing scenes that are not linked to any level?

    I cannot reproduce that issue. http://imgur.com/a/4J3h4

    Where? Can you tell me more about that one?

    Do you mean the atlas browser window? If yes I might just know what is wrong. Thanks for reporting this! :)

    Cheers!
    Piotr
     
  28. welly_59

    welly_59

    Joined:
    Apr 10, 2014
    Posts:
    22
    i have a 3d text that displays in the corner of level select screen, is it possible to have this text change when i slide right/left to next screen of levels? i wan to use it as a star counter only for the levels currently displayed on the screen.


    'text to change' will display total number of stars earned for levels currently on the screen. I am not using groups as i could not work it out properly. When you go right to next set of 3 levels i want that text to change to the number of stars unlocked for that set.

    any way to do this? or am i better off trying to get groups working?
     
  29. welly_59

    welly_59

    Joined:
    Apr 10, 2014
    Posts:
    22
    fixed it now. i created the 3d text as a child of the draggable object
     
  30. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello welly_59,

    Did you find out how to display currently visible levels star count? If not, I can provide you a code snipped, but not sooner than tomorrow, I will be going sleep in a while :)

    Cheers!
    Piotr
     
  31. welly_59

    welly_59

    Joined:
    Apr 10, 2014
    Posts:
    22
    my solution for visible stars was to attach a script with following snippet:

    int starsGained = new MadLevelQuery()
    .ForLevel("7", "8", "9")
    .SelectProperty("star_1", "star_2", "star_3")
    .CountEnabled();

    substituting the correct levels into ForLevel()
     
  32. welly_59

    welly_59

    Joined:
    Apr 10, 2014
    Posts:
    22
    How can I lock a level? I Have 3 levels per level select layout screen, I want level 4 to unlock on condition, not on completion of level 3
     
  33. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello,

    That's the one way of doing that. Well done! :)

    Currently lock/unlock conditions are very simple and are based on previous level completed state. If you don't want the fourth level to be unlocked, do not mark level 3 as completed. Yes, this is a workaround. I am currently working on more advanced unlocking conditions. These will be available with Mad Level Manager 2.5.0 :)

    Cheers!
    Piotr
     
  34. welly_59

    welly_59

    Joined:
    Apr 10, 2014
    Posts:
    22
    i did it another way, set grid layout setup method to manual, then click on icon for the preceding level and cleared the unlock on complete property
     
  35. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hah!
    That's the another way of doing that ;-)

    I was not recommending this option, because it will be deprecated starting from 2.5.0 as advanced unlocking conditions will go in.

    Cheers!
    Piotr
     
  36. shoni-wheeler

    shoni-wheeler

    Joined:
    Oct 25, 2014
    Posts:
    102
    Hi,
    Following your example in the manual for saving data.

    I have set this string "gold coin amount" as an argument in Level select.

    I have this code in a start event:
    Code (CSharp):
    1. if (!MadLevel.HasPrevious(MadLevel.Type.Level)) {
    2.             // this is first playable level, set the default values
    3.             goldcoin = 0;
    4.         } else {
    5.             // this is not first level, load values from the previous one
    6.             var prevLevelName = MadLevel.GetPreviousLevelName(MadLevel.Type.Level);
    7.        
    8.             goldcoin = MadLevelProfile.GetLevelInteger(MadLevel.prevLevelName, "gold coin amount");
    9.         }
    and the last line:
    Code (CSharp):
    1.  
    2.        
    3.             goldcoin = MadLevelProfile.GetLevelInteger(MadLevel.prevLevelName, "gold coin amount");
    4.        
    causes an error:

    error CS1503: Argument `#1' cannot convert `object' expression to type `string'

    Regards

    John
     
  37. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello John,
    Thank you for writing!

    You've made a mistake in your code. There's not MadLevel.prevLevelName field :) You most probably want to write:

    goldcoin = MadLevelProfile.GetLevelInteger(prevLevelName, "gold coin amount");

    Cheers!
    Piotr
     
  38. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    hello genail, can you tell me how to count the total star that user already got??
    it can be done using this version isn't? and i'm using playmaker as third party
     
  39. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello Keitaro,

    It is possible :) Please search for "query" action under Mad Level Manager group. It's fairly easy to use. Please read about queries to understand ranges and property counting.

    Cheers!
    Piotr
     
  40. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    oh so it's in query action, okay thank youuu :D
     
  41. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    You welcome :)
     
  42. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045

    Starting from this version we’re supporting Unity 5 which is now in the beta stage. Please remember that we cannot guarantee that everything will be working as expected, because we simply cannot guarantee that Unity developers won’t change something between Unity 5 beta releases. Still all bugs will be fixed as soon as possible! For more information please read the compatibility page.

    Here’s the changelog:

    New Features
    Improvements
    • Level Configuration: You can now select active level configuration using Ctrl + Alt + B shortcut
    • Level Configuration: Double clicking on a level will load its scene
    Bug Fixes
    • Atlases: Removing textures could throw an exception on some cases
    • Atlas Browser: Fixed Unity crash when the browser is kept open
    • Removed black border from Boogaloo font
    • MadFont were throwing exceptions on force white option
    • Levels could be skipped if any loading function were executed more than once on a single frame
    Where to get it?
    If you don’t own Mad Level Manager yet, you can buy it in the Unity Asset Store for $35. If you already own Mad Level Manager, then please follow these instructions:

    In your Unity editor, please open Asset Store window (CTRL + 9), click on the “downloaded” button, then “Update” next to Mad Level Manager item. The newest version will download and unpack automatically. You will be prompted to confirm which files should be unpacked. It’s highly recommended to unpack all available files.





    Trial Version
    There’s Mad Level Manager trial version available! Test it for 14 days and decide if it is suitable for you!

    Links
     
  43. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Speed optimizations and further Unity 5 fixes in the next release

    Hello,
    I'd like to share my current progress with you. The change that will be introduced in the next version is important to those that have great number of levels available on their level select screens or/and are planing to use Unity 5.

    Draw optimization: visibility check

    Mad Level Manager was not doing any visibility checks depending on how Unity engine is working. In some cases it was the reason of bad performance on mobile devices. In the next version I will introduce Hide Invisible Sprites option that will remove all sprites that Camera 2D is not seeing. It will be disabled by default for old projects and enabled for new scenes to not break your current work.

    This option will be available in the Panel object inspector:




    Unity 5 compatibility: Depth-Based render mode

    Unity 5 is breaking compatibility on how submeshes are rendered, so I needed to change my algorithms a little. The one way around this is using the atlases. There's also another way and I'm introducing it as Depth-Based render mode.

    It overrides all sprites Z position so sprites that should be rendered on the top are positioned closer to the camera. Using this method allows to use Mad Level Manager with Unity 5 without the need of switching to atlases. This option is disabled by default and will be enabled on new scenes and forced on Unity 5.




    Feel free to ask any questions! :)

    Cheers!
    Piotr
     
  44. Mi_Gr

    Mi_Gr

    Joined:
    Dec 5, 2013
    Posts:
    17
    Hi Piotr,
    great news, I'm excited what is coming! :)
    Do you also support uGUI in the next release? Or if not is it possible to test your beta, too?
    And, is it possible to arrange the icons in free mode in a list instead in a dragable panel or do something else and place the icons really free WITHOUT the dragable panel?
    Thanks in advance! :)
     
  45. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello Mi_Gr,

    Mad Level Manager with uGUI will be available in 3.0.0 version. It's not currently event at the beta stage, so I cannot send you anything yet. I have 2.3.0 and 2.5.0 to finish first. 2.3.0 will be released really soon, 2.5.0 will introduce advanced unlocking conditions and groups. Then I will be sending 3.0.0 beta to my clients.

    I see that you've sent me an e-mail with beta request. Is that you? I will send you EBT Beta right away and I will add you to MLM beta mailing list, so you will receive the beta as soon as it will be available!

    Cheers!
    Piotr
     
  46. Mi_Gr

    Mi_Gr

    Joined:
    Dec 5, 2013
    Posts:
    17
    Hi Piotr,
    I've seen your mails with your EBT beta! :)
    Great, thanks a lot for your fast response!

    Still one question, sorry! :) Is there a way to arrange the icons (in free mode) without the dragable panel? So I would do that in a "scrollable table view" (with ngui or uGUI) like a list?

    Thanks! :)
    Michael
     
  47. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Oh, I'm sorry, I've missed that one!
    Draggable object must be defined, but I think that you can hack where icons really are (they may be away from the Draggable object). Try it!

    If you will have any issues, please write to me to support@madpixelmachine.com and please show me what exactly are you trying to achieve :)

    Cheers!
    Piotr
     
  48. levan1

    levan1

    Joined:
    Nov 16, 2013
    Posts:
    14
    HI.
    i need for a time of 5 seconds before entering new scene, how to make this..

    Code (CSharp):
    1.     void OnTriggerEnter(Collider other)
    2.     {
    3.         if(other.gameObject.tag == ("Player"))
    4.         {
    5.             // Action on trigger - Dactive the active trigger!
    6.             audio.PlayOneShot (endLevel);
    7.             //Application.LoadLevel("Level.Select");
    8.             MadLevelProfile.SetCompleted(MadLevel.currentLevelName, true);
    9.             MadLevelManager.MadLevel.LoadLevelByName("Level Select");
    10.         }
    11.     }
     
  49. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello levan1,
    It seems pretty simple :) Please try chaging the OnTriggerEnter to coroutine:

    Code (CSharp):
    1. IEnumerator OnTriggerEnter(Collider other)
    2.     {
    3.         if(other.gameObject.tag == ("Player"))
    4.         {
    5.             // Action on trigger - Dactive the active trigger!
    6.             audio.PlayOneShot (endLevel);
    7.             //Application.LoadLevel("Level.Select");
    8.             MadLevelProfile.SetCompleted(MadLevel.currentLevelName, true);
    9.  
    10.             yield return new WaitForSeconds(5);
    11.             MadLevelManager.MadLevel.LoadLevelByName("Level Select");
    12.         }
    13.     }
    P.S. I am away spending my time with my family. Please forgive me if I will reply with a delay.

    Cheers!
    Piotr
     
  50. levan1

    levan1

    Joined:
    Nov 16, 2013
    Posts:
    14
    Thank you. Have a nice time.