Infinite Value Public API
Demo
namespace: IV_Demo
Here you can check every scripts used for the demo.
Scriptable Objects
ADisplayedScriptableObject Abstract class that will be inherited by both Upgrade and Income.
public class ADisplayedScriptableObject : ScriptableObject
Abstract class that will be inherited by both Upgrade and Income.
This will create a readable name from the file name and define an image and description to use when displaying the object in game.
Income Represent incomes that will be loaded by the DataBase manager.
public class Income : ADisplayedScriptableObject
Represent incomes that will be loaded by the DataBase manager.
Define the income power and price.
Upgrade Represent upgrades that will be loaded by the DataBase manager.
public class Upgrade : ADisplayedScriptableObject
Represent upgrades that will be loaded by the DataBase manager.
Define the upgrade target, power and price.
Managers
AManager Base abstract class for managers.
public class AManager<T> : MonoBehaviour where T: AManager<T>
Base abstract class for managers.
A manager instance can be accessed from a static context by a child class with the instance property.
Audio A simple Audio manager.
public class Audio : AManager<Audio>
A simple Audio manager.
It will play a single music on loop and sounds on multiples audio sources generated automatically.
You can add sounds by editing the Sound enum (+ the soundsCount const).
DataBase Game data loader.
public class DataBase : AManager<DataBase>
Game data loader.
This manager will load incomes, upgrades and text files using the Resources class.
It will then parse the text files to generate multiples small texts to type in the play zone.
Those can then be accessed from other objects.
GlobalModifier Apply global modifications to every scene Objects.
public class GlobalModifier : AManager<GlobalModifier>
Apply global modifications to every scene Objects.
This Manager is useful for making global changes to the scene before building the game.
Thing that apply to a lot of objects or that you could forget to toggle when working on the scene.
Inventory Store the player current state.
public class Inventory : AManager<Inventory>
Store the player current state.
This manager stores the player score, money, incomes and upgrades.
It also define the player current statistics.
SaveAndLoad A simple save and load system featuring an autosave and import/export functionality.
public class SaveAndLoad : AManager<SaveAndLoad>
A simple save and load system featuring an autosave and import/export functionality.
The data will be stored in a text file using readable JSON.
It features a cheat key system, this way the player can freely modify the JSON representation of the saved data but the game will know about it and mark the game as cheated.
UI Components
General
ButtonSound Component that will play a sound when a button is clicked.
public class ButtonSound : MonoBehaviour, IPointerClickHandler
Component that will play a sound when a button is clicked.
The sound is different if the button is interactable or not. No sound will be played if the button is disabled.
CopyRectTransformSize Copy another RectTransform size.
public class CopyRectTransformSize : MonoBehaviour
Copy another RectTransform size.
This will work in edit mode.
GraphicEffect Apply effects to a UI.Graphic component.
public class GraphicEffect : MonoBehaviour
Apply effects to a UI.Graphic component.
The effects are made using the CrossFadeColor method.
They can be a simple color change, a singular flash, or repeating flashes (blink).
There will be a smooth transition between effects.
HoldableButton Make a button holdeable.
public class HoldableButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
Make a button holdeable.
You can change how often OnClick event will be generated when holding a button.
SplitChilds Split 2 or 3 childs of an object automatically.
public class SplitChilds : MonoBehaviour
Split 2 or 3 childs of an object automatically.
It is to be used on the parent of UI objects set to full stretch.
It is similar to a LayoutGroup but doesn’t consider the content of the objects.
This will work in edit mode.
ToolTip Add a tooltip to an UI Object.
public class ToolTip : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
Add a tooltip to an UI Object.
This Component is used by the TooltipWindow to create tooltips appearing when hovering over the Object.
Main
CenterPanelChooser Component used by the left and right panels to show two sub-panels.
public class CenterPanelChooser : MonoBehaviour
Component used by the left and right panels to show two sub-panels.
PlayZone Main menu where the user can type to create games.
public class PlayZone : MonoBehaviour
Main menu where the user can type to create games.
IncomesDisplay Incomes shop.
public class IncomesDisplay : MonoBehaviour
Incomes shop.
UpgradesDisplay Upgrades shop.
public class UpgradesDisplay : MonoBehaviour
Upgrades shop.
CheatZone Menu where the player can cheat.
public class CheatZone : MonoBehaviour
Menu where the player can cheat.
If used, it will mark the game as cheated forever.
ScoreDisplay Display the current score (number of games created).
public class ScoreDisplay : MonoBehaviour
Display the current score (number of games created).
MoneyDisplay Display the current money the player have.
public class MoneyDisplay : MonoBehaviour
Display the current money the player have.
Options Options menu.
public class Options : MonoBehaviour
Options menu.
Includes audio volume change, a link to the Juste Tools website and buttons for opening the save menus.
Stats Display the current statistics of the player.
public class Stats : MonoBehaviour
Display the current statistics of the player.
Other
Borders Simple Component that will move the center border to the correct position.
public class Borders : MonoBehaviour
Simple Component that will move the center border to the correct position.
SaveWindows Import and export save menus.
public class SaveWindows : MonoBehaviour
Import and export save menus.
This Component will call the SaveAndLoad manager.
StartWindow Screen displayed at the start of the game.
public class StartWindow : MonoBehaviour
Screen displayed at the start of the game.
If the game is launched for the first time, it will display a tutorial. Otherwise it display how many games were generated while the demo was closed.
TooltipWindow Show a tooltip when hovering over an object.
public class TooltipWindow : MonoBehaviour
Show a tooltip when hovering over an object.
This script is called by Tooltip components to display a window with a text.
Utilities
Inspector Attributes Attributes used in the demo to easily customize the inspector.
GitHub source
public class ButtonParameterAttribute : PropertyAttribute
This attribute will create a button next to a field in the inspector that will call a given method with the field as it’s parameter.
You can use the type “InspectorTrigger” if your method doesn’t take any parameters. You can also input a button text as an argument (default is to use the method name).
public class ConditionalHideAttribute : PropertyAttribute
This attribute allow you to hide a field in the inspector depending on a condition.
public class PreviewSpriteAttribute : PropertyAttribute
This attribute allow you to preview a sprite in the inspector, use it with a Sprite field.
You can specify the preview sprite height as an argument.
public class ReadOnlyAttribute : PropertyAttribute
This attribute will show a field as readonly in the inspector.
MinMax Structure defining a range.
public struct MinMax
Structure defining a range between a min and a max.
CustomRandom Class defining a ponderated random method.
public static class CustomRandom
Class defining a ponderated random method.
Ponderated means each possible outcomes won’t have the same chance of being returned.
OnValidateUtility Class useful for creating an array of parameters for each enum values.
public static class OnValidateUtility
Class useful for creating an array of parameters for each enum values.
This should be used in OnValidate.
WebGLCopyAndPaste Class that provides support for copy and paste when building for WebGL.
GitHub source
Class that provides support for copy and paste when building for WebGL.