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

Zone Controller Pro

Discussion in 'Assets and Asset Store' started by JohnRossitter, Jan 18, 2016.

  1. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    PageHeader.png
    Zone Controller Free & Pro have both been published on the Asset Store!​

    Zone Controller Free / Pro are extensions for Unity that allows you to control the properties of ANY other Unity component at runtime. Create stunning and smooth transition effects on your favorite Unity components with just a few clicks.

    The setup is simple
    1) Define a zone as a 3 dimensional area.
    2) Drop a Game Object onto the zone's inspector.
    3) Select the properties you wish to control.
    4) Set the values for the selected properties.
    5) Click Play

    Download Zone Controller Free Here
    Download Zone Controller PRO here

    Here is a link to the Documentation:
    Documentation

    Zone Controller Demo:


    Zone Controller Tutorial:


    Built from the ground up on tested design patterns this tool utilizes .NET reflection and Generics to discover and expose metadata about all Unity components, and give you a GUI to manage them on a zone by zone basis for you scene.

    Zone Controller provides smooth transitions between current values and target values, so you can make a gradual change to a property as you enter and exit zones in your scene.

    Zone Controller is ideal for dynamically controlling:
    -Visual and Post Processing effects.
    -Controlling performance in low FPS regions
    -A.I. and behavior engine settings
    -Lighting scripts
    -Bubbling events to other scripts
    -Control Weather and Environmental systems
    -Make changes to shader materials as runtime.

    Zone Controller Pro comes with the source code in C# as well as API Guide for developers looking to integrate their components into it.

    Zone Controller Free comes with compiled DLL files only.

    If you would like to try Zone Controller out before your purchase it, there is also a Free Version that you can use. It has all of the basic functionality of Zone Controller Pro, but has some limitations and restrictions.

    Features in Pro that are NOT in the free version:
    - Support for more data types
    -Beta Access
    -Bonus Scripts
    -Source Code
    -Reflection based discovery of non Unity Types
    -2D collider support
    -Dynamic Method Invocation
    -Curve based transitions
    -Property Filtering
    -Hotkey based Zones
    -Control multiple Game Objects on Single Zone
    -Zone Timeouts
    -Free version only allows you to control 5 properties per Zone

    Below is a list of Plugins/Assets/Components which the publishers have made or are currently working on Certified integrations into Zone:

    Other Resources:
    Reddit Page
    YouTube Playlist
    Twitter


    Roadmap:
    Here is a brief roadmap of what I intend to do with Zone Controller in the Future
    V 1.0.1 Published March 4th 2016
    -Add support for working with Transform properties
    -Add a public notification/broadcast system to the master zone controller
    -Add Zone Name
    -Add support for Unity animator Core Object
    -Split up code that processes fields and properties separately
    -Add support for Zone specific Delay timers.
    -Add support for Serializable and nested classes when performing reflection
    -Add support for more core Unity Types
    -Fix issue with the execution order of methods
    -Add method support to some Unity Core Objects
    -Add support for ConstantForce components
    -Misc Bug and performance fixes
    -Do away with Gizmo based editor preview and make a special editor only shader to show collider geometry
    -change the HotKey system to allow the same key to be used for both on and off
    -Add typematic rate to the Hot Key system
    -add protection from usage of read only fields
    -add protection from usage of constant fields
    -add support for orthographic properties of Cameras
    -remove script requirement for collider when manually setting up a Zone Controller
    -Add ability to control Gizmo Color per zone controller
    -Make select all and select none work with methods and complex data types
    -UI denote difference between properties and fields
    auto detect tooltip metadata from classes and display that in the
    descriptions
    -added an option to specify the suggested min and max integer clamping values for int fields
    -Added a Create 2D Zone macro on the New Game Object Menu
    -Integrate Scroll Views into the large lists
    Fixed an issue where the "Enable this component" was not working on Some Unity Components
    Fixed issue where adding new items can cause the values of previously selected items to delete
    Modified the configuration for method invocation to have separate parameter stacks for entry and exit
    Added new Sample script to load scenes as an effect
    Removed dependency of Unity Standard Assets and Character Controls

    V 1.0.2 Date: Beta Testing Early April 2016
    -Add support for multiple individual zone triggers that can feed into the same zone controller and bubble events up.
    -Add support for Nested Zones and Zone blending modes.
    -Create a way to normalize transitions to be based on the ranges of all components being transformed (so if one component is only moving 2 floating points in the transition but another is doing over 1,000)
    -research support for additive scenes
    -Create a Zone setting that will NOT lerp the settings back once you leave the Zone
    -Create the ability to allow multiple triggers per Zone, so many NPCs can activate a Zone
    -Add support for basic conditional zone triggering
     
    Last edited: Mar 15, 2016
  2. paulojsam

    paulojsam

    Joined:
    Jul 2, 2012
    Posts:
    573
    me too this looks interesting
     
    JohnRossitter likes this.
  3. paulojsam

    paulojsam

    Joined:
    Jul 2, 2012
    Posts:
    573
    id like to test it to see if it fits the project i am working on
     
    JohnRossitter likes this.
  4. montyfi

    montyfi

    Joined:
    Aug 3, 2012
    Posts:
    548
    @icetec @BHS @vetasoft Check this out, I would be happy to see how powerful your assets may become with Zone!
     
    icetec and JohnRossitter like this.
  5. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    I would definitely be interested in testing this as well. I have scion and have added the zone addon to my wishlist but I would quite like to see how this would run with other stuff.
     
    JohnRossitter likes this.
  6. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Absolutely Montyfi, thanks for this info.I'll go in contact with John and check this out!
     
    montyfi and JohnRossitter like this.
  7. MS80

    MS80

    Joined:
    Mar 7, 2014
    Posts:
    346
    Thanks!

    I followed the instructions, read the docs and viewed the tutorials. I think Zone is really easy to use, I successfully created the first zones before reading the docs and only viewing one or two tutorial videos. I like the idea behind Zone, you can use it for many many different things and it just works with any components.

    Anyway, I have some issues / comments / questions:
    • entering a new zone while transition takes place will overwrite the default parameters! Default parameters should not be overwritten.
    • after refreshing "object to control" previous selected checkboxes are unchecked. Already selected checkboxes should be saved?! While adding new properties this felt little annoying...
    • is there a easy way to set zone properties without collision enter (via script)? I would like to use Zone as kind of preset manager, too (with transition)
    • as you can define zones with different properties, what will happen if someone enter / exit zones with partly different properties while transition takes place? Will Zone check all properties against it default ones?
    • a "set property values button" could be handy. f.e: set all fx / script parameters, select a zone and press the button => all pre-defined zone properties get its desired values automatically
    • string value support would be cool, too
    • do you think blending textures would be possible (2D / 3D textures) in the future? Probaly this is too expensive? Would be really cool if Zone could blend colorgrading LUTtextures, LensDirt textures, etc.
     
    JohnRossitter likes this.
  8. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    This is looking great.
     
  9. alexthomasren

    alexthomasren

    Joined:
    Dec 24, 2013
    Posts:
    11
    @JohnRossitter,

    I just recently purchased Scion, and would love to help with testing Zone, if you're still looking for users.

    Best,
    Alex
     
    JohnRossitter likes this.
  10. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,788
    @JohnRossitter, it looks cool :D
    Thanks for sharing it! :cool:
     
    JohnRossitter likes this.
  11. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Would love to test, if it's anything like scion version will be excellent.
     
    JohnRossitter likes this.
  12. alexthomasren

    alexthomasren

    Joined:
    Dec 24, 2013
    Posts:
    11
    Thanks for the quick reply, @JohnRossitter. I'll pick up the Scion edition then :).
     
    JohnRossitter likes this.
  13. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    I haven't had time to look at the new zone yet, I thjought it was more useful to check the Scion version I bought so I could get a review up. I hope to try the full zone out this weekend. Definitely interested in the 2D aspect of Zone, that alone would make me buy it. Quick uestion. The 2D colliders, couild these be made to react to the mouse cursor and not just a 2D character?
     
    JohnRossitter likes this.
  14. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Zone isn't limited to just cube triggers, is it? I bet there are going to be use-cases for spheres and custom colliders.

    If Zone presently IS set up just for cubes, maybe that can be a default setting and in other cases we can assign our own collider?
     
    JohnRossitter likes this.
  15. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Hey @hopeful.. I think it sets up cube by default but you can remove the square collider and replace with other colliders. I'm pretty sure I tested it with a sphere. I'll reload my test scene and post back if John hasn't responded before then. :)
     
    hopeful and JohnRossitter like this.
  16. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Got to a stopping point with some of my Gaia testing where I could load my Zone test scene. One of my Zones was a small oriental village made with M4K Asia Environment Kit. I created a Sphere Collider and deleted the Box Collider. At first I couldn't figure out why my Adventure Camera Rig was all screwed up and not snapping behind my character. I then realized I forgot to click the checkbox to make it a trigger. Redid all my settings I had before which was simply some enhancements to SSAO Pro, disabling Suimono Module, ModuleLib,ModuleFX, Object (infinite ocean), and Underwater Fog (both Suimono Underwater Fog and SSAO Pro were accessible by adding Main Camera, Module, ModuleLib and ModuleFX by adding SUIMONO_Module, and Suimono Object by adding SUIMONO_Ocean (originally SUIMONO_Object I think - it is the one where you have all your wave, color, and other settings for the specific water body).. Zone has an option for Active on every compoonent it can control. To disable Suimono, I basically just selected that control and left it unchecked meaning those modules are active when outside the village and deactivated when inside.

    The one thing to note, even though you have a sphere collider, Zone is still showing the square box but it doesn't really do much.. I just scaled it down to 1 and worked with my sphere collider... As my character spawned.. No ocean sounds and I was able to move through a village heavy with bamboo, poppies, and other grasses and plants along with furnished Asian buildings, statues and a variety of oriental red maple trees and other trees with little hinderance..

    Upon leaving the sphere, the ocean sounds came back, I could see my ocean in the distance on the horizon, and the colors popped a little less..

    So definitely not confined to a collider box! :)
     
    hopeful and JohnRossitter like this.
  17. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Hello,

    Yes as Shawn pointed out, Zone Controller does in fact work with ANY type of Unity Collider. Be that Box, Sphere, Capsule, or Mesh. It also works with 2D colliders. In fact you can bind as many Colliders as you like to a the GameObject which the Zone Controller script is attached to and it will use all of them.

    As Shawn pointed out, the Cube Preview in the Editor is a bit odd.
    This has been updated in version 1.0.1 which is due to release soon after 1.0 is approved on the store.
    In 1.0 is uses a standard Gizmos.DrawCube, but in 1.0.1 uses Draw Mesh instead, so it will draw a preview of the zone which is a true match to its actual geometry. It also fixes an issue where the Zone is rotated and Gizmo follows the rotation.

    Hopefully Unity will get Zone Controller Pro/Free approved today.
     
  18. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Wow! Awesome work John! Keep up the great work! :) I was going to message you and ask you if it would be hard to make the zone marker conform to shape of the collider! Glad you already figured it out!!! How will that work for a zone that has multiple colliders? Will it mark each collider area?
     
    JohnRossitter likes this.
  19. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    The code that draws the Gizmos on each Zone Controller will enumerate each collider on GameObject and render the mesh for that collider in the editor view. I even extended the Zone Master Controller and added a Color Picker control which allows you to pick the color you want to use on the Zone Controller Gizmos.
     
  20. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    lol... Ok.. You are probably going to hate me John... But.... Any chance the color selector can be on the Zone Config and not the master? That way we can pick different colors for different Zones?

    :)
     
    hopeful and JohnRossitter like this.
  21. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Completely do-able!
     
    hopeful and BackwoodsGaming like this.
  22. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    This looks amazing!! Btw, sorry I sort of dropped the ball on testing for you. I was testing three different assets, dealing with teenagers, a health issue, and trying to sort out my growing team. A few things slipped through the cracks. I know you had great testers though and your products certainly show that.

    I will buy this one when it is released! It looks great.
     
    JohnRossitter likes this.
  23. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thanks, John! I have three still at home..two teens and it does get crazy. lol Prom dresses become the most important thing in the world suddenly!!
     
  24. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    I have 3 boys, 2,4, and 8...It's Hell!
     
  25. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Just wait!!! I have only one son, three girls. Boys are easier and less expensive. lol
     
  26. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Aaaaand Done.

    Screen Shot 2016-02-12 at 9.40.47 AM.png
    Screen Shot 2016-02-12 at 9.44.27 AM.png
     
  27. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    For those of you interested, Tony Li @TonyLi, has patched Love/Hate to include integrated support for ZoneZontroller Pro. His next release will include that support, which you can read about here
     
    Teila and BackwoodsGaming like this.
  28. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    FYI, There is no hell quite like that of cyclical serialization in Unity's serialization system.
    Try to make a type that implements serialization which has member data of it's own type...I dare you :)
     
  29. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    I think @AdamGoodrich had to do something along those lines for the Gaia update he has been working on. At least I think that was one of the things he had to fight with... lol
     
  30. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Yeah, trying to find the best way to store metadata about Complex Objects by storing ZoneConfig instances inside of ZoneConfig instances. Unity Serialization is the best!
     
  31. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    Serialisation has cost me quite a lot of time - tried all sorts of things - pm me if you want and I will share my approach :)
     
    Last edited: Feb 12, 2016
    JohnRossitter likes this.
  32. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    LOL I may actually take you up on that sometime :)
    I think I had a breakthrough today though...things are actually restoring after play mode.
    UnityEngine.Objects will serialize but System.Objects do not....Lesson Learned
     
  33. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    I took two approaches - both have different intentions - in one I used a 3rd party open source json serialiser / deserialiser - works quite nicely - and in the other I wrote a serialiser that uses reflection to export objects as C# code blocks. Its a really cool technique.

    They were the approaches I kept - the others cost lots of time and ultimately didn't work due to the way Unity handles some things - frustrating facepalm moments after a week of coding!!
     
    GameTechnix and JohnRossitter like this.
  34. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    I made another class that had the same properties and called it ZoneConfig2 :)
     
    AdamGoodrich likes this.
  35. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    A little preview of Zone Controller working with Complex Objects.
    Here this Zone, had been handed a GameObject which has a component that has some simple types on it as well as a complex type/class. I selected some of the properties of the complex class and now the Zone UI is letting me set the properties on those fields too.
    Screen Shot 2016-02-12 at 4.24.52 PM.png
    Screen Shot 2016-02-12 at 4.22.40 PM.png
     
    montyfi and BackwoodsGaming like this.
  36. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    277
    woah this asset looks sick :)
    keeping my eye on it (especially after the love/hate sale)
     
    JohnRossitter likes this.
  37. iamsam

    iamsam

    Joined:
    Dec 22, 2013
    Posts:
    233
    Excellent work again John, looking forward to its release.
     
    JohnRossitter likes this.
  38. radimoto

    radimoto

    Joined:
    Aug 23, 2012
    Posts:
    257
    This looks super useful. Will definitely be picking this up.
     
    JohnRossitter likes this.
  39. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Thanks!
    Just waiting on the review team to go over it and put it up on the store.
    There is also a big update coming in soon after the initial release which will add even more amazing functionality.
     
    Teila, hopeful and BackwoodsGaming like this.
  40. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Thanks!
    Yeah me too...its been in the works for a while now, cant wait to finally get it out into the public
     
    BackwoodsGaming likes this.
  41. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    I think its going to be a very handy tool for many developers and in many circumstances.
    Not exactly a visual programming too, but a very valuable tool and asset to have on your side.
    Someone actually called it the GameGenie for assets, and I could not disagree :)
     
    BackwoodsGaming likes this.
  42. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    277
    any ETA when it will be available?
     
    JohnRossitter likes this.
  43. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    Presently at the mercy of the Asset Store review team.
    It was submitted for review back on Feb 8th, so it's a waiting game...but hopefully not too much longer :)
     
    BackwoodsGaming and Teila like this.
  44. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    I did request that they review and release both Free and Pro in tandem, so that may be the hold up...
     
  45. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    If the 9th was the first day they had to look at it, and if they took the 15th off as a holiday (there were no adds to the store that day), then today marks only the sixth working day they've had it for review.

    So it might be released today, or it might be a few more days. Ten working days for review would put it at the 23rd of February.
     
    JohnRossitter likes this.
  46. JohnRossitter

    JohnRossitter

    Joined:
    Dec 18, 2013
    Posts:
    1,027
    So instead of a release announcement, I will share a status update of 1.0.1.

    I have been working hard to expose data about complex types like Nested classes and other class types in Zone Controller. I had a lot of initial success, but it a major roadblock which took me like 4 days to overcome. Today was the day I was able to finally do something meaningful with that data. Now that I'm passed that hurdle, it has opened up a lot of new doors for Zone Controller.

    There has also been a major reconsideration as to how Zone Controller differentiates fields vs. properties, as under the hood the .NET framework and Reflection treat them quite differently. So the code you will get in 1.0.1 will be much faster at dealing with them at runtime.

    Presently there are only a handful of additional features Im going to put into 1.0.1, but they are big ones.
    As you can see in the pinned post at the top Im keeping a running list of tasks and the ones with the slash through them have already been completed.

    I am still planning to get nested zones out in 1.0.1, but that may get pushed to 1.0.2 depending on how much longer it takes me to finish my reflection code.

    Cheers!
     
  47. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
  48. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Well, at least we get to play with it until they approve it. :)
     
    JohnRossitter likes this.
  49. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Like on the yay, not the pro decline.. Wonder what in the world they did that caused problems?
     
    JohnRossitter likes this.
  50. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    No doubt some silly trivial thing that bothered one reviewer, while another one passed the free version right through. ;)