Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Inventory Pro - uGUI - Performance - Mobile support & More

Discussion in 'Assets and Asset Store' started by jorisshh, Mar 8, 2015.

?

What should I build next?

  1. New currency system

    14.1%
  2. Improved serialization / saving for web

    10.8%
  3. Better properties for items (percentages, base values, etc)

    27.2%
  4. Controller support

    15.4%
  5. Unity 5.1 networking (multiplayer)

    36.9%
  6. More modular build to simplify extending

    25.1%
  7. UFPS Multiplayer (Asset integration)

    11.5%
  8. Core GameKit (Asset integration)

    4.1%
  9. Dialogue system (Asset integration)

    21.3%
  10. Wordpress integration (Asset integration)

    4.1%
Multiple votes are allowed.
  1. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    What exactly did you have in mind when it comes to an XP system? Because writing a simple level up script would take 5 minutes :p

    EDIT:
    I was thinking of writing an affector system (not sure what to call it), where you can create effects based on item and surroundings. For example you step into a puddle of water, and your player gets a wet effect, step near a fire and your wet effects is removed (faster). Combine this with stacking, for example a bleeding effect from a monster.

    Also this would have to work with timers etc, every 2 seconds add some health, or when in a cold area, if the user hasn't taken a potion for cold resistance, remove some health every few seconds.

    Of course this would all have to work through editors and without needing any code. Could be a fun little project :)
     
    Last edited: Jun 28, 2015
    TeagansDad likes this.
  2. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    If I understand you correctly, I would call it a status effect system. Types of status: being slowed or sped up, stunned, unconscious, asleep, having a buff or debuff to a character attribute like accuracy or strength, etc. Environmental factors could include slipping, sliding, burning (damage over time), having movement slowed by sand / mud / snow, and so on.

    Generally, any lingering debuff (say, to speed or health or whatever) can be countered by a buff, or by a "cancel status" effect, if the game permits.
     
  3. Jaephen

    Jaephen

    Joined:
    Mar 7, 2013
    Posts:
    26
    I'm making a singleplayer for now, so just equipping UFPS weapons and having it work with some ammo, like in your UFPS example scene.
     
  4. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Exactly, but it might be a bit to specific I guess... I'm looking at ideas for the next asset:

    • Affector system / Status effect system
    • Terrain extender ( Extending unity terrain system with analytical data (tree density, detail density), current ground texture from splatmap, etc.
    • Quest system that hooks into Inventory Pro
    • Separating the UI features from Inventory pro, upgrading them and sell it as a separate asset. ( No worries Inventory Pro users would get this for free, as it is already integrated. )

    Ideas / opinions are ( of course ) always welcome :)
     
  5. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I'm a little confused here. The visual equipment system is for Inventory Pro items only, like a sword, armor, etc. Aren't UFPS weapons equipping / showing for you?
     
  6. TimeCastle

    TimeCastle

    Joined:
    Jan 12, 2015
    Posts:
    32
    Nothing is assigned to the managers or players, but it doesn't let me drag anything into there or select anything from the menu?
    Some errors pop up too...

    1; No character collection set on the player, if you have a global equip collection you can ignore this message.
    UnityEngine.Debug:LogWarning(Object, Object)
    Devdog.InventorySystem.InventoryPlayer:Awake() (at Assets/InventorySystem/Scripts/Other/Other/InventoryPlayer.cs:84)
    2; No inventories found on player, if you have a global inventory collection you can ignore this message
    UnityEngine.Debug:LogWarning(Object, Object)
    Devdog.InventorySystem.InventoryPlayer:Awake() (at Assets/InventorySystem/Scripts/Other/Other/InventoryPlayer.cs:87)
    3; No skillbar on character
    UnityEngine.Debug:LogWarning(Object, Object)
    Devdog.InventorySystem.InventoryPlayer:Awake() (at Assets/InventorySystem/Scripts/Other/Other/InventoryPlayer.cs:90)
    4; NullReferenceException: Object reference not set to an instance of an object
    Devdog.InventorySystem.InventoryManager.AddPlayer (Devdog.InventorySystem.InventoryPlayer player) (at Assets/InventorySystem/Scripts/Managers/InventoryManager.cs:541)
    Devdog.InventorySystem.InventoryPlayer.Awake () (at Assets/InventorySystem/Scripts/Other/Other/InventoryPlayer.cs:93)
    5; NullReferenceException: Object reference not set to an instance of an object
    Devdog.InventorySystem.ItemCollectionBase.Awake () (at Assets/InventorySystem/Scripts/Other/ItemCollectionBase.cs:418)
    Devdog.InventorySystem.SkillbarUI.Awake () (at Assets/InventorySystem/Scripts/UI/Windows/SkillbarUI.cs:36)
     
  7. TimeCastle

    TimeCastle

    Joined:
    Jan 12, 2015
    Posts:
    32
    Ok I dragged everything into the managers and the players.... but it still doesn't work...?
     
  8. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Errors, warnings? You're going to have to give me some more information than this :p
     
  9. TimeCastle

    TimeCastle

    Joined:
    Jan 12, 2015
    Posts:
    32
    I'm still getting the same errors as above, none of them went away...
    Some new errors are coming up now though.... Should I just delete it all and import it all again?
     
  10. TimeCastle

    TimeCastle

    Joined:
    Jan 12, 2015
    Posts:
    32
    I got it to work, I must have removed a script on accident.
     
    hopeful likes this.
  11. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    Not a bad idea but it does seem too specific as you say. I would think extending Inventory Pro with more general things that hook into it would be to your (and our) greatest advantage.

    They are working on a complete new terrain system for Unity. Would extending an old terrain system that will soon be obsolete be a good use of time?

    This one is a worthwhile idea.

    It would be an easy way to get an extra product on the store I guess. It doesn't strike me as something that would be of much interest though.



    Something I've looked for on the asset store but never found is a battle scroll style combat system. With the addition of an XP/levels/skills system it would tie into Inventory Pro nicely. Like in older RPG games where you have a text box and in combat you see something like this:

    Attacking troll...
    You hit troll for 12 points edged weapon damage.
    Troll hits you for 9 points blunt weapon damage.
    You hit troll for 11 points edged weapon damage.
    You parry troll's attack.
    You hit troll for 15 points edged weapon damage.
    Troll hits you for 13 points blunt weapon damage.
    Troll dodges your attack.
    Troll hits you for 11 points blunt weapon damage.
    You cast fireball spell on troll.
    You hit troll for 24 points fire damage.
    Troll dies!
    You gain 173 points xp.
    You have reached level 8!
    Your hit points have increased by 14 points.
    Your mana points have increased by 29 points.


    I'm pretty sure if someone make something like this it would be very popular. A lot of Unity users are oldschool RPG fans.
     
    Last edited: Jun 30, 2015
    jorisshh likes this.
  12. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    Yes, but for it to be really done right with the kind of attention to detail as Inventory Pro would be significantly more complicated. You would want it to have a visual curve editor and be tied into levels, faction, skills, abilities, crafting requirements, item requirements, and probably some other things.

    I'd say it would be the next logical step for extending Inventory Pro actually (and could also later tie into a combat system, like what I suggested above). It could be a separate asset that hooks into Inventory Pro or be part of some big super game maker system (or both).

    See the image from ORK framework below as an example of how a visual curve editor might work:

    Link: ORK Framework

     
  13. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    630
    Hi I'm following the Visual Item Equipment tutorial of yours on youtube, and on the inventory player script, I'm supposed to have an "equipment binding" list, I don't have that. Mine just has a slot for the script and thats it.
     
  14. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Did you reference the CharacterUI (character collection), once you do, you might have to hit "Force refresh" to load the new wrappers. And lastly, of course, make sure there are wrappers (slots) in your character collection.
     
  15. thedreamer

    thedreamer

    Joined:
    May 13, 2013
    Posts:
    226
    Do you plan to sell skin

    I hope there are a variety of skins

    If you sell the skins of various themes, I am willing to buy

    PS

    Regularry's idea is great
     
  16. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Skins? As in more UI designs for Inventory Pro? Or re-sell the already available skins as a separate asset?
     
  17. thedreamer

    thedreamer

    Joined:
    May 13, 2013
    Posts:
    226
    for Inventory Pro as a separate asset... It would be nice to collaborate with other assets designers

    I have already bought Inventory Pro
     
  18. Jaephen

    Jaephen

    Joined:
    Mar 7, 2013
    Posts:
    26
    Nevermind, I just had a look at the UFPS example scene, it was really useful!

    Do you have any demos on actually visually switching out the armour and body part meshes of the character, and a costume system which goes over the equipment that have the stats, but are only used for aesthetics?
     
  19. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    The 8.AllDone demo has some equipping swords and shield, these "parent" the visual object in a specific position like the hand. Alternatively you can also use Replace, which replaces the original object when equipping ( like an armor plate, pants, boots, etc ). Oh, and no costume option at the moment, but I've made all InventoryPlayer's methods virtual so you could override the EquipItemVisually and add your own :)
     
  20. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    hi, can you help, i have an error and i dont know what need to do to fixed that
    http://prntscr.com/7nhfm0
    it happens when i try create item
    and when i press create, item created with strange name and dont want to change
    http://prntscr.com/7nhh8l
     
  21. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Strange one... The name of the object is likely caused because you have "Use UFPS Item data" enabled, which disables the name / description field of the item, because it's using the UFPS item's name and description.

    Once you rename the object it will also rename the prefab.

    As for the error, I'll look into it :)
     
  22. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
  23. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Just "finished" controller support
    All keyboard/mouse actions can be performed using the controller + all keys are re-mappable and of course all visuals can be altered to your liking :)

    (not bad ey?)
     
    cygnusprojects likes this.
  24. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Window management

    Window management has been improved, you can now link buttons to new windows, all right from the editor.



    Window actions:

    Window actions have been added, allowing for actions whenever the window is shown / hidden. I've also added helper classes that are compatible with this workflow.



    Key Actions:

    Want to do something on a key press? Simply pop on the UIElementKeyActions to your object. Optionally you can add a activation time (timer), that won't activate the action until the activation time has passed. You can see this in the above GIF, when using an item there's a 0.5 seconds delay before the action is invoked.



    The entire controller support demo was build using this system, it's quite powerful, easy to use, and doesn't require any custom coding :)
     
    hopeful likes this.
  25. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    Ow! its fantastick!
    I have some more qustion of usability:
    I fill InventoryDatabase with items (standart EquipableUFPS) and it count about 1000 items
    but now i write class (MyEquipUFPSItem) inherited from standart EquipableUFPSItem, that add some functions and parameters, how i can change standart EquipableUFPSItem class for all items to MyEquipUFPSItem in database?
    And how i can add some ready items from another database? or folder?
    And did you have some functions that allow find item by specifiec property? or sort by property?
     
  26. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    Sorry for lot of quastions ) but can you add to editor, to "create item window" (where we choose item with model, with sprite and go on) - menu "None"? just empty gameObject without collider and mesh components. I have own realization about items on ground and containers.
    This is extra information which may take up too much space for our project, we have >1000 items. Im working on big MMOFPS game, and that critical for us.)
    For now, i added it by myself to http://prntscr.com/7npw32
    but when upcoming new version it ovveride all that changes :(
    Please) make it more universal =) :oops:;)
     
  27. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    The easiest way to handle this would be to select all your prefabs, then change the type (make sure you switch to debug view first, as the current item editor doesn't allow multi editing).

    And how i can add some ready items from another database? or folder?
    The items are referenced in the ItemDatabase, you can open it and add references to your already created prefabs. Careful though, when deleting an item the prefab is deleted, which could create some strange effects if items are shared across ItemDatabase's.

    And did you have some functions that allow find item by specifiec property? or sort by property?
    Starting from V2.1.5 (the current version), you can use LINQ on collections so for example.

    myCollection.FirstOrDefault(o => o.item != null && o.item.name.Contains("sword")); // Note that this returns the wrapper, not the item.
     
  28. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I added the cube because otherwise, if the item is dropped it will vanish as there's nothing to pick up. I honestly wouldn't worry about the added size, as the cube is a Unity internal object that adds only a pointer to the actual mesh which would be 4 bytes (on a 32bit machine) * 1000 items = 4KB.

    Of course, you can also remove the MeshFilter and MeshRenderer from the prefabs :)
     
  29. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    Thanks Dude! =) ;):)
     
  30. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    And one more! :oops:
    I don`t understand about language editor. For me i think it must give functionality to fill text on different languages? Or im wrong? )
     
  31. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    It's currently more or less a placeholder that allows you to define notice messages. Like "Bought item {0}", which will replace {0} with the item name, giving some more freedom than hard-coded options.

    I've made it "fairly" flexible, so it can be extended upon later :)
     
  32. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    any news about the stats fixed? the code in tutorial to calculate stats does not work with properties
     
  33. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Properties should already be considered in player's stats calculation, can you add a link to the tutorial that doesn't work please?
     
  34. Jaephen

    Jaephen

    Joined:
    Mar 7, 2013
    Posts:
    26

    Where do we find Replace?
    Is it difficult to override EquipItemVisually? I've no idea where to start
     
  35. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    On the InventoryPlayer component there's a dropdown that is by default on "Make child", which also has the option "Replace". When you choose replace the referenced transform will get replaced with the object you equip. Which could be useful for things like body armor, pants, etc.

    If you'd like to create your own implementation of equipment you'll have to create a new class and implement InventoryPlayer. The method EquipItemVisually is called when an item is equipped, and UnEquipItemVisually when un-equipped. Simply override these and make your own implementation :)
     
  36. Jaephen

    Jaephen

    Joined:
    Mar 7, 2013
    Posts:
    26
    Oh, thanks for the help!
    This makes so much more sense
     
  37. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    if i use in "item Property Editor" and create a property, then add the property to my equipable item, i should see the bonus updated on Character_Status_Category_PFB but all stats stay to 0.

    then when i want to read stats from property myself using this: http://devdog.nl/unity/document/extending-code/equipment-stats/

    all stats debug return 0 with my item equiped.
     
  38. Dan_lala

    Dan_lala

    Joined:
    May 14, 2015
    Posts:
    42
    I agree, this is actually the only feature I am missing for a core inventory.... I am sure if you put this up in the poll, there would be quite some people voting for this
     
  39. goldencruz

    goldencruz

    Joined:
    Oct 2, 2013
    Posts:
    94
    this looking real nice I need to start learning this inventory system
     
  40. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    To make Inventory Pro more fail safe and easier to use I decided to add an setup wizard / issue detector. It scans your scene for fault configurations / missing components / etc.

    Certain actions have pre-defined fixes, like missing managers. Click the "Fix" button, and voila :)



    So from now on you can start a new project, open the setup wizard and get it all up and running in no time
     
    julianr and hopeful like this.
  41. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Sadly can't change the polls contents or even remove it, but I'll ask a moderator to remove it after this development cycle, and we'll vote again ^^
     
  42. Dan_lala

    Dan_lala

    Joined:
    May 14, 2015
    Posts:
    42
    haha great, my vote for the next poll is already decided :)
     
  43. OniKys

    OniKys

    Joined:
    Jun 15, 2013
    Posts:
    13
    hi, i found one some not fine thing.
    i have old version of inventory pro, then i get new version, just import that.
    next i found, that you move inventoryUIUtility from other folder to Utilities, but old file dont removed when i import new version. Unity dont say me about duplicate files becouse they have different namespaces. And function about getallhoveringuiobject not work correctly =( when i just delete old file it start work fine. Can you add some function to update your plugin? =)
     
  44. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I wish I could but I have 0% control over the upgrade process :(, Unity is however working on an API that should give more control to asset store developers ( http://unity3d.com/unity/roadmap : Script Api Updater: Expose APIUpdater to Asset Store authors )
     
  45. Jaephen

    Jaephen

    Joined:
    Mar 7, 2013
    Posts:
    26
    Hey,

    I'm having a look at your 8.AllDone scene, I'd just like to know, which camera is driving the CharacterImage in the MainPage of the CharacterWindow?
    I find it pretty cool, and would like to do it for my own character, but when I try to replace the player, the image just goes blank..
     
  46. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    There's a camera ("ToTextureCamera") in the player prefab that renders only on a single layer (Characters). So if you'd like to replicate this, put your character in a specific layer ( for example Characters ), then create a new camera, position it in-front of you character and set the camera's culling mask to Characters (+InventoryProEquippedItems if you also want to render the equipped items). Lastly (for the camera) set the target texture to a render texture that you've created in the project folder ( Create / Render texture )

    Lastly, to display the render texture you can create a Raw Image element in the Unity UI canvas, assign the render texture, and that's it :)
     
  47. MrWilson

    MrWilson

    Joined:
    Sep 21, 2012
    Posts:
    7
    Hello jorisshh, love InventoryPro.

    I've attempted to look into this myself, but with no luck. Been following the video and written tutorials to integrate InventoryPro with plygame.

    The only issue giving me pause is that the plyGameCharacterStatsDataProvider works fine when my character is already in the scene, but if spawned it doesn't find the player and disables the Ply character UI component .

    Attempted to alter the order the scripts load, add delays and WaitForFixedUpdate but none of these work well. Would you have any advice or tips? I'm asking because changing the process my player enters a level would take some work, albeit worth it for InventoryPro.
     
  48. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Hm.. that's strange because there's no element disabling the plyCharacterUI component... The only thing the plyCharacterUI does is add the data provider and change the stats, it doesn't affect the window / gameObject.

    Are you using the "dynamically find UI elements" on the InventoryPlayer component? (the one where the characterUI is referenced)
     
  49. MrWilson

    MrWilson

    Joined:
    Sep 21, 2012
    Posts:
    7
    Wow thanks for the fast response.
    It is checked, and seems to locate the proper windows without error.
    upload_2015-7-4_7-18-44.png

    NullReferenceException: Object reference not set to an instance of an object
    Devdog.InventorySystem.plyGameCharacterStatsDataProvider.get_plyAttributes () (at Assets/InventorySystem/Scripts/Integration/plyGame/DataProviders/plyGameCharacterStatsDataProvider.cs:23)
    Devdog.InventorySystem.plyGameCharacterStatsDataProvider.GetPlyAttributeName (plyCommon.UniqueID id) (at Assets/InventorySystem/Scripts/Integration/plyGame/DataProviders/plyGameCharacterStatsDataProvider.cs:77)
     
  50. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Alright, managed to fix the problem :), because plyGame instantiates the player and does this very early the singletons didn't have time to initialize / the player wasn't assigned as the current player yet :).

    Pushing the next update on Monday, so you should have the fix before the end of the week.

    ( as a hotfix, I've added a co-routine to the plyInventoryPlayer's awake and moved the base.Awake() call to the co-routine method adding 2 WaitForEndofFrame delays, and I've added a null-check in the plyGameCharacterStatsDataProvider's plyAtributes get property )