Get Geek Addons in the Unity Asset Store!

List & Array Toolbox

Available in the Unity Asset Store!

The bundle extends the Unity Editor and enables:

  • copying selected game objects or assets to the Geek Clipboard, ordered in different ways (e.g. by executing copy commands using the alphanumeric sort by asset file path or game object name),
  • sorting or reordering a range of array or list elements e.g. object references by asset path or as in the Hierarchy view, alphanumerically, by object name, in reverse order, shuffling etc.,
  • moving a range of array or list elements from one place to another within a given array or list,
  • shifting a range of array or list elements from one place to another within a given array or list (which are used like a ring buffer),
  • copying a range of array or list elements to the Geek Clipboard,
  • copying all array or list elements to the Geek Clipboard,
  • pasting array or list elements available in the Geek Clipboard into an array or list,
  • copying either a locked element range or unlocked range (based on a clicked index),
  • cutting a range of array or list elements and placing them in the Geek Clipboard,
  • inserting array or list elements available in the Geek Clipboard into an array or list at a clicked index,
  • appending array or list elements available in the Geek Clipboard after a clicked index in an array or list,
  • duplicating a range of array or list elements – once and many times,
  • deleting a range of array or list elements,
  • selecting game objects or any objects referenced by an array or list element range,
  • setting and resizing a range of array or list elements,
  • different operation modes such as a locked or unlocked element range mode,
  • locking all the list or array range. 

The addons included in the bundle extend the Unity Editor as described below.

Full source code included.

BUY | GEEK INSPECTOR ADDONS | SUPPORT FORUM | BUG REPORTS | FORUM

Geek Addons are Available in the Unity Asset Store!

List & Array Toolbox

Available in the Unity Asset Store!
Geek Addons

BUNDLE COMMANDS

This Geek Addons bundle includes the following families of commands described below: “GameObject Menu COPY”, Assets Menu COPY, “MOVE”, “SHIFT”, “COPY”, “PASTE”, “FORCE PASTE”, “CUT”, “DELETE”, “INSERT”, “APPEND”, “DUPLICATE”, “DUPLICATE Nx”, “SELECT”, “SORT or REORDER”, “RANGE”, “LOCK”, “COPY ALL” and “LOCK ALL” commands. You can access them in the 4AI Geek Context Menu appended to a standard Unity context menu related to array and list properties. The command names are shortened in this description usually.

Geek Addons

PACKAGE CONTENT

See the details below.

Geek Addons

GameObject Menu COPY COMMANDS

“GameObject Menu COPY” commands appear in the Hierarchy view and GameObject menu:

  • 4AI → COPY
  • 4AI Geek Copy (submenu)
    • COPY Selected GAME OBJECTS – HIERARCHY ORDER
    • COPY Selection
    • COPY Selection – Alphanumeric SORT by NAME
    • COPY Selection – SORT by NAME
Geek Addons

Assets Menu COPY COMMANDS

“Assets Menu COPY” commands appear in the Assets menu:

  • 4AI → COPY
  • 4AI Geek Copy (submenu)
    • COPY Selection – Alphanumeric SORT by ASSET PATH
    • COPY Selection – Alphanumeric SORT by NAME
    • COPY Selection
    • COPY Selection – SORT by ASSET PATH
    • COPY Selection – SORT by NAME
Geek Context Menu Addons

MOVE COMMANDS

  • MOVE <a, b> (submenus; appears when the range is unlocked)
    • MOVE <a, b> to array Start or End
    • MOVE <a, b> by N
  • MOVE <a, b> and LOCK (submenus; appears when the range is unlocked)
    • MOVE <a, b> to array Start or End
    • MOVE <a, b> by N
  • MOVE <START, END> LOCKED (submenus; appears when the range is locked)
    • MOVE <START, END> to array Start or End
    • MOVE <a, b> by N
  • MOVE <START, END> and UNLOCK (submenus; appears when the range is locked)
    • MOVE <a, b> to array Start or End
    • MOVE <a, b> by N
Geek Context Menu Addons

SHIFT COMMANDS

  • SHIFT <a, b> (submenus; appears when the range is unlocked)
    • SHIFT <a, b> to array Start or End
    • SHIFT <a, b> by N
  • SHIFT <a, b> and LOCK (submenus; appears when the range is unlocked)
    • SHIFT <a, b> to array Start or End
    • SHIFT <a, b> by N
  • SHIFT <START, END> LOCKED (submenus; appears when the range is locked)
    • SHIFT <START, END> to array Start or End
    • SHIFT <a, b> by N
  • SHIFT <START, END> and UNLOCK (submenus; appears when the range is locked)
    • SHIFT <a, b> to array Start or End
    • SHIFT <a, b> by N
