Search Unity

MultiTags Released!

Discussion in 'Assets and Asset Store' started by charmandermon, Sep 15, 2014.

  1. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Multi Tags is a reimplimentation of the Unity tag system to allow for multiple tags on the same game object.
    ====================
    60% off during December!
    ====================
    Current Price: $5

    Asset Store Link

    FEATURES
    • Multiple Tags on Gamebjects
    • Case insensitive tag checking
    • Extends unity tags
    • Fast
    • Add tags at runtime
    • Remove Tags at runtime
    • Easy to use in-editor inspector
    • Source Included
    • PlayMaker Support! 5 Custom Actions New in 2.0
    • MultiTags.FindWithMultiTag("string"); New in 2.0
    • MultiTags.FindGameObjectsWithMultiTag("string"); New in 2.0
    • MultiTags.FindGameObjectsWithMultiTagCount("string"); New in 2.0

    Screen Shot 2014-09-02 at 4.44.50 AM.png 46074912-98cf-4e0c-9f43-7beff1839f81_scaled.jpg 22649d43-b1cf-4daa-9b7a-dfc60cd470e2_scaled.jpg f73acf6c-7583-475f-9c44-46efe25d9cdf_scaled.jpg Screen Shot 2014-12-09 at 10.20.44 PM.png

    CODE EXAMPLES
    Code (CSharp):
    1. void OnTriggerEnter2D(Collider2D col)
    2. {
    3. /* gameObject.HasTag(string) will be the most common method
    4. use it anywhere you need to check the tag status. It will return
    5. True or False.
    6. */
    7.    if (col.gameObject.HasTag ("Enemy")) {
    8.  
    9.     //Magic here
    10.  
    11.     }
    12. }
    Code (CSharp):
    1. public void Start()
    2. {
    3. /*Note: During Awake() the standard unity tag is by default passed into the MultiTag List
    4. automatically if MultiTags Is attached to the GameObject. You also have full source to
    5. change it around anyway you like.
    6.  
    7. Note 2: When using AddTag() It will first check to see if the MultiTags Component
    8. is Attached to the Gameobject, If it returns Null it will add MultiTags Automatically to the
    9. GameObject and then pass through the new string to the list.
    10. The new Local tag list will most likely contain 2 tags, the first being
    11. the string you added and the second being the standard unity tag that
    12. gets added on awake. Unity standard Tags were added out of
    13. convenience to the developer, but feel free to ignore them.
    14.  
    15. */
    16.   gameObject.AddTag("Hero");
    17.  
    18. }
    Code (CSharp):
    1. public void Death()
    2. {
    3.  
    4.   gameObject.RemoveTag("Alive");
    5.  
    6. }
    Code (CSharp):
    1.  
    2.  
    3. /* 3 New Lookup Commands in 2.0 */
    4. public void Start()
    5. {
    6.  
    7. //Returns One GameObject
    8. GameObject go = MultiTags.FindWithMultiTag("ElderBeast");
    9.  
    10. //Returns GameObject Array - null if empty
    11. GameObject[] gos = MultiTags.FindGameObjectsWithMultiTag("Beast");
    12.  
    13. //Returns GameObject Array Size
    14. int amount = MultiTags.FindGameObjectsWithMultiTagCount("Beast");
    15.  
    16. }
    17.  
    18. }
    TRY BEFORE YOU BUY!
    If you would love to try out MultiTags to see if it is worth buying send me a PM and I will send you the full package download. :)

    SUPPORT
    Need help? Have Questions? Have sweet feature request ideas?

    Use this forum post, and/or
    PM: charmandermon
    Email: Dustin@base75DOTCOM
     
    Last edited: Dec 13, 2014
  2. b4c5p4c3

    b4c5p4c3

    Joined:
    Jan 4, 2013
    Posts:
    537
    This seems very useful.
     
  3. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Thanks! I am in the process of loading code snippets to show the API. I don't know how many times over the years I have needed this exact tool...as they say..."Necessity is the mother of invention".
     
  4. CatsPawGames

    CatsPawGames

    Joined:
    Jun 4, 2014
    Posts:
    443
    There's free solution that does the same thing: Tag frenzy
    Can you describe advantages of your asset over it?
     
    HellFireKoder likes this.
  5. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Never used Tag Frenzy, I will try it out and get back to you.
     
    HellFireKoder likes this.
  6. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Alrighty so I have gone in depth through Tag Frenzy. While they do appear similar I feel they are both different and unique packages and I really like one of the features of it.

    Pros of Tag Frenzy -
    Enum Tag Generator (really cool idea to help make coding easier - instead of using strings as tags)(I would like to add this soon)
    Cool Name

    Pros of MultiTags -
    Extends and uses unity's existing tag on a gameobject on awake
    Extremely intuitive editor interface
    Runtime Add and Remove Tags on objects
    Doesn't need the component attached to add a tag at runtime
    Can have tags exist on an object local list without existing on the Global list
    Tiny 11kb package
    Case insensitive tag searching (enemy == Enemy == ENemY)
    Quality support (I can't imagine a free asset getting much support, nothing against tag frenzy)
     
    HellFireKoder likes this.
  7. HellFireKoder

    HellFireKoder

    Joined:
    Feb 10, 2014
    Posts:
    9
    Hello, so I am considering this asset, but I am wondering, is there a new "FindGameObjectsWithTag()" function (what is it/syntax?), or does it work with the old one?

    Thank you :)
     
  8. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    That is a great suggestion MastrrKoder, I don't have any of the look ups in the API yet because I haven't had a need for them yet but it should be a cake walk to add in the next version!

    Also if anyone is interested I would be totally happy in letting anyone try out the package to see if they want to buy a license. Just PM me and I will send you a full copy. I fully believe it will be useful in many many applications. I wish more software was try before you buy.

    Thanks,
    Dustin
     
    HellFireKoder likes this.
  9. HellFireKoder

    HellFireKoder

    Joined:
    Feb 10, 2014
    Posts:
    9
    Alright, I'll be glad to see it in the future, and will probably buy this asset after it has that functionality :)

    I agree with you there, more stuff should have try before you buy functionality, I will probably PM to try before I buy it, but once it has FindGameObjectsWithTags() functionality, I might just outright buy it, it will then have everything I need from it :)

    Thank you very much, I look forward to the next update!
     
  10. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    FindGameObjectsWithTag
    Returns a list of active GameObjects tagged tag. Returns empty array if no GameObject was found.

    FindWithTag
    Returns one active GameObject tagged tag. Returns null if no GameObject was found.


    I assume you would like both ^ of these implemented. The first will return an array/list with no sorting. I can also have an option to search the scene for only existing MultiTag GameObjects or searching all combined GameObjects utilizing unity's tag system as well. Need anything else?
     
    HellFireKoder likes this.
  11. HellFireKoder

    HellFireKoder

    Joined:
    Feb 10, 2014
    Posts:
    9
    Yes, I would like both of those.
    That sounds good.
    Not that I can think of at the moment, that pretty much covers it I think.

    Thank you :)
     
  12. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    I think i have it done, going to do some testing and then get it submitted this week to the store. :)
     
    HellFireKoder likes this.
  13. HellFireKoder

    HellFireKoder

    Joined:
    Feb 10, 2014
    Posts:
    9
    Yay!

    Thanks for the update, I'm looking forward to it :)
     
  14. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    I assume I have to put the multitags folder into the plugins folder in order to using it with javascript. Is that correct ?
     
    Last edited: Sep 18, 2014
  15. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    No clue haven't used JS in 2 years in unity. But I bet that is all you have to do, mainly for the compilation order.
     
  16. HellFireKoder

    HellFireKoder

    Joined:
    Feb 10, 2014
    Posts:
    9
    Hello again,

    I am wondering if you have got the FindGameObjectsWithTag functionality submitted yet?
    If you have, would you please show an example of how it works with the MultiTags? (Might want to put the example in the main post text)

    Thank you :)
     
  17. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Had to be a dad this weekend...I have one small road block then I should be able to submit it really quick, I will post examples of both new methods as soon as I submit it!
     
    HellFireKoder likes this.
  18. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    Could you post, also, the asset documentation, please?
     
  19. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    You got it!
     
    HellFireKoder likes this.
  20. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    Where?
     
    HellFireKoder likes this.
  21. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    hi
    does this work with playmaker? so for example, if i do a find game object with tag action, will it work the same as if it were searching for a unity tag?

    many thanks
     
  22. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    I think this asset has been abandoned by the author.
     
  23. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    thats strange because its in the 24 hour sale and its only been released a short time ago - Version: 1 (Sep 18, 2014)
     
  24. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Definitely not abandoned by the author...lol?, it is spreading its own wings just fine. I haven't tested on playmaker yet but I do love playmaker and Don't see why not. Playmaker has a pretty fantastic get and set reflection engine. I may need to look at a deeper action system for it at some point if there is a need for it.

    The main reason I haven't updated the project other than the initial release is my team and I were busy getting one of our games submitted! Which should "fingers crossed" be approved at the end of this week by apple.
     
    Last edited: Dec 7, 2014
  25. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    5.png This game has multi tags heavily integrated with it! It really made things easy controlling the ongoing state of the ball.
     
  26. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    I guess it is time for me to put a bit of love back into Multi Tags and get the next version released. Anyone that is using the current version make sure and always back up your projects! That being said it should be a non breaking release. Just adding more API handlers to access the same data.
     
  27. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    if you have playmaker can you do a quick test just to see if it does actually work? because i tried another similar plugin and it wasn't suitable

    thanks
     
  28. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Just tested it and playmaker reflection is not able to get into the multitag component unfortunately, which means that I will need to write a few custom actions for it to work properly with it.

    If there is some demand for it I will make them should take 1 - 2 days of work to add support for playmaker.
     
  29. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    Hi there, I just bough the asset. What's the difference between local and global tags?
     
  30. Kiori

    Kiori

    Joined:
    Jun 25, 2014
    Posts:
    161
    Hi there, can you implement either a bool, or another function that returns the array with the objects ordered by ObjectName.
    I mean its simple to order the list yourself, but it wouldn't hurt to have that builtin.

    At any rate, how is the performance for this on heavy load? have you tested it on a scene with many many objects?
    I imagine the overhead is minimal or nearly non existent, but it is a script, being run on every gameobject, so its worth asking.

    If this is performant it will save my day btw. :)
     
    HellFireKoder likes this.
  31. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Awesome! well global means the current list of tags in the global list.
    Local are just which tags are only assigned to that object and that object only.
    Ill take some screenshots.

    Notice the "Poodle Dog" has the tags Poodle and Red assigned.
    But also you can see the global list for you convenience to easily add/remove tags available in the project.
    Screen Shot 2014-12-07 at 8.34.56 PM.png


    Now notice the second game object has two different local tags assigned but I have a much larger list to choose from.

    golden.png


    Hope that helps explain it.
     
  32. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352

    Your first message you may need to ask in a different way I am not entirely sure what you are asking for. If you can help lay out exactly what you need I would be glad to add anything to expand as long as it doesn't break current existing projects.

    As for performance. I have tested with hundreds of items at a time on iOS and it works really well. Originally I used integers as tags for super fast look up, but I could not tell a difference so I settled with allowing full string control. It does a lot of things internally that are clean in my opinion as I needed great performance on mobile.

    I assure you it will save your day. I built it out of raw need for my own projects. Please test away and if you find any issues then I can see what I can do to speed things up.

    One performance boost example I do case insensitive lookups and the way I do that is :

    //this is the bad old way --- item.Name.ToLower() == tagToCheck.ToLower()

    //this is the much faster way
    if (string.Equals(item.Name,tagToCheck,StringComparison.CurrentCultureIgnoreCase))
     
  33. Kiori

    Kiori

    Joined:
    Jun 25, 2014
    Posts:
    161
    you said that this:FindGameObjectsWithTag returns the objects in random order.(no sorting)

    My question was if you could make another one which returned them ordered by GameObjectName, or possibly any user specified criteria btw. ;)

    Like list order by GamObjName: elemnt1(tagblue),elemnt2(tagblue),elemnt3(tagblue).

    Where elemnt1 is an objects actual name and tagblue its tag.

    About performance my game will have thousands not hundreds of objects, so i'll have to test it in the future.
    I liked the asset so i bought it regardless.
     
    charmandermon and HellFireKoder like this.
  34. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    hi, there is always 'huge' demand for assets that add playmaker support, from my experience apps that add playmaker support often become the most popular, especially things like this that playmaker users will undoubtedly use.

    so can you let me know before the sale ends if you will add playmaker support, if so ill go ahead and buy it.

    thanks
     
    charmandermon likes this.
  35. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Hey guys, I just updated the price to extend the sale it should update as soon as unity approves the change. I dropped the price down to $5 for during the month of December. I will bang out the new features tonight and tomorrow.

    -Playmaker Support
    -FindGameObjectsWithTag Support (My current build on my computer has this pretty much down but will I will need to test it more. I will also add sorting options. That is a great idea.

    Thanks Everyone!
     
    HellFireKoder and Kiori like this.
  36. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    Thanks for the answer, got it.
     
    charmandermon likes this.
  37. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Ok so for the people interested in playmaker support the way I'm making it is it will be a zip in the package that can be opened as long as you have playmaker in your project. I am on the playmaker beta team as well so I am testing it in the latest versions. Should be really useful to people who use playmaker.
     
  38. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Good news got 3 new APIs done.

    --------------------
    GameObject go = MultiTags.FindWithMultiTag("ElderBeast");

    GameObject[] gos = MultiTags.FindGameObjectsWithMultiTag("Beast");

    int amount = MultiTags.FindGameObjectsWithMultiTagCount("Beast");
    --------------------

    They are fairly fast. I am afraid if I start doing any sorting on them that will slow them down. I will play around with sorting options.


    Now to finish playmaker!
     
    Last edited: Dec 10, 2014
    HellFireKoder likes this.
  39. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    PlayMaker Support Finished!
    Added 5 Actions
    I would have added a 6th action but playmaker doesn't support GameObject Arrays.
    I will submit this right now but it may take unity a week to approve it. Anyone want to try it out while it waits for approval?

    Screen Shot 2014-12-09 at 10.20.44 PM.png
     
  40. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    2.0 Submitted!
    Screen Shot 2014-12-09 at 11.01.51 PM.png
     
  41. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Added info on original post at top for info on how to do the new lookups. They are fairly straight forward.

    Thanks Everyone! Have a great Christmas!
     
  42. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    2.0 released!

    Make sure and grab it while it stays at $5 during December.
     
    HellFireKoder likes this.
  43. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    Thanks for the playmaker support. havent had chance to test yet but will do soon.

    cheers.
     
    charmandermon likes this.
  44. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    No problem, I tested it pretty well, worked without a hitch. Let me know if you need any other methods added.
     
  45. cybervaldez

    cybervaldez

    Joined:
    Aug 16, 2014
    Posts:
    87
    Almost went with All the Tags because of the way it displays it's tags, very clean!(like in websites). But yours got playmaker support which is more important (I also like how you made assigning very easy via the global tags).

    My biggest issue though:
    I do wish the custom editor gets updated with a better way of handling hows tags are displayed instead of a list. The problem with list is how it hogs down the drawer/panel too much. Most especially since tags get quite big too fast. Please make it super compact, it's just quite bloated. Otherwise, it's a 5 star for me :)

     
    charmandermon likes this.
  46. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Ya I do really like the way all the tags displays their tags, but their system doesn't come close to the power of multi tags. I will say this I am almost positive the custom editor graphics takes up boats load more unity power to render them vs the standard unity editor gui. I will look into making it sexier at some point.
     
    cybervaldez likes this.
  47. cybervaldez

    cybervaldez

    Joined:
    Aug 16, 2014
    Posts:
    87
    Oh sorry what I meant by bloat is how it takes up space in the inspector compared to inline tags :)
     
  48. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Oh ya I gotcha, and I agree.
     
  49. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    Multitags is free this month!
     
  50. cybervaldez

    cybervaldez

    Joined:
    Aug 16, 2014
    Posts:
    87
    Dang I just bought it haha, no regrets though! Looking forward to new updates!
     
    HellFireKoder likes this.