Over 11,000 five-star assets

Rated by 85,000+ customers

Supported by 100,000+ forum members

Every asset moderated by Unity

1/10
Quarks are shared variables that live in your project. Create Quarks and assign them in the inspector or use a constant value to set the value directly in the inspector as normal.
Render pipeline compatibility
The Built-in Render Pipeline is Unity’s default render pipeline. It is a general-purpose render pipeline that has limited options for customization. The Universal Render Pipeline (URP) is a Scriptable Render Pipeline that is quick and easy to customize, and lets you create optimized graphics across a wide range of platforms. The High Definition Render Pipeline (HDRP) is a Scriptable Render Pipeline that lets you create cutting-edge, high-fidelity graphics on high-end platforms.
Unity VersionBuilt-inURPHDRP
6000.0.32f1
Compatible
Compatible
Compatible
2021.3.23f1
Compatible
Compatible
Compatible
Description

Inspired by the Unite Austin talk in 2017 by Ryan Hipple, this tool boosts you productivity massively. Create variables which exist across your whole project. By utilizing the two states; Constant, and Variable, you can easily test new values locally or globally by switching between them. It's a one-slider - larger explosions everywhere kinda thing.


Some Quarks have Mutators. These are simple operations done locally, only on that specific reference to the Quark. Use these to alter the resulting value relative to what the Quark's value is.


You can always be sure of what a Quark's value is with the preview provided behind the property and the Mutators.


This tool is presented with a basic, intuitive, Unity-like interface making it easy to learn and understand for anyone used to the Unity interface.

Technical details

As a designer:


Create Quarks.

Switch between using a Variable or a Constant value.

Add simple modifications to an assigned Variable to procedurally alter its value relative to Variable's value.

Tooltips - You can write a description on your Variable and it shows up in the tooltips where the Variable is used!


Variables you can create:

Animation Curve Variable

Boolean Variable (toggle)

Bounds Variable (box)

BoundsInt Variable (box, but each value must be a whole number)

Color Variable

Double Variable (high precision decimal number)

Float Variable (normal decimal number)

Prefab Variable

Gradient Variable

Int Variable (whole number)

Layer Mask Variable

Long Variable (large whole numbers)

Rect Variable (rectangles)

RectInt Variable (rectangles, but each value must be a whole number)

String Variable (text)

Vector2 Variable (two dimentional coordinate)

Vector2Int Variable (two dimentional coordinate, but each value must be a whole number)

Vector3 Variable (three dimentional coordinate)

Vector3Int Variable (three dimentional coordinate, but each value must be a whole number)

Vector4 Variable (four dimentional coordinate)


As a developer:


Empower your designers by using the ValueRef types instead of the actual type you're need.

Each ValueRef has implicit casts to their containing type and wrapping methods for the type making it easy to use and maintains readability of your code.

You can easily set starting values to your ValueRef fields just like you would with the normal types.

Use the VariableOnly attribute to constrain the usage of your ValueRefs to only Variables.


Supported types:

AnimationCurveRef

BooleanRef

BoundsRef

BoundsIntRef

ColorRef

DoubleRef

FloatRef

PrefabRef

GradientRef

IntRef

LayerMaskRef

LongRef

RectRef

RectIntRef

StringRef

Vector2Ref

Vector2IntRef

Vector3Ref

Vector3IntRef

Vector4Ref


If your project requires a ValueRef for an enum type you've defined, derive the EnumVariable, EnumRef and EnumRefDrawer types. This will allow you to use the derived EnumRef type in the same way as the other ValueRef types.


If your project requires a ValueRef for a specific type which derives from the UnityEngine.Object type, derive the ObjectVariable, ObjectRef and ObjectRefDrawer types. This will allow you to use the derived ObjectRef type in the same way as the other ValueRef types.


You can also create your own types by extending the ValueAsset, ValueRef and optionally the ValueRefDrawer types. This requires some knowledge about editor scripting, but some defaults are provided if you don't care about how it looks.


Some normal attributes have new names

Quarks

(not enough ratings)
4 users have favourite this asset
(4)
FREE
License type
File size
193.7 KB
Latest version
2.0.0
Latest release date
Jan 29, 2025
Original Unity version
2021.3.23 or higher
Quality assets
Over 11,000 five-star assets
Trusted
Rated by 85,000+ customers
Community support
Supported by 100,000+ forum members
Unity logo
Language
Feedback
Partners Program
Partners
USD
EUR
Copyright © 2025 Unity Technologies
All prices are exclusive of tax
USD
EUR