Geek Context Menu Addons

COPY & COPY ALL COMMANDS

  • COPY range
  • COPY range LOCKED (appears when the range is locked)
  • COPY and LOCK range and SET (range) END
  • COPY ONE item
  • COPY ALL items
Geek Context Menu Addons

PASTE COMMANDS

  • PASTE (appears when the range is unlocked)
  • PASTE and LOCK range
  • FORCE PASTE
Geek Context Menu Addons

CUT COMMANDS

  • CUT range
  • CUT range LOCKED
Geek Context Menu Addons

DELETE COMMANDS

  • DELETE range
  • DELETE range LOCKED
Geek Context Menu Addons

INSERT COMMANDS

  • INSERT at [x] (appears when the range is unlocked)
  • INSERT at [x] and LOCK (appears when the range is locked)
  • INSERT and LOCK range at [x] (appears when the range is unlocked)
Geek Context Menu Addons

APPEND COMMANDS

  • APPEND at [x] (appears when the range is unlocked)
  • APPEND at [x] and LOCK (appears when the range is locked)
Geek Context Menu Addons

DUPLICATE & DUPLICATE Nx COMMANDS

  • DUPLICATE range
  • DUPLICATE range LOCKED
  • DUPLICATE N x range (submenus)
  • DUPLICATE N x range LOCKED (submenus)
Geek Context Menu Addons

SELECT COMMANDS

  • SELECT array GAME OBJECTS <a, b> (appears when the range is unlocked)
  • SELECT array GAME OBJECTS <START, END> LOCKED (appears when the range is locked)
  • SELECT array OBJECTS <a, b> (appears when the range is unlocked)
  • SELECT array OBJECTS <START, END> LOCKED (appears when the range is locked)
Geek Context Menu Addons

SORT or REORDER COMMANDS

  • SORT or REORDER <a, b> (submenu; appears when the range is unlocked)
    • HIERARCHY ORDER <a, b>
    • REVERSE HIERARCHY ORDER <a, b>
    • Alphanumeric SORT by ASSET PATH <a, b>
    • REVERSE Alphanumeric SORT by ASSET PATH <a, b>
    • Alphanumeric SORT <a, b>
    • REVERSE Alphanumeric SORT <a, b>
    • SORT <a, b>
    • SORT (Case Sensitive) <a, b>
    • SORT (CASE INSENSITIVE) <a, b>
    • REVERSE SORT <a, b>
    • REVERSE SORT (Case Sensitive) <a, b>
    • REVERSE SORT (CASE INSENSITIVE) <a, b>
    • SHUFFLE items <a, b>
    • REVERSE items <a, b>
  • SORT or REORDER <START, END> LOCKED (submenu; appears when the range is locked; the LOCKED version of the “SORT or REORDER” submenu)
Geek Context Menu Addons

RANGE COMMANDS

  • SET RANGE to R (submenus)
  • SET RANGE to R LOCKED (submenus)
  • RESIZE RANGE by R (submenus)
  • RESIZE RANGE by R LOCKED (submenus)
  • SET range START and LOCK
  • SET range END and LOCK
Geek Context Menu Addons

LOCK & LOCK ALL COMMANDS

  • LOCK range (appears when the range is unlocked)
  • UNLOCK range (appears when the range is locked)
  • RELOCK range (appears when the range is locked)
  • LOCK ALL
Geek Addons

HOW TO USE IT

For the purpose of this documentation the term “right-click” will be used as the operation opening a context menu.

You can open one of the context menus containing Geek Productivity Commands by:

  1. Right-clicking on an array or list element name (not a value). In some versions of Unity it is also possible to right-click on the array/list name itself – in this case it assumes that the clicked element index is zero. 4AI Geek Context Menu is appended to the standard Unity context menu items.
  2. Right-clicking on a selection in the Hierarchy View to open a context menu with COPY commands.
  3. Opening the GameObject menu to open a context menu with COPY commands.
  4. Right-clicking on a selection in the Assets view to open a context menu with COPY commands.
