Search Unity

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
    This happens when there's no camera in the scene during initialization. I've since fixed the issue, as a hotfix:

    Change line 68 in DraggableWindow.cs to:

    _maxPos = new Vector2(Screen.width + w - spacing.x, Screen.height + h - spacing.y);

    And it should all work again.
     
  2. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Of course, I'll make the colors, opacity, backgrounds and font's all customizable :)
    Also, I might do a fantasy styled theme after this ^^
     
  3. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    Good afternoon . Tell me how to make a block in Ufps on the menu. I did the menu, but do not know how to do UFPS Block as you have in your inventory . What would when opening the menu of my mouse the player does not rotate , but the cursor appears in the menu. Write code as it is implemented . Thank you very much in advance .
     
  4. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    You can do so by setting the UIWindow's 'blockUFPSInput' bool. More info at http://devdog.nl/documentation/ufps-getting-started/ .

    For future reference, be sure to check out the documentation, there's a category on each 3rd party asset with lots of images to break any possible language barriers :)
     
  5. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    You do not quite understand me correctly ) ) . I know how to make a block in your inventory . I need to learn how to do it in a completely different menu that I created myself. I thought I'd tell you how to do this correctly.
     
  6. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    any plan for text mesh pro integration ?
     
  7. mliukka

    mliukka

    Joined:
    Nov 1, 2015
    Posts:
    19
    This looks to be a very extensive and flexible inventory system! A great feature list and comprehensive documentation. I already browsed the documentation a bit, and tried to contact you through your website, but got no reply so I'm contacting you here instead.

    I'm curious as to how easy/difficult it would be to integrate a custom 3rd party item system to Inventory Pro? Is there deep integration with the built-in InventoryItem classes, or is it possible (with a bit of coding) to store custom items in the inventory, basically only utilizing the graphical interface and item sorting features?

    I'm making my own gameplay system with items that have certain properties and functions, and at some point in the very near future I will need an inventory system. I'll probably end up coding a rudimentary inventory myself, but as there are already great assets like this with movable windows, drag-and-drop functionality, item stacking etc, I feel there's no point in reinventing the wheel. I do want to make my own system as generalized as possible, so I don't want to be "locked in" to one inventory system either (by having to change my own item code extensively to fit a 3rd party inventory); I might choose another inventory asset at any point, or decide that I want to code my own system after all.

    Ideally I'd want to be able to store custom item classes in the inventory, and just provide the inventory system with any necessary info (item weight, icon etc). Anything that happens after I click "drop" or "use" should be at my own discretion. So is it possible? :)
     
  8. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Beautiful design, Joris! Would love to see a fantasy/medieval one from you as well! Really really nice. :)
     
  9. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Ah makes sense; This is done by using the IInventoryPlayer interface. When a window is shown you can call the InventoryPlayerManager.current.SetActive(false); and SetActive(true) when you wan't to re-enable the input.
     
  10. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I already browsed the documentation a bit, and tried to contact you through your website, but got no reply so I'm contacting you here instead.
    Ah I'm glad you contacted me through the forums :) I send you a mail back but got a delivery error, tried again through my personal mail, but to no avail. Even tried your site's contact form, but that didn't seem to pan out either :(

    Inventoyr Pro does rely on a build in item type to handle stacking, icons and some basic UI elements. This isn't currently an interface, but an abstract class, as Unity doesn't support serializing interfaces.

    Not to fear though, (almost) all methods are marked virtual and can be overwritten if you like to implement your own methods: http://devdog.nl/documentation/creating-a-custom-item-type/ . So as a short answer, yes you can add custom drop / pickup / equip / etc, etc, etc behavior on your own item types. Of course, you need to extend the build-in Inventory pro item type (InventoryItemBase), so this would add a bit of dependency.

    If you don't want to be tied down to a solution I do suggest writing your own system, nothing beats your own code :). Inventory Pro does keep the dependencies low and only requires you to implement a custom item type (no need to reference it anywhere, the creation process all goes through reflection (editor only), so you can continue to use all editors using your own item types).
     
    mliukka likes this.
  11. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Thanks! certainly more to come, I've still got a huge list of things I need to design for the sci-fi theme, but once it's done I'll look into fantasy more :)
     
    Teila likes this.
  12. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    No hurry, just looking forward to seeing what you do with both of them. :)
     
  13. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @jorisshh ,

    How about this... how about say weapons also being 'containers' (slots) for enchantments, crystals, etc?
     
  14. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Certainly possible, right now the pouch is also an ItemContainer, however this would make it rather hard to figure out which item is an enchancement, etc; As all items in the container are downcasted to the base class.

    Of course you could cast back, but that's rather ugly :)

    Instead, I suggest the following:

    public class MyAwesomeEquippableInventoryItemType : EquippableInventoryItem
    {
    public Crystal crystal; // Crystal object that contains extra buffs


    public override LinkedList<InventoryItemInfoRow[]> GetInfo()
    {
    var list = base.GetInfo();
    list.AddLast(new InventoryItemInfoRow[]{
    new InventoryItemInfoRow("Crystal name", crystal.name)
    // Add some more info about the crystal -->
    });

    return list;
    }

    /// When the item is equipped, also add the stats from the crystal to the player's stats
    public override void NotifyItemEquipped(InventoryEquippableField equipSlot, CharacterUI equipTo, uint amountEquipped)
    {
    base.NotifyItemEquipped(equipSlot, equipTo, amountEquipped);
    InventoryItemUtility.SetItemProperties(equipTo.player, crystal.properties, InventoryItemUtility.SetItemPropertiesAction.Use);
    }

    /// When the item is un-equipped, also remove the stats from the crystal to the player's stats
    public override void NotifyItemUnEquipped(CharacterUI equipTo, uint amountUnEquipped)
    {
    InventoryItemUtility.SetItemProperties(equipTo.player, crystal.properties, InventoryItemUtility.SetItemPropertiesAction.UnUse);

    base.NotifyItemUnEquipped(equipTo, amountUnEquipped);
    }
    }


    And the crystal could be any type of object really, I'd probably be easiest to go with a scriptable object, or an MonoBehaviour (this way you can assign them through the editors).

    public class Crystal : MonoBehaviour
    {

    // Property lookups contain the property and value -> This way you can 'extend' the item.
    public InventoryItemPropertyLookup[] properties = new InventoryItemPropertyLookup[0];
    }

    Hope that helps :)
     
  15. mliukka

    mliukka

    Joined:
    Nov 1, 2015
    Posts:
    19
    Thanks for the in-depth reply @jorisshh! I'll code my own inventory system as per my original plan, but I'll be sure to purchase InventoryPro at some point, just to check out its inner workings :)
     
  16. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @jorisshh ,

    Thanks for that. I will read in and digest.

    However, I'd also like to place a development request for future for integration of slots / upgrades... ;)
     
  17. giraffe1

    giraffe1

    Joined:
    Nov 1, 2014
    Posts:
    302
    Were you ever able to get this working with Realistic FPS asset? If so could you share how you did it.

    Thanks,
     
  18. tylerw-savatronix

    tylerw-savatronix

    Joined:
    Nov 10, 2013
    Posts:
    90
    Hey Joris,

    I've been looking over the source code, and I noticed a bit of inconsistency with naming conventions (well, more naming style, mainly camel case vs pascal case).

    It looks like most of the public properties (not all) on your classes use camelCase. In C# though, typically anything public uses pascal case (hard to type that without actually doing it, darn that muscle memory, heh).

    It's not really an issue when working on private projects, however in APIs it's generally best to use Microsoft's recommended code guidelines, otherwise you'll end up inadvertently injecting code inconsistency into the majority of your c# using customers projects, which itself starts to become an issue the larger the code base is.

    I know this'll probably be low priority, but may I make a request to conform the public interface to MSFT recommended guidelines? Using StyleCop might help as IIRC it defaults to MSFT c# guidelines.
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Unity uses camelCase for public properties. API developers have to choose between consistency with Unity's style or consistency with Microsoft's style. Unfortunately it's a no-win situation for developers; whichever way they go, some people are going to be happy and others unhappy.
     
    TeagansDad and jorisshh like this.
  20. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Just a tip - Considering that you're not in a hurry, if you sign up to the newsletter you'll be notified when/if Inventory Pro goes on a sale ( http://devdog.nl/ left bottom is the form ) :)
     
  21. tylerw-savatronix

    tylerw-savatronix

    Joined:
    Nov 10, 2013
    Posts:
    90
    I just went through Unity's documentation more in depth and you're right. It's like Java's framework all over again (inconsistent naming). Some of their properties/public variables use PascalCase but the majority use camel.

    Why Unity, WHYYYYY!?

    My background is more senior C# developer, but noob to Unity...so this (Unity) is basically going to drive me crazy lol.
     
  22. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Yep, not sure why Unity decided to do this :(. Even though it's a bit annoying at first it's 'consistent' within the Unity framework :) it's something
     
    danreid70 likes this.
  23. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Got a little bored, so I decided to add traps

    Initial damage reduction + damage over time while you stay in the trap (10 damage on initial and 3 damage every second you remain in the trap). This is of course adjustable to your liking.
     
    joejr, Regularry, Duffer123 and 4 others like this.
  24. tylerw-savatronix

    tylerw-savatronix

    Joined:
    Nov 10, 2013
    Posts:
    90
    Heh, at least my codebase will be consistently inconsistent.
     
    jorisshh likes this.
  25. Infinite_Monkeys

    Infinite_Monkeys

    Joined:
    Oct 29, 2015
    Posts:
    6
    How difficult would it be to integrate this into a server-authoritative uNet game?
     
  26. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    jorisshh, Duffer123 and 99thmonkey like this.
  27. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Because I've answered this question a few times over the mail already I'm going to be a bit lazy and copy paste

    --- Question: Can I integrate Inventory Pro with UNet / Photon?
    This is certainly possible and I've arranged everything to be multiplayer ready, as I intend to add UNet support in the (near) future. To achieve this, and assuming you want to do a full-authorative server you'll have to serialize the server data and initialize the clients. I just so happen to have added a collection and IItemCOntainer serializer in v2.2.3 (current version) .

    Initialize client:
    Serialize DB Data to either JSON or a custom format. Json is currently supported in inventory pro, but you can of course write your own serializers. (More on how to here: http://devdog.nl/documentation/serializ ... g-loading/ ).

    Next, you'll have to verify the user's actions through the server, and here's where it will probably get a little tricky:
    When the user takes an action, let's say move an item to a 2nd inventory the server will have to verify if the restrictions are valid. Right now there's no interception or custom rule-sets that can be applied without overwriting a lot of code.
    However... In many games, like for example WoW, Guild wars, etc. when the user takes an action it is "validated" on the client, and once the client accepts it, the server will validate once more. If the server denies the action the action will be reverted.

    So, for example: When the player moves an item from inventory A to inventory B and this is not allowed on the server (A.K.A the player is cheating) the item will move to Inventory B (client side), then it will get validated on the server and the item will shoot back to Inventory A (action reverted). Many games actually do this to make actions appear "faster". Because as long as the player isn't cheating all actions will be lagg free .

    (Hope that whole story made sense )

    So, this is what I intended to do as well with the UNet integration. To achieve this you can hook onto any collection's OnAdded, OnRemoved, OnSwapped and OnItemUsed events to catch all specific actions and sync them to the server. Simply keep a Queue of actions ( The command pattern is perfect for this. A great example at: https://sourcemaking.com/design_patterns/command ).

    If you intend to use a Unity player as a server (which is possible, and you can disable rendering for the players, so they won't have any overhead and you can create your own headless server) you can use the verification rules already build in the collections.

    Server:
    So you could create a new class (for example NetworkItemCollection), implement the ItemCollectionBase and let is listen for incoming messages.

    Client:
    Create a class that hooks onto the collections events and sends them to the server and cancels them if required.


    Voila, no duplicate code

    Hope the whole story made sense, let me know if you have any questions
     
    hopeful likes this.
  28. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    That's amazing! Keep up the awesome work :D
     
  29. canaljuegos32

    canaljuegos32

    Joined:
    Jun 29, 2015
    Posts:
    63
    Anyone have a tutorial to integrate with Realistic FPS prefab?. I managed to get the pickups in inventory but now stuck in how to pause game and make cursor appear when in inventory window (im not a coder). I dont care about weapons, just need an inventory to store quest items and to use health pickups directly from inventory.
     
  30. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I quite liked the trap, so I've decided to expand it a bit, you can now set traps, with damage intervals, but area's can now also have enter, stay and exit actions.

    For example:
    Walking into a swamp will decrease your walk speed, but once you exit, the speed will resume to it's original. Allowing you to create area's that affect the player's stats, either on enter, stay (with custom interval) or exit :)
     
    Regularry, Tinjaw, hopeful and 2 others like this.
  31. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Another one people might like :)

    Triggers can now have restrictions. For example, the treasure chest requires a key to open. To get it you'll have to get past the door, which requires at least 6 strength (equipping an item adds strength, just as a demo).
     
    Regularry and hopeful like this.
  32. Infinite_Monkeys

    Infinite_Monkeys

    Joined:
    Oct 29, 2015
    Posts:
    6
    Does the inventory system store items in the inventory as GameObjects? When experimenting with making my own system before I found this, I couldn't manage to sync a game object based inventory over the network, as you can't use SyncVars or SyncLists with classes like GameObject.
     
    jorisshh likes this.
  33. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    I love the way you're extending Inventory Pro with things like this. I'm thinking of things like lock picking and trap disarming skills.

    Reminds me of Anarchy Online, which had my favorite items and skill system of any game ever. For example if you wanted to equip a helmet that required 20 Strength but your character only had 17 Strength you might equip a pair of boots that added +4 Strength. Then you'd have 21 Strength and could equip the helmet. Then you could take the Strength boots off and put your regular boots back on. Buffs could also raise certain stats temporarily. It was great because it allowed you to endlessly fiddle around in your inventory trying to figure out ways to get better items onto your character.
     
  34. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Yup they're used as gameObjects, however they get serialized as itemID and amount (just plain System.Single types), which can be used to transfer them over the network. Additionally I believe UNet supports serializing custom types, which would be a nice to have :)
     
  35. Infinite_Monkeys

    Infinite_Monkeys

    Joined:
    Oct 29, 2015
    Posts:
    6
    If items have IDs, is it still possible to have dynamic items based on a materials and modification system?
     
  36. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    I would love that. Modifiable items you can change or add attributes, materials or properties to...
     
  37. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    This is rather specific and I'm trying not to tie Inventory Pro to a specific genre; Right now it can be used for FPS, RPG, Survival, you name it :). So I likely won't be adding game specific elements like lock-picking, but It's of course possible to add yourself, it's all extendable :)

    You can actually already do this :) I've added some extra code to prevent it from happening, so when you equip a dagger, which in turn allows you to equip a strong armor piece and then remove the dagger again the system will check the strong armor piece and un-equip it, as the player no longer has the required strength to wear it.

    You can of course disable this, and use the Anarchy Online concept. (If you like to disable it, CharacterUI.cs)
     
  38. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    What I meant about lock picking is that we could just make a skill called "lock picking" and have it work exactly like in your example. When the player tries to open a locked door it would open only if they had enough points in the skill.

    Thanks for the info about CharacterUI.cs. That's very helpful!
     
  39. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Oh you can already do this, no problem :) You can create properties, as many as you like. Properties can be bound to items to increase them, but this isn't of course required. You can also increase them through code (manual save of stats required in this case).

    And then use the property as a restriction on the triggers :); So you can do this entire thing right from the editors, and you can also manually increase the skills through code.
     
  40. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Right now items are always based on their prefab, of course creating a sub-ID would be possible, although this would require a bit of core changes.

    You could randomize stats on items, although they're not saved yet. If you create a task at bitbucket I'll consider it for a future update :)
     
  41. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Perhaps an option to only display properties with a NOT NULL value? In runtime I can add a new item to the item database? From scene to scene can I change the database? I am thinking I could save back in am item then niw with filled slots, additional properties etc? How much of that could be achieved directly through Playmaker actions?
     
  42. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522

    Perhaps an option to only display properties with a NOT NULL value?

    Properties / stats are always initialized with a default value, so determining when a stat is not relevant might be a bit tricky. Or maybe an option to hide it if the stat is equal to the starting value... ? Although that's a bit of an odd one :)

    In runtime I can add a new item to the item database?
    You could, of course they wouldn't be saved. Not sure why you'd want to do this though :)

    I am thinking I could save back in am item then niw with filled slots, additional properties etc?
    The serialization system can be extended to add extra fields ( http://devdog.nl/documentation/serialization-saving-loading/ )

    How much of that could be achieved directly through Playmaker actions?
    None :), building games without programming is a myth ^^
     
  43. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Sci-fi UI

    Just a test, but I kind of like it so far :). It's not functional yet, just the design; The ring will get direction indicators for quests, npcs, whatever you need. Of course I'll add some layers of depth to it, animate it, and add some fancy glows and other sci-fi like effects
     
    TRoNDaNeflin likes this.
  44. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Sci-fi UI update

    Quite a bit better don't you think :)?
     
    TRoNDaNeflin likes this.
  45. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Does look pretty darn good...
     
  46. 99thmonkey

    99thmonkey

    Joined:
    Aug 10, 2012
    Posts:
    525
    Sorry, but I just don't see how I could use this yet.
     
  47. Nathan_W

    Nathan_W

    Joined:
    Nov 20, 2014
    Posts:
    1
    Looks great, Joris! What software are you using to design/create it?
     
  48. takapi

    takapi

    Joined:
    Jun 8, 2013
    Posts:
    79
    Hi
    I have the error. :(
    I have added the icon of equipment on CharacterWindow.
    Then CharacterWindow is opened with this error.
    What should I do? :(


    MissingReferenceException: The object of type 'InventoryEquipStatCategoryUI' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    Devdog.InventorySystem.InventoryPool`1[Devdog.InventorySystem.UI.InventoryEquipStatCategoryUI].Destroy (Devdog.InventorySystem.UI.InventoryEquipStatCategoryUI item) (at Assets/InventorySystem/Scripts/Modules/Pooling/InventoryPool.cs:85)
    Devdog.InventorySystem.InventoryPool`1[Devdog.InventorySystem.UI.InventoryEquipStatCategoryUI].DestroyAll () (at Assets/InventorySystem/Scripts/Modules/Pooling/InventoryPool.cs:92)
    Devdog.InventorySystem.CharacterUI.RepaintAllStats () (at Assets/InventorySystem/Scripts/Modules/CharacterEquipment/CharacterUI.cs:283)
    Devdog.InventorySystem.UI.UIWindow.NotifyWindowShown () (at Assets/InventorySystem/Scripts/UI/UIWindow/UIWindow.cs:200)
    Devdog.InventorySystem.UI.UIWindow.Show (Boolean fireEvents) (at Assets/InventorySystem/Scripts/UI/UIWindow/UIWindow.cs:282)
    Devdog.InventorySystem.UI.UIWindow.Show () (at Assets/InventorySystem/Scripts/UI/UIWindow/UIWindow.cs:264)
    Devdog.InventorySystem.UI.UIWindow.Toggle () (at Assets/InventorySystem/Scripts/UI/UIWindow/UIWindow.cs:259)
    UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:149)
    UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:626)
    UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:766)
    UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:54)
    UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:35)
    UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:44)
    UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:52)
    UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:269)
    UnityEngine.EventSystems.EventSystem:Update()
     
  49. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Used illustrator for this, so it can scale to any size :)
     
  50. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I'll post some video's / gifs when I've got a functional system :) Still quite far away, designing all the UI elements takes quite a bit of time