A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by jorisshh, Mar 8, 2015.
Back again , support for all assets will of course remain
2 Way sync is a bit more complicated, as inventory pro stats have way more modifiers (bonus values % values, etc). You can sync one way, this would be quite easy. Another option would be to make a custom Stat script that wraps UFPS' health, that way you'd be able to modify it directly and read it's value directly.
The easiest way to show UFPS' health would be to create a new script that reads the UFPS health; You can display it using a StatUI or StatRowUI component in Inventory Pro.
It looks like there's a script interfering in the project. This is most likely a script named Player, or Trigger. If you search in your project pane for "Player" or "Trigger" do more than 1 script with this exact name show up?
This script is likely not namespaced and therefore interfering with the overloaded method. Can you tell from what asset / package this script is?
Awesome - thanks!
Can you talk about your big plan?
Oh I wish I could, but very soon I'll be able to - Oh it sure is very exciting ....
The 30th it shall all be revealed
Hello DevDog. Great asset actually, all that needed, written in good style. Will save me a lot of time ). Just one remark: Please don't override Standard Assets. It's a shared code, what if every developer will override it? They would conflict to each other and it won't be possible to store such assets in git submodules. Actually I have to manually move overriden code under unique namespace in asset folder, which is quite annoying lol
I know it's not ideal, but writing a lot of custom controllers is also a bit out of scope. Unity should (hopefully) no longer suggest to overwrite the files; I generated new GUID's for them. Does it still do this?
If so, I'll create some new scripts and copy over its contents to avoid conflicts in the future.
The root of problem IMO is that some of Unity standard controllers are not quite suitable for subclassing. Devs are forced to change the standard library code in order to get desired behavior. But it leads to "dependency hell" problem in Standard Assets. Yes, I agree with your solution. I think, working "out of the box" is more important than some minor code duplication
Ho ho ho.
Sponsored by over 40 of the highest rated Unity Asset Store developers and a whole sleeve of industry
partners – including Unity themselves!
Sune and I (Devdog) are launching a huge Christmas Giveaway Calendar for Unity game developers on December 1st.
You can already now sign up right here.
So what’s this all about?
For the past weeks, we’ve been collecting sponsored gifts related to Unity (asset vouchers, product keys, conference tickets etc.), and throughout each day of December leading up to Christmas Day on the 25th , we will be sending out these sponsored gifts as early gamedev Christmas presents via e-mail to hundreds of lucky winners.
The total prize pool is over $15.000, with over 350 presents in the prize pool. Merry Christmas from Devdog, and every single one of the sponsors.
Christmas Giveaway Calendar for Unity game developers
This is your big plan?
Hi. Is there easy way to implement inventory filter (i.e. show only consumables or weapons) ?
Pretty much not good enough? - Fun fact, there's also 4 assets in the making, soon to be released
There is a filter system for items built in that you could use, but if you're only looking to show by type it might be easiest to use your own solution. The easiest way to do this would probably be to hide all the slots that aren't of the type you want to show - Be careful with layout items (items that take up more than 1 slot).
On September 20th 2016 Jorisshh said, "You've got it I'll add a demo scene to the next release."
We worked in other project areas for a while, but now, we need to get skinned mesh clothing functioning in Inventory Pro. If you could find the time to provide the demo, or maybe just add one skinned piece of clothing (shirt or pants) to one of your existing demo scenes, it would be an immense assist.
Sorry about that, must've slipped through the cracks. Here we go
Gave Ethan some fancy, fancy shoes. Also, I suddenly remembered why I didn't go into design...
(They're just quick extrusions, hence the gaps)
I think Ethan is enjoying his new boots a bit ... too much...
Alright... back to work
Im working on the skillbar. I need to figure out how to get a "message" to activate other scripts, When i press the button on the skill bar if all requirements are met (cooldown, mp use, etc...). Is this already implemented or do i need to write a script or modify the current one ? if i do need to write one do you have a short example ?
Also i want to change the input on it. Currently its mouse button 1 or fire2 .. I believe. I know i can have specific keys for each button but i want to change the mouse input for them as my player zooming is also that button., where is the input handled for this.
This isn't built in, but you can use the item.CanUse() method to check if the item can be used (all conditions + cooldown), and then invoke your own code.
// Override method form the SkillbarUI.Update method.
protected override void Update()
for (int i = 0; i < keys.Length; i++)
uint keysDown = 0;
foreach (var k in keys[i].keyCombination)
if(keysDown == keys[i].keyCombination.Length && keys[i].keyCombination.Length > 0)
// All keys down
if(item[i].item != null && items[i].item.CanUse())
// Custom message here..
You can change the input in the skillbarUI component, it's under keys.
Inventory Pro V2.5.4 is here:
Added playmaker action options to overwrite stack size of item added
Moved mobile input actions to input category
Items did not save in the correct folders - Fixed
InfoboxUI stat requirements now use the correct code path and call the StatRequirement.CanUse() instead of checking by itself. + Gave some items stats to test + for demos
Empty item filter issue fixed
UI events didn't register after deserialization of the saved data - Fixed
EasySave2 Update, fixes issue with trying to overwrite file
Fixed issue in main editor, not able to delete items in the list with a scrollbar visible
Added infoboxUI feature - Click to show the infoboxui instead of hover, allows you to place the window somewhere on screen and click an item to repaint infobox.
Added skinned mesh boots to show of mesh skinned objects
Collection didn't show collection full message (fixes #236)
Crafting window stanard field blueprintCategoryPrefab is now marked required (fixes #235)
Crafting actions for PlayMaker (fixes #234)
MyCustomMonster fix for Unity 5.5+
Is there any chance are you going to integrate Inventory Pro & Quest System Pro so it works with Ootii - Motion Controller?
@Hans - I assume that you're referring to integrating Inventory Pro with the InventorySource used in the Archery and Sword & Shield Motion Packs. I've been working on this and I've made some progress.
The primary stumbling block for me is that how I want it to work may not be how everybody else wants it to work (in terms of how weapons are drawn and sheathed for example). On top of that, my preferred approach would make use of Mount Points and the Event System (Dispatcher) to make the whole process cleaner and easier. I could have put together a custom implementation for how I want my game to work by now, but I've been trying to build a more generic implementation that everyone else can use, and that's where I keep running into frustrations that result in me taking a lengthy break from working on it and doing something more enjoyable.
If you've made an attempt to get them working together, let's compare notes.
I wish i could help BUT...always a but .....I dont know how to code/programme so iam in a worse position than you ...hehe in a manner of speaking. sorry, thanks for asking though
I just installed Inventory Pro V2.5.4 into a fresh project into Unity 5.4.3f1 and getting these two errors.
Assets/Devdog/InventoryPro/Scripts/Modules/Crafting/CraftingWindowStandardUI.cs(223,21): error CS0029: Cannot implicitly convert type `UnityEngine.UI.Button' to `Button'
Assets/Devdog/InventoryPro/Scripts/Modules/Crafting/CraftingWindowStandardUI.cs(241,29): error CS1501: No overload for method `Select' takes `1' arguments
I cannot open the Inventory Pro editor because of these errors.
And can i ask a serious Question - Have you stopped support for the product ? or slowed down alot ? Is it because of ppl not supporting for paid updates?
Also i sent on your web site under contact for some Private work for myself - But no reply
either way.....good luck in your endeavors.
Do you have any other scripts in your project? It seems there's a non-namespaced script "Button" in your project that's interfering with UnityEngine.UI.Button. To find it simply search for "Button" in your project and it will likely show a script that isn't namespaced. Is it from a 3rd party asset? If so, which one?
I haven't stopped support any assets, I still respond to emails and forum posts daily. The development of Inventory Pro has slowed down a bit, as I'm making some time for a new project.
I haven't received any messages about custom work on the Devdog email though? What email address did you use (feel free to PM if you prefer that). Although I generally don't do custom work; Most of my projects take up all of my time already
Hey @jorisshh .. having a few issues with 2.5.4 at the moment. I set the assault rifle weight to 401, my max inventory weight is 10. I get Inventory full message in the messageGUI when Inventory is empty on trying to pick up the assault rifle, but the log shows the correct message. Shouldn't the message show Max weight exceeded in the messageGUI ?
@jorisshh Is there a class that I can use InventoryNoticeMessage for Item exceeds Inventory container weight? That can go in the language database?
There's no default message, but you can use a partial class to add values to the settings database. See: http://devdog.io/unity-assets/inventory-pro/documentation/2.5p/api/custom-notification-messages
Hello! I have been unable to figure out why skills wont work when dropped in the skill bar, I can drag them there, but I cant click or use the keys on them, I've tested consumables and every other item works, only skills dont. I looked and compared the code in both prefabs of SkillExample and Consumables but still no luck. So how do I make is so I can use keys and click on skills when in the skillbar?
Skills reside in their own collection. Have you enabled the "Can use from collection" on the skill collection? This allows items to be used from within the collection. Also, make sure to check canUseItemsFromReference to allow (skillbar) references to use the skills.
I believe that I do have those checked.. I really am clueless as to what it could be, probably something simple
I haven't seen this mentioned, but how is all this data stored, and what's available for populating this system from a back-end?
Strange, have you tried the demo scenes? Make sure your skillwindow is NOT using references, as it contains the actual skills, and the skillbar itself does use references.
Data is stored in scriptable objects named databases. Items are stored as prefabs to allow the most flexibility (add custom components, etc). Custom data can be loaded before the system initializes and saving/loading happens.
I've been reading through your refreshingly comprehensive documentation (so many complex assets have crap for docs, so thanks for that!) and the best I can figure out is you have a ScriptableObject that you're dumping to an .asset file? This may be fine for a single player game, where the build holds everything, and maybe some stuff is dumped out in PlayerPrefs (where players can of course muck with it) but this appears to be a dead end for multiplayer where the server would store everything about NPC and Player inventories and skills and items. Such data would contain references to prefabs where appropriate for in-game presentation. Storage could be XML, flat files, or SQL tables. JSON falls down because it lacks schema and strong typing that you'd have with XML + XSD or SQL. External storage opens up for external tools that are more efficient in managing large structured data and performing validation calculations.
Please consider a strong-typed design-time and run-time Import/Export...XML + XSD at a minimum.
If your class structure is already compatible with the .Net XMLSerializer, then perhaps a bit of code sample hint is all that's needed.
Sorry for my Late reply
Thanks for Your reply
Yes i found the prob, i have a special folder were i have all models etc stored in it and i missed 1 script with the button code.
I apologies for wasting your time.
I am one that did not mind paying for updates.....as long as the updates are consistent in there content and application.
Ausome new endeavors are always good
I will send you a PM.
And Thanks alot of you great apps...... Keep up the great work.
Inv Pro isn't set up for multiplayer. Very few store assets are, unfortunately.
Some good points - Right now data can be loaded in from xml, although it's a bit tricky, as it has to happen before the deserializer runs and loads all data into the inventories. There are json schema's that could be used (no official schema's, but there are solid open source projects, see http://json-schema.org/ )
Linking objects / prefabs / textures to the items as serialized data might be hard though. Right now data is serialized inside unity and everything is linked through GUID's. If something moves Unity will auto link it all together. Using XML or Json would break this, as models would have to be linked. Also, extra components would be harder to add; Not impossible, just a lot harder.
Hopeful is right on this, sadly the built-in unet isn't really production ready, lacks a lot of documentation and is hard to extend. Especially if you'd want multiple assets to work together over a single network solution.
Ignore uNet for the moment, since you've no way to control what we use for our real-time networking...could be Bolt or Photon or some random home brew. Leave the movement of data to our own implementation (it's our problem). Transactions such as swapping items to/from Inventory / Bank / in-hand, crafting, and skill growth don't need to be frame accurate. The UI activity happens client side, with a secondary query to the server for approval. There's no reason that couldn't be a WWW call, or handled through a secondary TCP connection that's created / dropped as needed if that fits with our game. With data transport out of the way, let's see about just getting strongly typed data in and out of the client at run time via XML with an XSD, where the tooling is much stronger.
Please see Part1 and Part2 blog posts about XML database integration. The source code is available on GitHub, and may need updating, but it's a starting point to consider.
Some good points, however, there's some downsides as well:
Moving to XML serialization would create 'soft links'. Moving any item prefab, or renaming it would break the reference to the XML file. Building an XML file on game build would be great, but as far as I know, Unity doesn't have a build pipeline that can easily be extended.
Complexity: Adding the XML handling would of course make the general usage and initialization quite a bit more complex
Network abstraction: As you said, not everyone is using Photon, Unet, etc. So making a router or some abstraction layer would be preferrable. However... (see next point)
Network validation: In most cases you'd want the client to validate the action client-sided, and let the server enforce + a callback if the action wasn't permitted. For example: The user moves an item from slot 0 to slot 1. The client validates this action and suggests it's ok to move the item. When done the client will send a request to the server (abstracted), the server will validate and notify the client if the move was valid or not. If not, a rollback has to happen. This is all fun an games, but abstracting this would make the implementation for the end-user very difficult (and very large, as you can image there would be plenty of use cases).
Synchronization and server based serialization: The server would have to save / load the user data, which now has to happen at the server end. Again, abstracting this would be very difficult, as people might implement their own item types, and might want to save custom serialization data. XML Could fit nicely in here though.
Flexibility: Many people want to do all sorts of things. A system like this won't be very flexible in it's set up, especially not with a heavy abstraction layer for the network system.
Singleplayer games would still have to make the (local)network roundtrip to avoid writing double code. Not a big issue, but it adds complexity in normal actions, as data is serialized and deserialized locally.
I agree with you, it'd be a very nice thing to have. However, the majority of Inventory Pro users aren't programmers and use things like PlayMaker to wire things together. Adding a lot of networking layers would not make this easier...
The way I did it in the past was just to have the XML file generated on the fly by a web server with PHP/MySQL database. XML would be read only, where as all the writing would go to a locks and keys system that would verify that the item was not being added by cheating. Adding the items would be through web, maybe BestHTTP or Unity www, by first doing a query to the database where all the items would reside and populate the values in the XML file for each of the users by username or a session identifier after they login.
Each time the inventory was opened then the XML file was read. Or it could just be read once on loading up, to reduce loading times and everything else would be dynamic client and written server side (maybe a master server using sockets) which then would update changes to the php/mysql database, so if your user drops out of the game, those changes are written by a server every 5-10 seconds. This would speed up things client side, instead of having to wait a 2-3 seconds for the xml to load into your GUI.
Hi, I'm having issues with UFPS integration. I check the bool in the integrations menu and try to add InventoryUFPSInputController to my player but it's not in the Unity menus so i find it in the project view and drag it to my player but I get this error:
I'm using Unity 5.5.0p3, UFPS 1.7.0 and Inventory Pro 2.5.4
Could you post the compiler errors you're having here please? + Stack trace
Hi, there are no compiler errors
Happy New Year, Jorisshh!
I have three things to discuss. Don't worry, all good.
1. We solved our problem with applying skinned mesh clothes, and your demo scene was as expected, extremely helpful. In the inspector for the player character "mesh" and in the inspector for the clothing article "mesh", both have a picker box selection for the root bone. If we understand this correctly, and we think we do, the "skinned mesh renderer" for both the body and the article of clothes must be set to the same "root bone." In the Inv Pro demo the boots and body skinned mesh renderers have their root bone picker boxes set to "EthanHips." This solved our problem.
2. While there is no official integration between Inv Pro and Invector's Third Person Controller, we have it working somewhat. Using advice from another user, we force TPC Invector to recognize a sword equipped by Inv Pro by adding a script to the sword that calls the TPC setup script when it instantiates. The Inv Pro script finds the sword in its mount point and treats it as if TPC Invector picked it up, itself. All this is good. What we need that maybe could come from Inv Pro is a reference box for our character, so that when an Inv Pro window is open, we make certain the TPC controller is disabled, and finally, we need the cursor forced to remain active at all times that an Inv. Pro window is open. What do you think?
3. We notice that the most popular item in the "what should I do next?" survey is multiplayer. After some consideration, we would like to see Photon integration. Why? For one, many other developers whose assets we are using have added Photon support. Also, being an indie developer and not a programmer, the easiest step up from our single player game to multiplayer will be Photon pun, on their cloud. Our humble opinion.
I've had similar issues before, and to resolve them I did the following:
Make sure you're using text based serialization with visible meta files (Tools > Project Settings > Editor). - This moves all serialized data to your main folder.
Delete the /Library folder
Start Unity again
This causes a complete re-import of the assets without the loss of any data (make sure to use visible meta files, otherwise you will lose your data!). This has resolved it for me before.
1. Yep, exactly right
2. You can use the controller callbacks for this: http://devdog.io/unity-assets/inventory-pro/documentation/2.5p/api/custom-character-controller - Simply implement the interface in a custom component, attach it to your player and you'll receive callbacks when a window blocks input; You can control the input blocking per window in Inventory Pro 2.5+
3. I was hoping for uNet to catch up, but sadly this hasn't happened yet. Using a unity system would, of course, be beneficial, as it would have official support, wouldn't require extra set up, etc. But I get your point, perhaps It's time I start learning some Photon
Thanks that did the trick, seems to be working fine now.
I am having an issue with easysave. I upgraded from 2.4.x to 2.5.4 and now cannot save anything. Can you advise me how to populate by script the 'File Name' field on the 'Easy save 2 collection saver loader script(EasySave2CollectionSaverLoader)' added to each of the collections ?