GameObject Menu Items
Assets Menu Items
Main GEEK CONTEXT MENU items (in UNLOCKED state)
Main GEEK CONTEXT MENU items (in LOCKED state)
SORT or REORDER LIST & ARRAY CONTEXT MENU for GameObjects (and their components)
SORT or REORDER LIST & ARRAY CONTEXT MENU for Objects (Assets)
SORT or REORDER LIST & ARRAY CONTEXT MENU for Strings
SORT or REORDER LIST & ARRAY CONTEXT MENU for Numbers
Geek Addons

ADDON DESCRIPTIONS

Below you can find descriptions of the current Geek Inspector Context Menu addons.

Common terms and identifiers simplifying the descriptions
  • clickedINDEX – clicked array or list item index,
  • START – current FIXED / LOCKED range start,
  • END – current FIXED / LOCKED range end,
  • R – current range size (equal to: END-START+1 in the LOCKED state or b-a+1 in the UNLOCKED state),
  • <a, b> – a range where a = clickedINDEX and (b – a + 1) = R
  • <START, END>, LOCKED range – a range locked to specific array or list elements that is modified if the position of elements change,
  • FIXED range – a range that was usually LOCKED earlier and UNLOCKED later,
  • regular range <a, b> – the range <a, b> where b >= a,
  • GEEK CLIPBOARD – internal Geek Inspector Addons clipboard.
Geek Context Menu Addons

GameObject Menu COMMANDS

4AI → COPY

Uses a default COPY command to copy game objects or selection using a specific object order. After the installation the default COPY command is: “COPY Selected GAME OBJECTS – HIERARCHY ORDER”. It can be changed by creating another class similar to DefaultGameObjectCopyExecutor, but this feature is not documented and is not guaranteed to be used in the future. Use it at your own risk.

4AI Geek Copy (submenu)
  • COPY Selected GAME OBJECTS – HIERARCHY ORDER
    COPY selected GAME OBJECTS to the Geek Clipboard, ordered as in the Hierarchy view.
  • COPY Selection
    COPY Selection to the Geek Clipboard. You can use it to copy both selected game objects and assets. If objects are selected one by one, copied objects usually have the selection order, but it is not guaranteed.
  • COPY Selection – Alphanumeric SORT by NAME

    COPY Selection to the Geek Clipboard. You can use it to copy both selected game objects and assets. Copied objects use “alphanumeric sort by name”, so any numbers in the name are not sorted as strings. For example, sorting the names “Abc1, Abc10, Abc2” will give “Abc1, Abc2, Abc10” because 1 < 2 < 10.

  • COPY Selection – SORT by NAME

    COPY Selection sorted by name to the Geek Clipboard. You can use it to copy both selected game objects and assets.

Geek Context Menu Addons

Assets Menu COMMANDS

4AI → COPY

Uses a default COPY command to copy selection (usually assets) using a specific object order. After the installation the default COPY command is: “COPY Selection – Alphanumeric SORT by ASSET PATH”. It can be changed by creating another class similar to DefaultAssetsCopyExecutor, but this feature is not documented and is not guaranteed to be used in the future. Use it at your own risk.

4AI Geek Copy (submenu)
  • COPY Selection – Alphanumeric SORT by ASSET PATH

    COPY Selection to the Geek Clipboard. You can use it to copy both selected game objects and assets. Copied objects use “alphanumeric sort by asset path”, so any numbers in the asset path are not sorted as strings. For example, sorting the asset paths “Dir/Abc1, Dir/Abc10, Dir/Abc2” will give “Dir/Abc1, Dir/Abc2, Dir/Abc10” because 1 < 2 < 10.

  • COPY Selection – Alphanumeric SORT by NAME

    COPY Selection to the Geek Clipboard. You can use it to copy both selected game objects and assets. Copied objects use “alphanumeric sort by name”, so any numbers in the name are not sorted as strings. For example, sorting the names “Abc1, Abc10, Abc2” will give “Abc1, Abc2, Abc10” because 1 < 2 < 10.

  • COPY Selection

    COPY Selection to the Geek Clipboard. You can use it to copy both selected game objects and assets. If objects are selected one by one, copied objects usually have the selection order, but it is not guaranteed.

  • COPY Selection – SORT by ASSET PATH

    COPY Selection sorted by asset path to the Geek Clipboard. You can use it to copy both selected game objects and assets.

  • COPY Selection – SORT by NAME

    COPY Selection sorted by name to the Geek Clipboard. You can use it to copy both selected game objects and assets.

