UnityLink is a package that provides functionality for integrating Unity and the Wolfram Language. UnityLink lets you make calls to Unity from the Wolfram Language and vice versa. For Wolfram Language users, UnityLink gives you access to Unity’s powerful gaming engine. With this engine, you can create real time lighting and physics simulations in both 2D and 3D. For Unity users, UnityLink turns the Wolfram Language into a tool for asset generation (meshes, audio, etc.) and automated testing.

Scene
Scenes can be used to create main menus, individual game levels, and anything else. In a full game, you can imagine having a scene for every menu and level, and then switching between them as needed. However, when starting you’ll just be working within a single scene. In the Wolfram Language, scenes are represented as UnityScene objects.
A scene contains all the objects of your game, called GameObjects.
Game Objects
GameObjects are the most important object in Unity. Everything from characters to lighting requires a GameObject to function. GameObjects exist within a hierarchical structure that can be thought of as a tree graph. Changing the position, rotation, or scale of a GameObject will also change that of its children. Complex elements of a game are often formed using many GameObjects. In the Wolfram Language, GameObjects are represented as UnityGameObjects.
On their own, GameObjects can’t do much. To have elements such as rendering, lighting, audio, and physics, you have to add components to your GameObjects.
Game Object Components
GameObject components allow you to add things like physics to a GameObject. By default, every GameObject has a Transform component that specifies its position, scale, and rotation within the scene. Other components can be added on to provide more functionality. For example, to create a light you would attach a Light component to a GameObject.
UnityLight[]
GameObjects will often have many components. For example, a GameObject that represents a cube would have a Transform to specify its position in the scene, a MeshFilter to hold a the cube mesh, a MeshRenderer to render the mesh, a BoxCollider to allow it to collide with other GameObjects, and a RigidBody to have it be affected by physics. You can even make your own Script components to control your game.
Each GameObject component is represented by a different object in the Wolfram Language. For example, the components Transform, Light, and Camera are represented by UnityTransform, UnityLight, and UnityCamera respectively.
UnityTransform[]
UnityCamera[]
Some components such as MeshFilters and AudioSources require an asset.
Assets
Assets are files that are used by GameObject components and are usually stored within the project’s Asset folder instead of in the scene itself. Assets include Meshes and AudioClips, which are represented in the Wolfram Language as UnityMesh and UnityAudioClip respectively.
UnityMesh[]
UnityAudioClip[]