Search Unity

Platformer PRO - Ledge Climbing, 360 Loops, Ropes, and Much More ...

Discussion in 'Assets and Asset Store' started by JohnnyA, Aug 27, 2015.

  1. Bhanshee00

    Bhanshee00

    Joined:
    Jan 2, 2014
    Posts:
    35
    A "MAKE GAME FOR YOU" button would be handy... :D
     
  2. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
  3. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
  4. nproject

    nproject

    Joined:
    Jan 16, 2015
    Posts:
    68
  5. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Yes, theres an interface you can implement to support any input but better yet ... Rewired is supported out of the box.

    I know a few customers are using Dialog System and at least one using Inventory Pro, but I haven't used either product myself. I don't imagine it would be too hard to integrate and I'd be happy to help you do so, but they aren't officialy supported.
     
  6. superwendel

    superwendel

    Joined:
    Jun 18, 2013
    Posts:
    105
    I'm using both Dialogue System and Inventory Pro in Platformer Pro so I'd be happy to answer any questions with either one from a user's perspective. I'm not the strongest programmer and had both working in a few hours.
     
  7. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
  8. nproject

    nproject

    Joined:
    Jan 16, 2015
    Posts:
    68
  9. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Some new features coming in the next version:

     
    superwendel, abatcat and magique like this.
  10. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Hello! Is there a built-in way to make enemy projectiles instantiate on a delay?
    Thanks!
     
  11. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Projectile Delay set on the attack data.
     
  12. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    I don't see a projectile delay on the Simple Shoot and the See and Shoot. Is there a different enemy attack script I should use for that? I set my enemy up like the shooting enemies in Command Bro scene. I have edited the code on the Simple Shoot script to add a delay but want to avoid editing scripts as much as possible to make it easier to upgrade when there are updates.
     
  13. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Oh sorry didn't see 'enemy' in what you asked.

    Instead of editing its probably better to extend the class with your own variation.
     
    drewradley likes this.
  14. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    No problem. I'm sure you;re busy with updates. :)

    Now for my next question: I'm trying to make it so the player can't wall jump until the player is sliding down the wall (.ie. have the wall slide animation be playing). I'm using the 2.5 scene and he sort of chest bumps the wall and turns around. What's the best way to handle this?

    Also, I'm trying to make a spring board using a flag pole and am having trouble getting the bounce animation on the flag pole to sync up with the player moving down on it and springing up. Like a diving board effect.
    edit: I more or less solved this by writing a simple script that tracked the movement of the end tip of the pole and moved the platform there. With a little IK so the feet get stuck to the pole (2.5d) it will look sweet.

    Thanks!

    p.s. I am having a lot of fun with your kit!
     
    Last edited: Sep 29, 2016
  15. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Hey @drewradley, its better if you send support requests, this way I can track stuff and get notifications if I take too long to reply :)

    For the wall movement stuff, it really depends on which wall movement you are using. In the Hero samples wall jump its kind of the opposite to what you want (it has a condition and will only jump if moving faster (upwards)).

    So to reverse that condition you could just change the one line that says:
    Code (csharp):
    1.  
    2. if (character.Velocity.y > minSpeedForWallJump && CheckControls())
    3.  
    And reverse the operator: > becomes <

    Or if you want to write an extension so it doesn't break upgrades:

    Code (csharp):
    1.  
    2. #if UNITY_EDITOR
    3. using UnityEditor;
    4. #endif
    5. using UnityEngine;
    6. using System.Collections;
    7. using System.Collections.Generic;
    8. using System.Linq;
    9.  
    10.  
    11. namespace PlatformerPro
    12. {
    13.     /// <summary>
    14.     /// A wall movement class that lets you jump away from a wall only when sliding down.
    15.     /// </summary>
    16.     public class WallMovement_WallJump_JumpWhenSliding: WallMovement_WallJump
    17.     {
    18.      
    19.         #region constants
    20.      
    21.         /// <summary>
    22.         /// Human readable name.
    23.         /// </summary>
    24.         private const string Name = "Wall Jump/Standard (Jump on Slide)";
    25.      
    26.         /// <summary>
    27.         /// Human readable description.
    28.         /// </summary>
    29.         private const string Description = "A wall movement that allows you to jump away from a wall with various controls, and requires you to be moving downwards to jump. " +
    30.             "When you jump away you can only move in the opposite direction of wall until you start falling.";
    31.      
    32.         /// <summary>
    33.         /// Static movement info used by the editor.
    34.         /// </summary>
    35.         new public static MovementInfo Info
    36.         {
    37.             get
    38.             {
    39.                 return new MovementInfo(Name, Description);
    40.             }
    41.         }
    42.  
    43.         #endregion
    44.      
    45.  
    46.      
    47.         #region public methods
    48.  
    49.         /// <summary>
    50.         /// Moves the character.
    51.         /// </summary>
    52.         override public void DoMove()
    53.         {
    54.             if (movingAwayFromWall || character.CurrentWall == null)
    55.             {
    56.                 // Do air movement
    57.                 character.DefaultAirMovement.DoOverridenMove (true, true, (float) -cachedWallDirection, character.Input.RunButton);
    58.  
    59.                 // Check for the end of the wall jump
    60.                 if (character.Grounded || character.Velocity.y <= speedWhereWallJumpEnds)
    61.                 {
    62.                     movingAwayFromWall = false;
    63.                 }
    64.             }
    65.             else
    66.             {
    67.                 // Check for Jump - THIS IS THE LINE OF CODE THAT CHANGED
    68.                 if (character.Velocity.y < minSpeedForWallJump && CheckControls())
    69.                 {
    70.                     character.DefaultAirMovement.DoOverridenJump(jumpHeight, 1);
    71.                     movingAwayFromWall = true;
    72.                 }
    73.  
    74.                 // Gravity
    75.                 if (character.Velocity.y > 0)
    76.                 {
    77.                     // Moving up - Apply normal gravity
    78.                     character.AddVelocity(0, TimeManager.FrameTime * character.DefaultGravity, false);
    79.                 }
    80.                 else if (character.Velocity.y > clingTargetSpeed)
    81.                 {
    82.  
    83.                     // Moving down - Apply reduced gravity
    84.                     character.AddVelocity(0, TimeManager.FrameTime * clingGravity, false);
    85.                     if (character.Velocity.y < clingTargetSpeed) character.SetVelocityY(clingTargetSpeed);
    86.                 }
    87.                 else if (character.Velocity.y < clingTargetSpeed)
    88.                 {
    89.                     // Moving too fast  - Apply 2 times -gravity
    90.                     // TODO This could become a variable too
    91.                     character.AddVelocity(0, TimeManager.FrameTime * 2 * -clingGravity, false);
    92.                     if (character.Velocity.y > clingTargetSpeed) character.SetVelocityY(clingTargetSpeed);
    93.                 }
    94.  
    95.                 // Translate
    96.                 character.Translate(0, character.Velocity.y * TimeManager.FrameTime, true);
    97.             }
    98.         }
    99.      
    100.         #endregion
    101.  
    102.  
    103. #if UNITY_EDITOR
    104.      
    105.         #region draw inspector
    106.      
    107.         /// <summary>
    108.         /// Draws the inspector.
    109.         /// </summary>
    110.         new public static MovementVariable[] DrawInspector(MovementVariable[] movementData, ref bool showDetails, Character target)
    111.         {
    112.             return WallMovement_WallJump.DrawInspector(movementData, ref showDetails, target);
    113.         }
    114.      
    115.         #endregion
    116.      
    117. #endif
    118.      
    119.     }
    120. }
    121.  
    Note this is checking for sliding down not the animation state. If you wanted to check the animation state the concept is similar but you would have to grab a reference to the animator and check the name of the currently playing animation. Something like:

    Code (csharp):
    1.  
    2.        protected Animator myAnimator;
    3.  
    4.         override public void DoMove() {
    5.  
    6. /// ... REST OF CODE
    7.  
    8.            bool slideStarted = false;
    9.            // Check if animation is finished
    10.             AnimatorStateInfo info = myAnimator.GetCurrentAnimatorStateInfo(0);
    11.             if (info.IsName(AnimationState.WALL_SLIDE.AsString()))
    12.             {
    13.                 if( info.normalizedTime >= 0.25f) // Change constant depending on how far you want to get in to animation
    14.                 {
    15.                        slideStarted= true;
    16.                 }
    17.             }
    18.            // Check for Jump
    19.            if (slideStarted && CheckControls())
    20.      
    21. // ... REST OF CODE
    22.  
    23.  
    (Assumes you initialised Animation myAnimator during init or assign it in inspector if you prefer)

    Code (csharp):
    1.  
    2. myAnimator = GetComponentInChildren<Animator> ();
    3.  
    Obviously thats just a sketch, if you are stuck feel free to send a sample project to support email and I'll set it up for you.
     
    drewradley likes this.
  16. Rick-Killinkelley

    Rick-Killinkelley

    Joined:
    Oct 11, 2016
    Posts:
    4
    Great seeing all the Progress and sharing your hard work on helping us to accomplish our game goals using Platformer Pro. I am eagerly waiting to see the development of a newer Climbing script that I have been having trouble with. Specifically the Vine or fence movement that presently seems to get confused when I use horizontal instead of vertical movements listed in the 4 way climb scripts.

    Otherwise I have a great start on a game I have had in mind for a long time, and appreciate you getting back to me very quickly with suggestion via the support ticket.

    On your forum boards at platformerpro.boards.net which I highly recommend everyone to go to see the latest information and just a discussion of what you are trying to achieve is a great place to kick around ideas and you may even pick up a solution or two!
     
  17. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Cheers @Rick-Killinkelley I've sent you some updated scripts and am working on a sample :)
     
  18. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Also here current update list for next version:

    Code (csharp):
    1.  
    2.  
    3. 1.2.0
    4.  
    5. * CommandBro sample now supports multiple, switchable weapons with example of flame thrower and shotgun.
    6.  
    7. * Updates for Unity 5.4.x.
    8.  
    9. * Block movement. Press a button to block attacks with variations for high/low/etc.
    10.  
    11. * New ActivationGroup which allow you to make all kinds of cool stuff such as mutli-state puzzles, weapon systems (see above), etc.
    12.  
    13. * Added an option to make additional conditions on platforms either apply or ignore collisions (previously it always applied when condition met).
    14.  
    15. * New and improved swimming movement with breath.
    16.  
    17. * Small updates to the 2-player CommandBro sample variation.
    18.  
    19. * Added simple landing movement to make it easier to play landing states. Also added a variation which causes damage.
    20.  
    21. * Added a movement for climbing across ceilings (horizontally). You can also use for ropes and similar by setting the climb up value to false and using a layer that is not in the geometry layer.
    22.  
    23.  
     
    superwendel and drewradley like this.
  19. Charlie_T

    Charlie_T

    Joined:
    Feb 13, 2015
    Posts:
    58

    Sound great.

    May I know when it will release?

    Thanks
     
  20. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Hi Charlie,

    there are some issues with editor in 5.4 which I need to address, hoping to do that this week. So expectation is to submit in the next week, maybe two.

    - John A
     
  21. rfuhrer

    rfuhrer

    Joined:
    Oct 2, 2015
    Posts:
    52
    Wow! Really nice progress. Swimming looks very good. And the activation groupe is very welcome addition as well.
     
  22. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Seems there are long delays in Unity approvals at the moment, not sure how long it will be until its on the store :s

    (Its been in 'Pending Review' for about 5 days now.)
     
  23. superwendel

    superwendel

    Joined:
    Jun 18, 2013
    Posts:
    105
    While we wait, can we get a sneak peak at the release notes?
     
  24. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Not much different to those above, but sure:

    Code (csharp):
    1.  
    2. v1.2.0
    3.  
    4. * CommandBro sample now supports multiple, switchable weapons with example of flame thrower and shotgun.
    5.  
    6. * New and improved swimming movement with breath.
    7.  
    8. * Editor Updates for Unity 5.4.x ... as a side effect we now have much more undo support :)
    9.  
    10. * Block movement. Press a button to block attacks with variations for high/low/etc.
    11.  
    12. * New ActivationGroup which allow you to make all kinds of cool stuff such as mutli-state puzzles, weapon systems (see above), etc.
    13.  
    14. * Added an option to make additional conditions on platforms either apply or ignore collisions (previously it always applied when condition met).
    15.  
    16. * Small updates to the 2-player CommandBro sample variation.
    17.  
    18. * Added simple landing movement to make it easier to play landing states. Also added a variation which causes damage.
    19.  
    20. * Added a movement for climbing across ceilings (horizontally). You can also use for ropes and similar by setting the climb up value to false and using a layer that is not in the geometry layer.
    21.  
    22. * FIX: Combo attacks now properly respect the button input window. UPGRADE NOTE: you maay need to reviews your combo settings.
    23.  
    24. * FIX: Fixed float movement so it works again.
    25.  
     
  25. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
  26. rfuhrer

    rfuhrer

    Joined:
    Oct 2, 2015
    Posts:
    52
    Cool, already did the update. Will look at a few new things tomorrow
     
  27. rfuhrer

    rfuhrer

    Joined:
    Oct 2, 2015
    Posts:
    52
    1. * New ActivationGroup which allow you to make all kinds of cool stuff such as mutli-state puzzles, weapon systems (see above), etc.
    2. * Added an option to make additional conditions on platforms either apply or ignore collisions (previously it always applied when condition met).
    Are there examples for those two features somewhere? Sounds interesting.

    I have just tested blocking. Works flawless, altough I did not unterstand why ther is the option for Back and Front. Can't the collider not just be placed accordingly?
     
  28. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    1. In the platform how to samples theres an example where you need to pull three levers before door opens.

    2. No example, but add an additional condition to anything with a Platform on it. Colliders will be active only when condition is met. Now untick the box ''conditionsEnableCollisions" the collider will be active only when the condition is NOT met.

    Although you could duplicate the setup with multiple hurtboxes, most attacks/hazards wont register more than once against the same character (at least not in same frame). If you had multiple hit boxes for the different directions and a hitbox overlaps two of them it would be random which one gets triggered. Hence FRONT, FRONT_NOT_LOW, etc.

    BACK is probably not that useful but given its one line of code there didn't seem to be any reason not to do it.

    - John A
     
  29. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    New video just highlighting some of the best things added since v.1.1 (full screen it, doesn't look great at small size):


    Now for 1.2.1 :)
     
    magique and superwendel like this.
  30. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I have some questions about Platformer Pro modularity. I've had this asset for a while, but I haven't really gotten deep into it yet so I'm not sure how easy it is to pick and choose what elements I want and what elements I don't want. For example, I'm actually building a small game that is less of a platformer and more of a maze game (e.g. Pac-man, Berzerk, Wizard of Wor, etc.). So, I want to use various elements of Platformer Pro such as the scrolling camera, pickups, triggers, etc. But I don't want to use the player controller or enemy AI because they are dependent upon platform mechanics, jumping, falling, etc. So, I'm wondering if elements such as scrolling camera, pickups, triggers, etc. can be used independent of the player and AI controllers? Or are they coupled too tightly?
     
  31. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    The player and movement mechanics are the core of the system and most of the modularity is in here. i.e. modular in the sense that you can easily expand and extend Character not in the sense that you can stop using the Character.

    Almost everything is coupled to PlatformerPro.Character, although it wouldn't be too too much effort to pull this out for some items.

    The event system can be handy for designers if the rest of your game uses C# event (it used to be a standalone product). But 90% of the event actions are around Character. I can liekly find the old asset code (with no connection to Character) if you want send a support request.

    The camera system is probably usable with a little tweaking (changing target from a Character to a GameObject), but its going to pale in comparison to a purpose built asset like Pro Camera 2D.

    Some triggers are fairly tightly tied to Characters (i.e. proximity trigger). Others wont make sense (Platform Trigger), so its probably easier to use Unity triggers with a few custom updates to match your specific games mechanics.

    Overall, with a few exceptions noted above, I'd advise against this. Its probably more beneficial to use the code as a reference ("hrmm how did PPro do one way triggers... can I reuse that code/idea?").


    PS You think there's much interest for a top down retro style action game kit? Is there much out there?
     
  32. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks for the tip. I see Pro Camera 2D is on sale right now. I will probably pick it up for this project. And I'll save Platformer Pro for other projects better suited to it.

    I don't know. I have several games of that style that I'd like to make, but I have no idea who else might be interested.
     
  33. Mike_011972

    Mike_011972

    Joined:
    Jun 8, 2009
    Posts:
    97
    I would be interested in a top down maze kit.
     
  34. abatcat

    abatcat

    Joined:
    Feb 8, 2015
    Posts:
    70
    Any news on the 2d pathfinding system?
     
  35. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Howdy,

    haven't had much momentum on that as no one has asked about it for quite some time (minimap is the next thing .. amost ready). With holidays coming up I will get a more dev time, so there *might* be some progress, but no guarantees as there are a hundred other things on my list too.

    - John A
     
  36. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    abatcat likes this.
  37. abatcat

    abatcat

    Joined:
    Feb 8, 2015
    Posts:
    70
    What plans do you have for Platformer PRO 2.0 , I haven't noticed you mentioning it before :D
     
  38. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    There'a poll on Platformer Pro forums. Minimap is the biggest update, enemy update is coming but probably wont make 2.0. A few other things should make it in (flesh out samples to include more examples of power-ups/stats/saving/loading/etc).
     
  39. AMO_Noot

    AMO_Noot

    Joined:
    Aug 14, 2012
    Posts:
    433
    Fantastic; I'm ecstatic about that Minimap update. Was in the process of writing my own and hopefully I can scrap it and use yours instead!
     
    Last edited: Jan 15, 2017
  40. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Thought this was pretty neat:

     
    Mike_011972 and AMO_Noot like this.
  41. rfuhrer

    rfuhrer

    Joined:
    Oct 2, 2015
    Posts:
    52
    Cool update, altough maybe a bit specific.
     
  42. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Oh its not an update for kit, just an experiment showing what can be done.

    (You can get the sample on request if you want it ;) )
     
  43. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    137
    Had PPro for a week and after a year of searching and experimenting I think I finally found what I needed on the asset store. I may yet find something else that manages to include such a vast array of useful features (2d and 2.5d, character controller development, mecanim samples, ropes, platforms, swimming, ledge climbing, there's so much more I can't tell you simply because I haven't done it yet), but for now this is precisely what I was after.

    The dev, Johnny, is a total pro. He never seems to decline requests for assistance and typically provides service above and beyond the call. The app appears to be developin well beyond its current version and I wish the dev the best of success with it.
     
  44. serkanos

    serkanos

    Joined:
    Jan 12, 2013
    Posts:
    28
    Hi. How can I do like this ledge climb jump? I want to use jump button for climb. ezgif-1-7a5143938b.gif
     
  45. rfuhrer

    rfuhrer

    Joined:
    Oct 2, 2015
    Posts:
    52
    @serkanos
    I would say this is just a matter of animation and settings but PPro does support ledge grab hang and pull. So its up to you how the animation for pull does look like.
     
  46. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I'm finally getting around to using Platformer Pro for a project and I just wanted to say thank you for the great job you've done on this asset. At first I was struggling to figure out how to get the input to work on the Wii U and then I found the Multiplatform input prefab with InputEnabler that lets me select Wii U as the console I'm on. I was pleasantly surprised to see Wii U actually in the list and very happy that it worked.
     
  47. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    :) have fun
     
  48. Frax228

    Frax228

    Joined:
    Jul 19, 2016
    Posts:
    48
    any tutorial how to create 2.5d enemies&
     
  49. Nateply

    Nateply

    Joined:
    May 20, 2014
    Posts:
    46
    @JohnnyA Is the 2.5D Stealth scene still available to download separately from somewhere? It was there when I last used Platformer Pro, but I see that you removed it in the 1.2.1 update (and I upgraded without backing up the prior version). I'm wanting to try a 2.5D style and would like a good example to see how it's put together (edit: visually, vs the Hero25D scene which looks exactly like a 2D platformer visually).
     
    Last edited: Oct 15, 2017
  50. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    I can probably rustle it up form my archives, send me a support ticket including your asset store number.

    Really the only difference is the camera though :)