Geek Context Menu Addons

LIST & ARRAY SINGLE COMMANDS

SET range START and LOCK

SET the array or list range START to clickedINDEX so that the final range is <clickedINDEX, END> and is LOCKED. See the LOCK range command for more information.

SET range END and LOCK

SET the array or list range END to clickedINDEX so that the final range is <START, clickedINDEX> and is LOCKED. See the LOCK range command for more information.

LOCK range

LOCK the range <clickedINDEX, R>. If you execute a command such as MOVE range by N or SHIFT range by N on a LOCKED range, the whole range will be moved or shifted by N too. When you have a LOCKED range, you can click on any array / list item and it will not have any effect on the range a given command will use. The range will be equal to <START, END>.

UNLOCK range

Unlocks the range, which means that the current range will be recalculated based on the current clickedINDEX and current range size R. If you click at a different array or list element, the range will start at that element. The related context menu item is available when the range is LOCKED.

RELOCK range

UNLOCK the range <START, END> and LOCK the range <clickedINDEX, clickedINDEX+R-1>, so that the new range size is unchanged, but the START is equal to clickedINDEX. The related context menu item is available when the range is LOCKED.

LOCK ALL

LOCK the whole range of a given array or list. If you execute a command such as MOVE range by N or SHIFT range by N on a LOCKED range, the whole range will be moved or shifted by N too. When you have a LOCKED range, you can click on any array / list item and it will not have any effect on the range a given command will use. The range will be equal to <START, END>.

COPY ALL items

COPY all array or list items to the GEEK CLIPBOARD.

COPY ALL and LOCK range

COPY all array or list items to the GEEK CLIPBOARD and LOCK the whole array / list range.

COPY ONE item

COPY ONE clicked item to the GEEK CLIPBOARD.

COPY range

COPY the range <clickedINDEX, clickedINDEX+R-1> to the GEEK CLIPBOARD.

COPY range LOCKED

COPY the LOCKED range <START, END> to the GEEK CLIPBOARD.

The related context menu item is available when the range is LOCKED.

COPY and LOCK range and SET (range) END

COPY the range <START, clickedINDEX> to the GEEK CLIPBOARD and LOCK it. Set the range END to clickedINDEX.

PASTE

PASTE the GEEK CLIPBOARD contents at the clickedINDEX. The pasted values will override the old ones. The whole content and the last item must fit in the array or list.

The related context menu item is available when the range is UNLOCKED.

PASTE and LOCK range

PASTE the GEEK CLIPBOARD contents at the clickedINDEX. The pasted values will override the old ones. Next, LOCK the pasted range. The whole content and the last item must fit in the array or list.

The related context menu item is available when the range is UNLOCKED.

FORCE PASTE

FORCE PASTE the GEEK CLIPBOARD contents at the clickedINDEX. The pasted values will override the old ones. If pasted content is too big for the array, its size will be increased accordingly.

CUT range

CUT the range <clickedINDEX, clickedINDEX+R-1> so that it is copied to the GEEK CLIPBOARD and deleted.

The related context menu item is available when the range is UNLOCKED. The calculated range must be regular and must fit in the array or list.

CUT range LOCKED

CUT the LOCKED range <START, END> so that it is copied to the GEEK CLIPBOARD and deleted.

The related context menu item is available when the range is LOCKED. The range must be regular and must fit in the array or list.

DELETE range

DELETE the range <clickedINDEX, clickedINDEX+R-1>.

The related context menu item is available when the range is UNLOCKED. The calculated range must be regular and must fit in the array or list.

DELETE range LOCKED

DELETE the LOCKED range <START, END>.

The related context menu item is available when the range is LOCKED. The range must be regular and must fit in the array or list.

INSERT at [x]

INSERT the GEEK CLIPBOARD contents at x=clickedINDEX and just before the item[clickedINDEX]. No items are overridden during this operation.

The related context menu item is available when the range is UNLOCKED.

INSERT at [x] and LOCK

INSERT the GEEK CLIPBOARD contents at the x=clickedINDEX and just before the item[clickedINDEX]. Next, lock the range of inserted elements. No items are overridden during this operation.

The related context menu item is available when the range is LOCKED.

INSERT and LOCK range at [x]

INSERT the GEEK CLIPBOARD contents at the x=clickedINDEX and just before the item[clickedINDEX]. Next, lock the range of inserted elements. No items are overridden during this operation.

