Search Unity

[RELEASED] TopDown Engine by More Mountains [new v3.0 : damage types, damage resistance, and more!]

Discussion in 'Assets and Asset Store' started by reuno, Oct 9, 2018.

  1. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Muppo > Yeah the manifest thing is here to stay, at least until Unity provides a way to specify what dependencies an asset uses.
     
  2. Muppo

    Muppo

    Joined:
    Sep 28, 2016
    Posts:
    242
    It's easy pie in comparation with the old way, don't worry.
    Already tested some of the news, rotating Koala looks funny and useful!

    Still thinking Loft3D character weapon keep horizontal when he does the roll movement but, besides that, it's great as starting point (love the explosions on EVERY forniture)
     
  3. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Muppo > Yeah the roll thing is just an animation tweak. These are placeholders, meant to be replaced, I prefer focusing on things that provide actual value :) Glad you like the explosions!
     
  4. nhancaosi

    nhancaosi

    Joined:
    Apr 29, 2018
    Posts:
    7
    What happened to the multiplayer scene?
     
    hsshin87 likes this.
  5. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @nhancaosi > Nothing happened to it. What do you mean exactly?
     
  6. SpyrosUn

    SpyrosUn

    Joined:
    Nov 20, 2016
    Posts:
    144
    Hi there, are there any plans to add crafting and some sort of a map system ? Thanks !
     
  7. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @SpyrosUn > Crafting is not planned (it really isn't a core pillar of top down action games, it wouldn't fit most games made with the engine). Map is on the todo list though.
     
  8. bluetidepro

    bluetidepro

    Joined:
    Feb 18, 2015
    Posts:
    2
    Sorry if this has been posted or asked, but I just purchased the engine. I'm having some trouble getting it installed. I made a fresh project, and imported it, and copied the manifest all like the instructions say. But I still get 2 errors after all that:

    An error occurred while resolving packages:
    Project has invalid dependencies:
    com.unity.package-manager-ui: Package [com.unity.package-manager-ui@2.1.2] cannot be found
    com.unity.timeline: Package [com.unity.timeline@1.0.0] cannot be found
    A re-import of the project may be required to fix the issue or a manual modification of blah/Packages/manifest.json file.


    Library/PackageCache/com.unity.cinemachine@2.3.3/Runtime/Behaviours/CinemachineStoryboard.cs(68,32): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'UnityEngine' (are you missing an assembly reference?)


    Do you know how to fix that? From digging around, I can't seem to find any threads about this. But the search on unity forums is also terrible.

    For reference, I'm using Unity version 2019.3.0a7
     
  9. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @bluetidepro > You'll probably want to steer clear from an alpha version of Unity, especially if you're new to it, otherwise you're bound to run into problems like these. I'd recommend using the latest stable version of Unity instead (2019.1).
     
  10. bluetidepro

    bluetidepro

    Joined:
    Feb 18, 2015
    Posts:
    2
    Oh okay! Great to know. That makes complete sense. Thanks! I'll do that.

    Also, @reuno, do you all use a Discord or Slack for support/forums/chat/etc? Or is it all done here? The search here on unity doesn't seem to work that well. Would be cool to maybe all be in like a Discord server or somewhere better to chat, get help, talk to the community of devs using the plugin, etc. Just an idea! :)
     
  11. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @bluetidepro > Please use the support form if you need support. There's also an unofficial More Mountains discord if you prefer.
     
  12. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    Hey, there's an unofficial (meaning I'm not the one managing it) More Mountains discord server at https://discord.gg/nrbxdfk. It's a great community full of nice people using the Corgi Engine, TopDown Engine and/or other assets of mine. Don't hesitate to join and share your stuff there!
     
    Muppo likes this.
  13. ashe1992

    ashe1992

    Joined:
    Dec 27, 2016
    Posts:
    1
    i don't know how see the character through the wall or her shape. is it even possible?
     
  14. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @ashe1992 > I'm not sure I understand the question. What exactly do you mean?
     
  15. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @unity_mGHOEKkT0Roqyg > First of all, please use the support form for support questions.
    And if you simply look at the error you're getting you'll probably get the answer to your question, which, very likely, is that you didn't add your new scene to the build settings, but without any info is just a guess.
     
  16. unity_mGHOEKkT0Roqyg

    unity_mGHOEKkT0Roqyg

    Joined:
    Jun 29, 2019
    Posts:
    1
    Sorry, it's my first time on the forum

    Thank you very much for the tips, it works !
    Have a nice day
     
    reuno likes this.
  17. Dougomite

    Dougomite

    Joined:
    Jul 15, 2011
    Posts:
    58
    I wanted my score amount to do the same type of 'Bumps' as the MMProgressBar so I copied that same logic for when a text object is updated. Thought I'd share.


    Code (CSharp):
    1.  
    2. using MoreMountains.Tools;
    3. using System.Collections;
    4. using UnityEngine;
    5. using UnityEngine.UI;
    6.  
    7. public class ProgressText : MonoBehaviour
    8. {
    9.     public Text textObject;
    10.  
    11.     [Header("Bump")]
    12.     /// whether or not the bar should "bump" when changing value
    13.     public bool BumpScaleOnChange = true;
    14.     /// the duration of the bump animation
    15.     public float BumpDuration = 0.2f;
    16.     /// whether or not the bar should flash when bumping
    17.     public bool ChangeColorWhenBumping = true;
    18.     /// the color to apply to the bar when bumping
    19.     public Color BumpColor = Color.white;
    20.     /// the curve to map the bump animation on
    21.     public AnimationCurve BumpAnimationCurve = AnimationCurve.Linear(0f, 1f, 1f, 1f);
    22.     /// the curve to map the bump animation color animation on
    23.     public AnimationCurve BumpColorAnimationCurve = AnimationCurve.Linear(0f, 0f, 1f, 0f);
    24.     /// whether or not the bar is bumping right now
    25.     public bool Bumping { get; protected set; }
    26.  
    27.     [InspectorButton("Bump")]
    28.     public bool TestBumpButton;
    29.  
    30.     protected Vector3 _targetLocalScale = Vector3.one;
    31.     protected bool _bump = false;
    32.     protected Color _initialColor;
    33.     protected Vector3 _initialScale;
    34.     protected Vector3 _newScale;
    35.    
    36.     protected bool _initialized;
    37.  
    38.     public string text
    39.     {
    40.         get { return textObject.text; }
    41.  
    42.         set
    43.         {
    44.             textObject.text = value;
    45.             Bump();
    46.         }
    47.     }
    48.  
    49.     /// <summary>
    50.     /// On start we store our image component
    51.     /// </summary>
    52.     protected virtual void Start()
    53.     {
    54.         _initialScale = this.transform.localScale;
    55.         _initialized = true;
    56.  
    57.         if (textObject != null)
    58.         {
    59.             _initialColor = textObject.color;
    60.         }
    61.     }
    62.  
    63.     protected void BumpOnValueChanged()
    64.     {
    65.         Bump();
    66.     }
    67.  
    68.     /// <summary>
    69.     /// Triggers a camera bump
    70.     /// </summary>
    71.     public virtual void Bump()
    72.     {
    73.         if (!BumpScaleOnChange || !_initialized)
    74.         {
    75.             return;
    76.         }
    77.         if (this.gameObject.activeInHierarchy)
    78.         {
    79.             StartCoroutine(BumpCoroutine());
    80.         }
    81.     }
    82.  
    83.     /// <summary>
    84.     /// A coroutine that (usually quickly) changes the scale of the bar
    85.     /// </summary>
    86.     /// <returns>The coroutine.</returns>
    87.     protected virtual IEnumerator BumpCoroutine()
    88.     {
    89.         float journey = 0f;
    90.         Bumping = true;
    91.        
    92.  
    93.         while (journey <= BumpDuration)
    94.         {
    95.             journey = journey + Time.deltaTime;
    96.             float percent = Mathf.Clamp01(journey / BumpDuration);
    97.             float curvePercent = BumpAnimationCurve.Evaluate(percent);
    98.             float colorCurvePercent = BumpColorAnimationCurve.Evaluate(percent);
    99.             this.transform.localScale = curvePercent * _initialScale;
    100.  
    101.             if (ChangeColorWhenBumping && (textObject != null))
    102.             {
    103.                 textObject.color = Color.Lerp(_initialColor, BumpColor, colorCurvePercent);
    104.             }
    105.  
    106.             yield return null;
    107.         }
    108.         textObject.color = _initialColor;
    109.         Bumping = false;
    110.         yield return null;
    111.  
    112.     }
    113. }
    114.  
    115.  
    116.  
     
    Last edited: Jul 8, 2019
  18. Jexreffy

    Jexreffy

    Joined:
    Jan 21, 2012
    Posts:
    22
    Enjoying the TopDown engine as I've been using it to make my own Zelda Clone. One question I have in the InventoryEngine is that it seems with the separate Inventories when you equip an item, it gets removed from the Main Inventory and then added to the Equipment Inventory. What I'm wanting to do is something like the Zelda games where when you want to use an Item, you "Select" it, it still shows in your Inventory, and when you want to use something else, you "Select" a different Item, as well as every item having a defined slot rather than being able to sort through them. Is that something I can do with the Inventory Engine, and how would I go about doing that?
     
  19. AKAGT17

    AKAGT17

    Joined:
    Sep 8, 2014
    Posts:
    40
    Hi @reuno since I am working on the 3D side of the game engine I was wondering if the new updates you have added eg: pushing an object to activate a door which are shown in your 2D examples work for 3D? Also I am wondering if you would be able to add any future new updates
    on the 3D examples as oppose to biasing to the 2D examples? THANKSSS
     
  20. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Jexreffy > That's possible but would require some implementation on your side, it's not out of the box. Basically in the Inventory Engine an item can't be in two places at once, it's a data structure, it's always unique. But that doesn't mean you can't have a visual representation of it where it's duplicated, that's up to you.
    @AKAGT17 > Unless explicitely mentioned otherwise, all features work in both spaces. So yes, pushing an object works in 3D as well as in 2D.
     
    IlyaKo likes this.
  21. yigh

    yigh

    Joined:
    Jun 26, 2019
    Posts:
    2
    I'm rather new to this, so this might be a basic question :

    For title scene and level selection scene, my Scene view shows all the 3d game objects, but I cannot find the 2d / UI camera game objects.

    For example, when I select the play button from the hierarchy and focus on it in scene view, all I see is empty space.

    Is there something I need to configure for my scene view?

    I wanted to edit the level selection UI or main page UI while in game play mode so I can get some quick visual feedback.
     
  22. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @yigh > No, there's nothing special to configure, it's standard Unity UI.
    Usually all you have to do is set your view to 2D (if you want to), and double click on any of the UI items. Unity will zoom to meet them. Maybe you've hidden the UI layer, that's the only thing I can think of that could cause this. Make sure that's not the case.
     
  23. VFXROB

    VFXROB

    Joined:
    May 4, 2015
    Posts:
    27
    Hi Reuno sorry i'm probably going to a bit of a bother, i'm looking to give my character a default melee attack when no weapons are equipped, ive copied the grassland melee animation modified the character with the inventory, is there a way when i unequipped the item it can revert back to the initial weapon?

    Also the inventory melee weapons i picked up doesn't seem to be doing any damage?

    Below is a video of my example, thanks in advance!
     
  24. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @VFXROB > That's not a behaviour that is built-in right now, but you could have a new script listen to inventory events and equip the "default" weapon when unequipping one.
     
  25. keepthachange

    keepthachange

    Joined:
    Oct 15, 2014
    Posts:
    87
    I have been looking over the docs and animation. But could one let's say create different animations for each weapon if one wanted to.
     
  26. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @keepthachange > Yes, absolutely, that's what the system is designed for :)
    As explained in the Weapons documentation each weapon defines its own 12 or so unique animation parameters for each of its possible states (start, delay between uses, reload needed, etc), so you can have very complex and unique animations for each weapon. A weapon can be whatever you want by the way : gun, melee weapon, kick, punch, fireball, spell, etc.
     
  27. keepthachange

    keepthachange

    Joined:
    Oct 15, 2014
    Posts:
    87
    Thankyou.
     
  28. keepthachange

    keepthachange

    Joined:
    Oct 15, 2014
    Posts:
    87
    I am late to the fourm. What is this exactly? It keeps a score? I was planning on adding a scoring feature as well, but if its already done that would be great actually.
     
  29. Mr-Berni

    Mr-Berni

    Joined:
    Aug 29, 2017
    Posts:
    9
    @VFXROB I am having the same issue with melee weapons not doing any damage, changing the Damage on touch script target layer mask isn't doing anything.

    My game relies on only using melee weapons so this needs to work.

    @reuno help please and thank you!
     
  30. Dougomite

    Dougomite

    Joined:
    Jul 15, 2011
    Posts:
    58
    No, that doesn't do any score handling. If you connect it to a Text object it will just make the text scale up/down and change color when the text is updated. Like what the health bar does when the player takes damage in the example scenes.
     
  31. Dougomite

    Dougomite

    Joined:
    Jul 15, 2011
    Posts:
    58
    @Mr-Berni
    For damaging enemies, I think you really only need to mess with the Damage settings on the Melee Weapon. That should handle creating the damage on touch area for you.

    Double check these bits, that the enemy has the MMHealth script attached to it, the enemy has the MMHealthbar script if you want to see the life bar, that the enemy has a collider, the enemy is set to the same layer as the weapons target layermask.

    Then check that you've set a large enough hit box and in the correct direction, on the Melee Weapon script.
    upload_2019-7-19_17-51-12.png
     
    IlyaKo likes this.
  32. Mr-Berni

    Mr-Berni

    Joined:
    Aug 29, 2017
    Posts:
    9
    @Dougomite I have done this already, just checked this in the koala scene (unchanged) and it wont work. this is a combo weapon so i went and also double checked the 3 other Koalasword damage areas and they should be working.

    target layer masks are set to enemy and obstacles just like they should, colliders are correct size... Like i said this is a fresh import and I havent edited this
     
  33. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Mr-Berni > Please use the support email if you need help, it's much easier and faster.
    And hard to tell without info, but I'd check the weapon's layer first. As explained in the documentation, it needs to be on a layer that can collide with your enemies (usually Player for a player's weapon).
     
  34. Mr-Berni

    Mr-Berni

    Joined:
    Aug 29, 2017
    Posts:
    9
  35. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    97
    Hello, one presale question.
    How to detect the end/finish of a level?
    What are the opinions available in the asset?
     
  36. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @knuppel > The engine lets you create zones to go from one level to the other, if that's what you mean.
    These zones can be activated on entry, on the press of a button, request a key, etc.
    Or you can simply have your own script(s) do that if you prefer.
     
  37. yrucrem

    yrucrem

    Joined:
    Aug 5, 2013
    Posts:
    17
    Dear MoreMountains-Team,

    first of all I want to thank you for your really stunning TopDown-Engine for Unity! Great Asset!

    Since I am using the visual scripting engine Bolt extensively I was wondering, if the TopDown-Engine provides any means of integration with Bolt. For example I would be interested if I can trigger character abilities or AI actions via visual scripting etc. (just to be complete here the Unity-AssetStore-Link to Bolt: https://assetstore.unity.com/packages/tools/visual-scripting/bolt-87491)

    If there is no integration support as of yet, I thank you for further information if a) such thing is planned in the (near) future or b) if perhaps there are some known workarounds possible for my use-case.

    In advance I thank you very much for your time and effort!

    Best regards,
    Patrick
     
  38. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @yrucrem > There's no built in support for Bolt (or any third party asset), and it's not planned either.
    That said the asset is built following Unity good practices, and all classes have public methods you can access through Bolt or any similar tool.
     
  39. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hi, I'm quite an advanced Bolt user and I can confirm that there are no integration required. As Reuno said everything that is required to be accessed can be accessed in Bolt.
     
    yrucrem and reuno like this.
  40. ShiackHeron

    ShiackHeron

    Joined:
    Oct 24, 2017
    Posts:
    13
    I there a way to change the weapons position when it attacks in different directions, I've got it working left and right but when I attack up or down the hit box is not where it shoudl be
     
  41. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Shiack > Yes, of course, that's what the WeaponAim component is for. I'm gonna assume you're talking about 2D here. If that's the case you can look at the characters and weapons in the Grasslands demo scene for reference. For 3D the LoftSword does that as well.
     
  42. gb1_unity

    gb1_unity

    Joined:
    Dec 21, 2016
    Posts:
    5
    Dear MoreMountains-Team,

    I wanted to create a new Unity Project (2019.1.12f1) which uses the TopDown-Engine and the Inventory-Engine, but unfortuantely the Inventory-Engine is causing some errors (see attached screenshot), although all needed packages are installed.


    I know might be a noob question, but coulds someone please help me fix the issue?


    Thanks!
     

    Attached Files:

  43. Muppo

    Muppo

    Joined:
    Sep 28, 2016
    Posts:
    242
    @gb1_unity

    Have you copied the manifest.json to the right place and restarted Unity?
     
  44. gb1_unity

    gb1_unity

    Joined:
    Dec 21, 2016
    Posts:
    5
    Hello Muppo,

    thanks for quick reply!

    Yes, i copied the manifest.json to the right place and did a restart. With the TopDown-Engine there are absolutely no problems. Unfortunatly the inventory-engine nevertheless throws the errors shown in the screenshot and i don't get it where the problem could be.
     
  45. Muppo

    Muppo

    Joined:
    Sep 28, 2016
    Posts:
    242
    I'm not sure if I get you. Inventory Engine is already inside TopDown Engine and, in fact, these errors are from the feedback system, not the inventory and mostly not found namespaces. I suggest to make a clean instalation from scratch, just in case something is messed up in this one.
     
  46. yrucrem

    yrucrem

    Joined:
    Aug 5, 2013
    Posts:
    17
    Thank you both very much for the quick answers @reuno and @Necka_! That's good news.
     
  47. gb1_unity

    gb1_unity

    Joined:
    Dec 21, 2016
    Posts:
    5
    Ah i didnt know that the inventory Engine alreday is a part of TopDown ;-) That explains a lot..
    thanks for you help/comments anyway!
     
    Muppo likes this.
  48. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @gb1_unity > Yeah you've likely got duplicates scripts, there's no need to install IE on top of TDE.
     
  49. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hello,
    this is just a suggestion for the MMHealthbar component, I find it really great and use it extensively. I have different healthbar types and I use the drawn version.
    If it's even possible, I would like to suggest if we could drag and drop already configured healthbar settings (probably something with Scriptable Objects)

    I'm speaking about those settings:
    upload_2019-7-28_11-47-32.png

    For example I could have pre-created an "Object health bar", an "Animal Health bar" and a "Human health bar" which each has different settings. Then I would just drag and drop those drawn settings on the health bar component.

    Right now I'm of course using the copy/paste component values, but I figured it could be a good suggestion to make if you ever have some time for this
     
    Last edited: Jul 28, 2019
    IlyaKo and Boom_Shaka like this.
  50. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Necka_ > Definitely doable. I'll make a note of it, thanks for your feedback on this!
     
    Necka_ likes this.