What is Pause Controller?



What is Pause Controller?

EleckTek's Pause Controller is the easier and more flexible way to manage pausing in your current
project.  It is also targeted for non-programmers and users of PlayMaker.

Why do I want it?

Why? Because Unity3d does not have a real uniformed way to pause.  If you aren't a coder than you'll have a even tougher time getting things to pause or suspend in your current game or prototype.  Some might be using "Time.scaleTime" to control pausing but this can run into a few potential problems.  Also, some components need to create a "RealTime" tracking system to avoid being affect by scaleTime.  This isn't intuitive nor is it dependable; especially if you're using other packages within unity.  However, with Pause Controller, you aren't going you aren't changing scaleTime nor create a some "realtime" tracker.  In fact, the odds are high you aren't going to be touching any code for that matter!  Pause Controller uses a method that allows components to be coded in a more intuitive manner.  Thus making your project more understandable and reliable.

For Non-programmers:

EleckTek imagined many different approaches for integrating a reliable pause solution into your game, effortlessly.   Pause Controller provides several filtering options involving Layers, Tags, GameObjects, and types of MonoBehaviours.  There's no need to code or change a script in any way to get things stopping and going.  The only thing that needs to be done after activating your filters is setting the variable "activatePause" to true( checking the box).  Set it back to false to get the current group of GameObjects moving again.


Note:  It's expected that you're using a non coding solution in Unity to make game logic.  You will have to use that logic tool to change the value of "activatePause" to true and false. 

For Programmers:

Pause Controller provides flexibility through it's component interface and available APIs.  The API allows more filtering options and even can pausing an individual GameObject.  It has messaging options available through the inspector to let MonoBehaviours know that it is going to be paused and when it is being resumed.  A UnityEngine.Object can also be set in the interface and passed as a parameter to any messages being called.  There's also methods that easily allows particular MonoBehaviours to be excluded in the pausing process.


For PlayMaker Users:

Pausing your PlayMaker project is extremely simple.  A component named "PlayMakerFsmPause" simply needs to be attached to the same GameObject as PauseController.  After that, you're good to go. Nothing else to do or change.  


There's even an option to create one for you. 



Is There Anything Else? Yup, A Pause Controller Manager Window. 

In case you're making a project that has many different instances of PauseController, this window will help you sort through different PauseController components.  It has filters that that will only display PauseControllers that are active or have particular properties set.