The related context menu item is available when the range is UNLOCKED.

APPEND at [x]

APPEND the GEEK CLIPBOARD contents just after the x=clickedINDEX and just before the next item: clickedINDEX+1. No items are overridden during this operation.

The related context menu item is available when the range is UNLOCKED.

APPEND at [x] and LOCK

APPEND the GEEK CLIPBOARD contents just after the x=clickedINDEX and just before the next item: clickedINDEX+1. Next, lock the range of appended elements. No items are overridden during this operation.

The related context menu item is available when the range is LOCKED.

SELECT array GAME OBJECTS <a, b>

SELECT array GAME OBJECTS referenced directly or indirectly by elements in the range <clickedINDEX, clickedINDEX+R-1>.

The final range and the range end must fit in the array or list. The related context menu item is available when the range is UNLOCKED and element values are Unity game object or component references.

SELECT array GAME OBJECTS <START, END> LOCKED

SELECT array GAME OBJECTS referenced directly or indirectly by elements in the range <START, END>.

The final range and the range end must fit in the array or list. The related context menu item is available when the range is LOCKED and element values are Unity game object or component references.

SELECT array OBJECTS <a, b>

SELECT array OBJECTS referenced by elements in the range <clickedINDEX, clickedINDEX+R-1>.

The final range and the range end must fit in the array or list. The related context menu item is available when the range is UNLOCKED.

SELECT array OBJECTS <START, END> LOCKED

SELECT array OBJECTS referenced by elements in the range <START, END>.

The final range and the range end must fit in the array or list. The related context menu item is available when the range is LOCKED.

Geek Context Menu Addons

LIST & ARRAY SUBMENUS

SET RANGE to R (submenus)

SET range to <clickedINDEX, clickedINDEX+R-1> so that the range size equals R. R is chosen by one of the command submenu items.

SET RANGE to R LOCKED (submenus)

SET range to <START, START+R-1> so that the range size equals R. R is chosen by one of the command submenu items. Next, update the LOCKED range. The related context menu item is available when the range is LOCKED. See the LOCK range command for more information.

RESIZE RANGE by R (submenus)

RESIZE the range <clickedINDEX, clickedINDEX+currentR-1> by R, so that the final range is <clickedINDEX, clickedINDEX+currentR+R-1>, where currentR is the range size before the operation. R is chosen by one of the command submenu items.

RESIZE RANGE by R  LOCKED (submenus)

RESIZE the range <START, END> by R, so that the final range is <START, END+R>, where currentR is the range size before the operation. R is chosen by one of the command submenu items. Next, update the LOCKED range. The related context menu item is available when the range is LOCKED. See the LOCK range command for more information.

MOVE <a, b> (submenus)

MOVE the range <clickedINDEX, clickedINDEX+R-1>:

  • to the array Start or End.
  • by N.

The final range and the range end must fit in the array or list. N is chosen by one of the command submenu items.

MOVE <a, b> and LOCK (submenus)

MOVE the range <clickedINDEX, clickedINDEX+R-1>:

  • to the array Start or End.
  • by N.

Next, LOCK the range. The final range and the range end must fit in the array or list. N is chosen by one of the command submenu items. See the LOCK range command for more information.

MOVE <START, END> LOCKED (submenus)

MOVE the range <START, END>:

  • to the array Start or End.
  • by N.

Next, update the LOCKED range. The final range and the range end must fit in the array or list. N is chosen by one of the command submenu items. The related context menu item is available when the range is LOCKED. See the LOCK range command for more information.

MOVE <START, END> and UNLOCK (submenus)

MOVE the range <START, END>:

  • to the array Start or End.
  • by N.

Next, UNLOCK the range. The final range and the range end must fit in the array or list. N is chosen by one of the command submenu items. The related context menu item is available when the range is LOCKED.

SHIFT <a, b> (submenus)

SHIFT the range <clickedINDEX, clickedINDEX+R-1>:

  • to the array Start or End.
  • by N.

The range is treated as a ring buffer so the end of the range can be smaller than the start. N is chosen by one of the command submenu items.

SHIFT <a, b> and LOCK (submenus)

SHIFT the range <clickedINDEX, clickedINDEX+R-1>:

  • to the array Start or End.
  • by N.

Next, LOCK the range. The range is treated as a ring buffer so the end of the range can be smaller than the start. N is chosen by one of the command submenu items. See the LOCK range command for more information.

