Open-source project
andrumak/MyBox avatar
andrumak/MyBox

andrumak/MyBox: twenty Unity attributes aimed at the inspector, not the runtime

MyBox is a set of attributes, tools and extensions for Unity

2,195 stars244 forksC#MIT

At a glance

What is it?
A C# package for Unity whose value is concentrated in a list of attributes that change how a field is drawn, validated or assigned, plus a handful of components and editor tools. Useful for cutting down custom inspector work, useless for build tooling, and documented in a wiki that lives in a different repository.
Who is it for?
Adopt MyBox if your friction is writing and maintaining custom inspectors, because ConditionalField, SearchableEnum and the ranged sliders are real work you would otherwise write per project. Leave it if you need a build system, a runtime framework or anything with a compatibility story, since the version lives in one line of package.json with no published releases behind it.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 132 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Every attribute on the list is a claim about what the inspector draws

The interesting thing about this list is that it is a list of drawing rules. Read the descriptions in order and a pattern appears. Some attributes filter what you can type: CharactersRange restricts a string field to a set of characters, and RegexString restricts it by regular expression. Some validate what you enter: MaxValue, MinValue and PositiveValueOnly check numbers and vectors, MustBeAssigned checks whether a field has been set at all, and MinMaxRange with RangedFloat and RangedInt turns two bounds into a single ranged slider. Some change presentation without changing data: Foldout groups fields, Separator draws a rule with or without a title, OverrideLabel changes the visible field name, and ReadOnly draws the property with a disabled GUI. The rest change behaviour, and these are the ones with the most leverage. AutoProperty assigns fields automatically, ButtonMethod puts a button in the inspector that invokes a method, and ConditionalField shows or hides a property depending on the value of another one. RequireTag and RequireLayer set a tag or layer for you, and DisplayInspector renders one inspector inside another. None of that is runtime logic. It is all about the editor surface, which is why the package is cheap to adopt and cheap to abandon.

Four source folders and one assembly definition, which is a package layout

The top-level listing explains how the thing is packaged. There are four directories with their Unity meta files: Attributes, Extensions, Tools and Types. Next to them sit MyBox.asmdef and package.json, plus README.md, CHANGELOG.md, TODO.md and LICENSE.md. The four folders line up with the four sections the documentation is organised into, which tells you the split is by audience rather than by technical layer: attributes are things you put on your fields, types are components and serializable containers, tools are editor utilities, and extensions are the shared code those three lean on. The single asmdef is the more consequential detail. One assembly definition means one compiled unit rather than a set of loose scripts dropped into an Assets folder, which is what makes the set loadable as a package instead of as a pile of files you copy into every project. The meta files on the documentation are the giveaway that this repository is also maintained as a Unity project. Unity generates a .meta for every asset it sees, and having one for README.md and LICENSE.md means the files pass through the editor even though Unity has no use for them.

Installing from openupm, and where the instructions are not

The manifest is short and it tells you everything the install depends on:

json
  "name": "com.domybest.mybox",
  "version": "1.8.0",
  "displayName": "MyBox",
  "description": "MyBox is a set of attributes, tools and extensions for Unity",

  "unity": "2018.3",
  "dependencies": {
      "com.unity.ugui": "1.0.0"
  },

So the package resolves by the name com.domybest.mybox, it declares 2018.3 as its Unity version, and it pulls exactly one dependency, the uGUI package at 1.0.0. A single UI dependency for a package full of inspector widgets is the right shape, and it means the install is not going to fight you over version ranges. What the manifest does not contain is any installation instruction, and neither does the README, which links an installation heading straight to a wiki page. That is the whole first-use path: read the manifest to know what you are about to install, then leave the repository for a wiki to find out how. The version string is the only machine-readable version anywhere in this project, and with no published releases the manifest line is what you will diff against when you upgrade.

Three names for one project, and the docs belong to a different repository