SHIFT <START, END> LOCKED (submenus)

SHIFT the range <START, END>:

  • to the array Start or End.
  • by N.

Next, update the LOCKED range. The range is treated as a ring buffer so the end of the range can be smaller than the start. N is chosen by one of the command submenu items. The related context menu item is available when the range is LOCKED. See the LOCK range command for more information.

SHIFT <START, END> and UNLOCK (submenus)

SHIFT the range <START, END>:

  • to the array Start or End.
  • by N.

Next, UNLOCK the range. The range is treated as a ring buffer so the end of the range can be smaller than the start. N is chosen by one of the command submenu items. The related context menu item is available when the range is LOCKED.

DUPLICATE N x range (submenus; duplicate N times)

DUPLICATE the range <clickedINDEX, clickedINDEX+R-1> N times. The whole content is appended just after the content being duplicated.

DUPLICATE N x range LOCKED (submenus; duplicate N times)

DUPLICATE the LOCKED range <START, END> N times. The whole content is appended just after the content being duplicated.

SORT or REORDER <a, b> (submenu)
    • HIERARCHY ORDER <a, b> – REORDER GameObject elements in the current range to be in the HIERARCHY ORDER (like in the Hierarchy view; appears for GameObject reference elements).
    • REVERSE HIERARCHY ORDER <a, b> – REORDER GameObject elements in the current range to be in the REVERSE HIERARCHY ORDER (like in the Hierarchy view; appears for GameObject reference elements).
    • Alphanumeric SORT by ASSET PATH <a, b> – SORT non-GameObject reference elements in the current range so that numbers in related ASSET PATHs are sorted accordingly (appears for non-GameObject reference elements).
    • REVERSE Alphanumeric SORT by ASSET PATH <a, b> – performs the “REVERSE Alphanumeric SORT operation” on non-GameObject reference elements in the current range so that numbers in related ASSET PATHs are sorted accordingly (appears for non-GameObject reference elements).
  • Alphanumeric SORT <a, b> – SORT elements in the current range so that numbers in strings / object names are sorted accordingly (appears for string / object-reference elements).
  • REVERSE Alphanumeric SORT <a, b> – performs the “REVERSE Alphanumeric SORT” operation on elements in the current range so that numbers in strings / object names are recognized and reverse sorted accordingly (appears for string / object-reference elements).
  • SORT <a, b> – SORT operation for “non-string / non-object-reference” elements (appears for non-string / non-object-reference elements).
  • SORT (Case Sensitive) <a, b> – performs the “Case Sensitive SORT by string / object name” operation on elements in the current range (appears for string / object-reference elements).
  • SORT (CASE INSENSITIVE) <a, b> – performs the “CASE INSENSITIVE SORT by string / object name” operation on elements in the current range (appears for string / object-reference elements).
  • REVERSE SORT <a, b> – REVERSE SORT operation for “non-string / non-object-reference” elements (appears for non-string / non-object-reference elements).
  • REVERSE SORT (Case Sensitive) <a, b> – performs the Case Sensitive REVERSE SORT operation on elements in the current range by string / object name (appears for string / object-reference elements).
  • REVERSE SORT (CASE INSENSITIVE) <a, b> – performs the CASE INSENSITIVE REVERSE SORT operation on elements in the current range so by string / object name (appears for string / object-reference elements).
  • SHUFFLE items <a, b> – SHUFFLE elements in the current range (reorder randomly).
  • REVERSE items <a, b> – REVERSE elements in the current range.
SORT or REORDER <START, END> LOCKED (submenu)

The LOCKED version of the “SORT or REORDER” submenu. It appears when the range is locked.

Get Geek Addons in the Unity Asset Store!

Geek Addons

Available in the Unity Asset Store!

Below you can find some screenshots related to the plugin “List & Array Toolbox”.

Get Geek Addons in the Unity Asset Store!

More information coming soon

Visit our products in the Unity Asset Store!
CONTUCT US

CONTACT FORM

SEND US A MESSAGE

    CONTACT US

    001-envelope

    4AI Limited

    Kemp House 160 City Road

    London, EC1V 2NX

    UNITED KINGDOM


    COMPANY NUMBER: 10976044

    4AI_50

    Our websites:
    4ai.io
    universe3d.com

    We serve customers around the world.

    Do you have questions about how we can help you or your company? Send us a message and we’ll get in touch shortly.