Count the names. The repository is andrumak/MyBox. The package identifier is com.domybest.mybox. The wiki that holds the installation page, the attribute documentation and the type documentation is on Deadcows/MyBox, and the licence badge in the README points at a LICENSE.md in that same Deadcows repository. The homepage is deadcow.ru, and the author field in the manifest names Andrew Rumak with a deadcow.ru address. One project, three naming systems, and the documentation lives outside the repository you cloned. This is a small thing in principle and a real cost in practice. Every link in the README that is supposed to teach you something resolves to a different repository, so an offline checkout of andrumak/MyBox is, by design, not a self-contained reference. It also means the repository you are reading may not be the repository the maintainer updates first, and there is nothing in the listing that resolves which is canonical. If you are evaluating this package, the wiki and this repository are two separate things to check, not one.

CHANGELOG.md, TODO.md, and what a 1.8.0 with no releases means for upgrading

There are no GitHub releases here, so the version history lives in a file. CHANGELOG.md at the root is the upgrade signal, and TODO.md is the forward-looking one; both exist as plain files with meta siblings, which is a slightly wasteful consequence of keeping a package inside a Unity project. The licence is MIT, recorded in LICENSE.md, and for a package whose value is that you can paste an attribute onto your own field, that is the part worth checking first. On maintenance, the repository is not archived and the last push was on 2026-05-22, so the work is current as of that date, but there is a difference between current and versioned. One line in a JSON file is the entire version contract, and a package manager will resolve it for you while a version bump with no release note leaves you guessing what changed. For a package this small, that is a tolerable risk. For a package that had rewritten its inspector layer or moved to a newer Unity attribute model, it would not be, and the way to find out is to read the changelog before the upgrade rather than after.

Where the attribute list stops and you write the code yourself

The types section shows the same philosophy applied to runtime code, and it is worth being precise about which parts are conveniences. MyDictionary is a serializable dictionary, Reorderable Collections gives you reordering in the inspector, Guid generates unique and persistent IDs, CoroutineGroup wraps several coroutines so you can tell when all of them finish, and Optional makes a value optionally assignable. Billboard forces an object to face the camera, ColliderGizmo highlights colliders in the scene view, and ColliderToMesh generates a mesh from polygon collider data at runtime. Those are all small components you could write, and that is precisely the point: the package is an accumulation of things each of which is under a day of work. The limitation follows from the design. There is no editor framework, no build pipeline, no test tooling and no abstraction layer, so a project that needs behaviour none of these attributes describe is back to writing drawing code by hand, and there is no extension point in the listing that suggests the package offers one. The alternative is not another asset store package; it is your own inspector code, which is what this list exists to avoid.

Editorial conclusion

Adopt MyBox if your friction is writing and maintaining custom inspectors, because ConditionalField, SearchableEnum and the ranged sliders are real work you would otherwise write per project. Leave it if you need a build system, a runtime framework or anything with a compatibility story, since the version lives in one line of package.json with no published releases behind it. Before you commit, open package.json and confirm the declared 2018.3 Unity version against your own project, and follow the installation link knowing that it resolves to the Deadcows/MyBox wiki rather than this repository. If you do adopt it, the upgrade signal you have to track is CHANGELOG.md, and the last push here was on 2026-05-22.

Frequently asked questions

How do I install andrumak/MyBox in a Unity project?

The README does not document the steps, it links an installation heading to a wiki page hosted in the Deadcows/MyBox repository. The manifest gives the identity the install resolves, the package name com.domybest.mybox at version 1.8.0, and the project is listed on openupm.

What Unity version does andrumak/MyBox require?

The manifest declares 2018.3 in its unity field, which is the version the package targets. It also declares a single dependency, com.unity.ugui at 1.0.0.

Does andrumak/MyBox have published releases I can install a specific version from?

No GitHub releases are published. The version lives in package.json as 1.8.0, and the history to read is CHANGELOG.md at the root of the repository.

What licence is andrumak/MyBox released under?

MIT, recorded in LICENSE.md at the root of the repository. That matters here because the typical use is copying individual attributes onto your own fields.

Does andrumak/MyBox provide build system or CI tooling for Unity?

Nothing in the listing or the documented feature set covers builds. The package consists of Attributes, Extensions, Tools and Types directories, covering inspector attributes, editor tools and components, with no build or test tooling among them.

Official sources

  1. andrumak/MyBox on GitHub
  2. Issues
  3. License: MIT
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/andrumak-mybox.svg)](https://hysenlabs.com/projects/andrumak-mybox)