<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Unity Encyclopedia</title><description>A practical guide to 3D development in Unity 6 for web developers.</description><link>https://cadmus.page/</link><language>en</language><item><title>Why a Web Developer Should Learn Unity</title><link>https://cadmus.page/en/unity/01-intro/01-zachem/</link><guid isPermaLink="true">https://cadmus.page/en/unity/01-intro/01-zachem/</guid><description>What is familiar and what is new in Unity compared to frontend and backend development.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you write TypeScript/React in the browser and Node on the server, moving to Unity feels both
familiar and foreign. On one hand, there is a managed runtime (CLR/Mono/IL2CPP instead of V8),
strict typing (C# instead of TS), a component-based architecture (GameObject + Components instead of React),
redraw loops, and events. On the other hand, there is a real 3D scene, physics, GPU-based rendering, and an
asynchronous asset pipeline.&lt;/p&gt;&lt;p&gt;This encyclopedia is a practical introduction to 3D game development in Unity 6 for those who find it
easier to learn through familiar web abstractions.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>The Unity Stack and Its Ecosystem</title><link>https://cadmus.page/en/unity/01-intro/02-stack/</link><guid isPermaLink="true">https://cadmus.page/en/unity/01-intro/02-stack/</guid><description>Unity versions, languages, render pipelines, and the key tools and packages.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Unity ships several branches at the same time. A timeline of the key 6.x releases:&lt;/p&gt;&lt;p&gt;Unity 6.0 (October 2024) — the first major release under the new scheme (instead of ).
Unity 6.1 (March 2025) — public WebGPU backend, Deferred+ for URP, GPU Resident Drawer
 improvements, DOTS production-ready.
Unity 6.2 (August 2025) — UI Toolkit World Space experimental, Unity AI integrations, new
 Awaitable primitives.
Unity 6.3 LTS (released December 5, 2025) — the current recommended LTS, supported through December
 2027 (Enterprise / Industry licenses through December 2028). Here the legacy Input Manager…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>The Unity Editor, the Scene, and the Hierarchy</title><link>https://cadmus.page/en/unity/02-3d/01-editor-i-iyerarkhiya/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/01-editor-i-iyerarkhiya/</guid><description>The main editor windows, plus GameObject and Transform — the DOM of the 3D world.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Editor: where you&apos;ll look at the world from&lt;/p&gt;&lt;p&gt;The Unity Editor is an IDE for content. A set of dockable windows that you can drag around and save
as a layout. The key ones out of the box:&lt;/p&gt;&lt;p&gt;Scene View — the editor&apos;s 3D viewport. This is where you fly around and place objects.
Game View — what the player will see: the render from the active camera.
Hierarchy — the tree of objects in the current scene.
Project — the project&apos;s files (assets): models, textures, scripts, materials.
Inspector — the properties of the selected object. This is where you edit components.
Console — the log, errors, and…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Scripts and the MonoBehaviour Lifecycle</title><link>https://cadmus.page/en/unity/02-3d/02-monobehaviour/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/02-monobehaviour/</guid><description>How Unity calls your code — Awake, Start, Update, and everything in between.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;MonoBehaviour — the base class of your scripts&lt;/p&gt;&lt;p&gt;Any C# script of yours that is attached to a GameObject as a component inherits from .
This gives Unity entry points — methods with special names that the engine calls itself at the right moment.&lt;/p&gt;&lt;p&gt;The attribute makes a private field visible in the Inspector — it&apos;s the idiomatic way
to expose parameters. Public fields are also serialized by default, but that&apos;s considered bad form
(it breaks encapsulation).&lt;/p&gt;&lt;p&gt;The lifecycle — the order of calls&lt;/p&gt;&lt;p&gt;The full MonoBehaviour lifecycle is more involved, but here are the main methods, sorted by call
order:&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Input — the Input System and Legacy Input</title><link>https://cadmus.page/en/unity/02-3d/03-input/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/03-input/</guid><description>Keyboard, mouse, gamepad, and touch — two paths and why you should take the new one.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Unity currently has two input systems coexisting. The legacy class is old and simple. The Input System
package is new, powerful, and recommended for new projects.&lt;/p&gt;&lt;p&gt;Legacy Input — a quick start&lt;/p&gt;&lt;p&gt;The class is available out of the box. It&apos;s polled every frame in :&lt;/p&gt;&lt;p&gt;Buttons and axes are defined in Edit → Project Settings → Input Manager. It&apos;s a dictionary with default
values: &quot;Horizontal&quot;, &quot;Vertical&quot;, &quot;Jump&quot;, &quot;Fire1&quot;, &quot;Mouse X&quot;, and so on.&lt;/p&gt;&lt;p&gt;Input System — the modern path&lt;/p&gt;&lt;p&gt;The Input System is a package (installed via the Package Manager). The main ideas:&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Physics — Rigidbody, Collider and Collisions</title><link>https://cadmus.page/en/unity/02-3d/04-physics/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/04-physics/</guid><description>How to move objects with physics and react to collisions.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Unity uses NVIDIA&apos;s PhysX for 3D physics (for 2D — Box2D). This means: rigid body simulation,
collisions, forces, joints. All of it works out of the box; your job is to configure the components
correctly.&lt;/p&gt;&lt;p&gt;Three classes of participants&lt;/p&gt;&lt;p&gt;Static — a GameObject with a Collider but no Rigidbody. It does not move, ideal for walls,
 floors, static geometry.
Kinematic — a Rigidbody with . Moves only through your script (via
 / ), does not react to forces.
Dynamic — an ordinary Rigidbody. Reacts to gravity, forces, collisions.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Camera and Cinemachine</title><link>https://cadmus.page/en/unity/02-3d/05-camera-cinemachine/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/05-camera-cinemachine/</guid><description>First/third-person views, virtual cameras and smooth follow without the math.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A camera in Unity is an ordinary GameObject with a component. The main fields:&lt;/p&gt;&lt;p&gt;Projection — (3D, with perspective) or (no perspective; 2D/isometric).
FOV (Field of View) — the vertical field of view in degrees. The standard for FPS is 60–90°.
Clipping Planes: Near / Far — the distance to the near and far clipping planes. Anything
 closer than Near or farther than Far is not drawn. A large spread (for example, 0.01 ↔ 10000)
 degrades Z-buffer precision and leads to &quot;Z-fighting&quot; — flickering intersections. Try to keep
 .
Culling Mask — which object layers this camera draws.
Target Texture — ren…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Rendering, Materials and Shaders</title><link>https://cadmus.page/en/unity/02-3d/06-rendering/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/06-rendering/</guid><description>URP, Material vs Shader, Shader Graph, and why &quot;multicolored cubes&quot; are expensive.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;What actually draws a frame&lt;/p&gt;&lt;p&gt;Unity submits the scene to the GPU through a render pipeline — a sequence of passes: shadows,
opaque, transparent, postprocess. The exact steps depend on the chosen pipeline (see the chapter on
the stack):&lt;/p&gt;&lt;p&gt;Built-in RP — old, monolithic. Forward or Deferred rendering, your choice.
URP — Forward+ by default, cross-platform. This is the recommended choice now.
HDRP — Deferred + Forward, physically correct, for high-end PCs and consoles.&lt;/p&gt;&lt;p&gt;Mesh, Material, Shader — the three pillars&lt;/p&gt;&lt;p&gt;Mesh — geometry: arrays of vertices, normals, UV coordinates, indices. Imported from FB…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Lighting and Shadows</title><link>https://cadmus.page/en/unity/02-3d/07-lighting/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/07-lighting/</guid><description>Directional, Point, Spot — and why static light can be &quot;baked&quot; in advance.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Light in a 3D scene is what turns geometry from a flat silhouette into a three-dimensional picture.
Unity supports realtime and baked lighting, and in a real project they are combined.&lt;/p&gt;&lt;p&gt;Types of light sources&lt;/p&gt;&lt;p&gt;Directional Light — the sun. An infinitely distant source of parallel rays. One per scene is
 usually enough.
Point Light — a light bulb. Light in all directions from a point, with a falloff radius.
Spot Light — a flashlight. A cone from a point, with an angle and radius.
Area Light — a rectangular/disc source for baking (in realtime — only in HDRP).&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Animation and the Animator Controller</title><link>https://cadmus.page/en/unity/02-3d/08-animation/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/08-animation/</guid><description>Animation clips, state machine, blend trees — how a character doesn&apos;t look like a puppet.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In Unity, animation is not just Transform movement. It is the Mecanim system: Animation Clip +
Animator Controller (state machine) + parameters + transitions.&lt;/p&gt;&lt;p&gt;A Clip is a file with recorded property values over time. Sources of clips:&lt;/p&gt;&lt;p&gt;Imported from FBX — animations made in Blender/Maya/Motion Capture.
Recorded in the editor via the Animation window ().
Bought from the Asset Store (Mixamo and the like).&lt;/p&gt;&lt;p&gt;Each track of a clip is a path to a property relative to the root (for example, ) and a set of keyframes. Unity interpolates between the keys.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>3D Audio and AudioMixer</title><link>https://cadmus.page/en/unity/02-3d/09-audio/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/09-audio/</guid><description>AudioSource, AudioListener, 3D attenuation, and routing through the mixer.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sound in a 3D game isn&apos;t just an mp3 in the background. It&apos;s spatial audio: footsteps on the left, a gunshot behind you,
a whisper through a wall. Unity provides a built-in 3D audio engine that&apos;s sufficient for most tasks.&lt;/p&gt;&lt;p&gt;AudioListener — the &quot;ears&quot; in the scene. One per scene. By default it sits on the main Camera.
AudioSource — a sound source. Attached to a GameObject. Plays an AudioClip.
AudioClip — an asset containing an imported wav/mp3/ogg.&lt;/p&gt;&lt;p&gt;is great because it doesn&apos;t interrupt an already-playing sound — several footsteps can overlap.
A plain would reset the current playback.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>UI in a 3D Game — uGUI and UI Toolkit</title><link>https://cadmus.page/en/unity/02-3d/10-ui/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/10-ui/</guid><description>Canvas, RectTransform, EventSystem — and two competing UI systems.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In Unity 6, two UI systems coexist:&lt;/p&gt;&lt;p&gt;uGUI (Unity UI) — what Unity has used for years. Built on GameObjects and Canvas.
UI Toolkit — the newer system based on UXML + USS (analogous to HTML + CSS). For the editor it&apos;s already the standard,
 and for runtime it&apos;s stable and recommended for new UI, but many projects are still on uGUI.&lt;/p&gt;&lt;p&gt;We&apos;ll start with uGUI as the more widespread one, then cover UI Toolkit.&lt;/p&gt;&lt;p&gt;uGUI: Canvas and RectTransform&lt;/p&gt;&lt;p&gt;In uGUI, the UI lives inside a Canvas — a special GameObject. Child UI elements use a
RectTransform (an extended Transform with anchors, pivot, and size).&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Prefab and ScriptableObject</title><link>https://cadmus.page/en/unity/02-3d/11-prefabs-scriptables/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/11-prefabs-scriptables/</guid><description>Reusable objects and data-only assets — without them a project falls apart.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Prefab — a GameObject template&lt;/p&gt;&lt;p&gt;A Prefab is an asset that describes a GameObject with all of its components and values. From a single prefab you
can create any number of instances. Change the prefab — all instances change too
(except for explicit overrides on specific ones).&lt;/p&gt;&lt;p&gt;Assemble a GameObject in the scene with the components you need.
Drag it from the Hierarchy into a folder in the Project. A asset appears, and in the scene the object turns
 blue (instance of prefab).
To make further changes to the base prefab — double-click the asset (you&apos;ll enter &quot;Prefab Mode&quot;) or
 use &quot;Open&quot; in the ins…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Practice — a First-Person Controller</title><link>https://cadmus.page/en/unity/02-3d/12-fps-controller/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/12-fps-controller/</guid><description>We&apos;ll build a minimal FPS character with movement, jumping, and raycast shooting.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Let&apos;s put it all together. The goal is a playable first-person character: walking, head rotation, jumping,
shooting a ray at targets. We use for predictable control.&lt;/p&gt;&lt;p&gt;Why exactly like this:&lt;/p&gt;&lt;p&gt;rotates horizontally (yaw) — this also affects the movement direction.
rotates vertically (pitch) — separately from the body.
This separation simplifies the physics: the player&apos;s collider doesn&apos;t tilt when you look at the sky.&lt;/p&gt;&lt;p&gt;Player.cs — movement and looking&lt;/p&gt;&lt;p&gt;Health.cs — the damage receiver&lt;/p&gt;&lt;p&gt;Player GameObject: a Capsule, delete the MeshFilter+MeshRenderer (or hide them) — it&apos;s an
 &quot;invisible&quot; controller.…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Building and Optimization</title><link>https://cadmus.page/en/unity/02-3d/13-build-optimization/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/13-build-optimization/</guid><description>Build Settings, Profiler, the frame budget — from a finished prototype to a build.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The good news: making a build is usually one or two buttons. The bad news: optimization is endless
work, in which the big wins come from understanding exactly where time is being spent.&lt;/p&gt;&lt;p&gt;(in Unity 6 — the new name; previously ):&lt;/p&gt;&lt;p&gt;Platform — Windows / macOS / Linux / Android / iOS / WebGL / Console.
Scenes in Build — a list of scenes (by index). — the first one.
Build or Build And Run — builds to the specified folder.&lt;/p&gt;&lt;p&gt;Each platform has its own Player Settings ():&lt;/p&gt;&lt;p&gt;Product name, icon, splash screen.
Scripting Backend: Mono vs IL2CPP (see the chapter on the stack).
API Compatibility Level — .NET…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>NavMesh and AI — Pathfinding and a Simple AI Enemy</title><link>https://cadmus.page/en/unity/02-3d/14-navmesh-ai/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/14-navmesh-ai/</guid><description>Navigation Mesh, NavMeshAgent, a basic state machine for an enemy.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A 3D level rarely consists of a flat floor. An enemy has to go around a table, descend the stairs, find
the short path to the player, and not fall off a cliff. Computing all of this by hand with 
is a nightmare. Unity has NavMesh — a built-in navigation system that solves 90% of AI movement tasks
for free.&lt;/p&gt;&lt;p&gt;NavMesh — the &quot;walkability map&quot;&lt;/p&gt;&lt;p&gt;A NavMesh is baked, simplified floor geometry that agents know how to walk on. Unity scans
your scene and assembles a polygonal mesh of all surfaces you can stand on. From this
mesh it builds a graph for the pathfinding algorithm (A* under the hood).&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Particle System and VFX Graph</title><link>https://cadmus.page/en/unity/02-3d/15-particles-vfx/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/15-particles-vfx/</guid><description>Two visual-effects systems — when to choose each, and the basic techniques.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Visual effects in Unity are split into two large systems: the Built-in Particle System (often called
Shuriken) and VFX Graph (part of the Visual Effect Graph package). They coexist and don&apos;t
compete — each has its own use case.&lt;/p&gt;&lt;p&gt;Rough rule: if the effect is simple and needed on mobile — Particle System. If you need lots of
particles or a complex GPU simulation — VFX Graph.&lt;/p&gt;&lt;p&gt;Particle System — the main module&lt;/p&gt;&lt;p&gt;ParticleSystem is a component attached to a GameObject. In the Inspector — dozens of module sections you can
enable and disable. The key ones in Main:&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Timeline and Cutscenes</title><link>https://cadmus.page/en/unity/02-3d/16-timeline/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/16-timeline/</guid><description>Multi-track direction inside Unity — animation, sound, and effects by timecode.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A cutscene in an FPS, an intro before a boss, the ritual of opening a door — all of these play out by a
script, and writing it in code with timers is painful. Unity Timeline gives you a multi-track editor (like Premiere
or DaVinci), where you can lay out animations, sounds, object activation, and signals into scripts.&lt;/p&gt;&lt;p&gt;What Timeline and PlayableDirector are&lt;/p&gt;&lt;p&gt;Timeline Asset () — an asset that describes the tracks and clips.
PlayableDirector — a component on a GameObject that plays back a Timeline Asset. It has bindings:
 for each track you specify which scene object the effect is applied to.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Multiplayer — Netcode for GameObjects</title><link>https://cadmus.page/en/unity/02-3d/17-multiplayer-netcode/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/17-multiplayer-netcode/</guid><description>NetworkObject, NetworkVariable, ServerRpc/ClientRpc — the basics of a networked game.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Multiplayer is a separate universe of complexity, but Unity Netcode for GameObjects (NGO) greatly
simplifies getting started. It&apos;s Unity&apos;s official package for synchronizing GameObjects between the server and
clients in a client-server architecture.&lt;/p&gt;&lt;p&gt;NGO works in authoritative server mode (the server is the source of truth). The role options:&lt;/p&gt;&lt;p&gt;Server — a dedicated server with no local player. For competitive games and dedicated
 servers.
Host — a client that is also the server at the same time. Convenient for P2P and co-op.
Client — a connected player.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Addressables — Modern Asset Loading</title><link>https://cadmus.page/en/unity/02-3d/18-addressables/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/18-addressables/</guid><description>Asynchronous loading by address, a replacement for Resources.Load and AssetBundles.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Historically, Unity has had several ways to load an asset at runtime: ,
AssetBundles, and Addressables (). The latter is the recommended modern
path, and in new projects you should avoid the others.&lt;/p&gt;&lt;p&gt;What&apos;s wrong with Resources.Load&lt;/p&gt;&lt;p&gt;is a simple API: you fetch an asset from the folder by path.
It sounds convenient, but:&lt;/p&gt;&lt;p&gt;Everything in Resources goes into the build in full. Unity packs any asset in even
 if it isn&apos;t used in the current scene. This drastically bloats the build size.
No asynchronous loading out of the box. exists, but it doesn&apos;t solve the first
 problem.
No version management. Yo…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>HLSL Shaders in Unity in Depth</title><link>https://cadmus.page/en/unity/02-3d/19-hlsl-shaders/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/19-hlsl-shaders/</guid><description>ShaderLab + HLSL structure, vertex/fragment, custom URP shader.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Shader Graph covers most tasks, but sooner or later you need either something non-standard
or to understand what the graph generates under the hood. This chapter is a short introduction to
&quot;hand-written&quot; shaders for URP.&lt;/p&gt;&lt;p&gt;What a shader is in Unity&lt;/p&gt;&lt;p&gt;A shader in Unity is a file with a ShaderLab structure, inside which there are code blocks
in HLSL (or, previously, CG — the same syntax but with deprecated macros).&lt;/p&gt;&lt;p&gt;ShaderLab is the &quot;wrapper&quot;: declaration of properties, sub-shaders, passes, render states. HLSL is
the actual vertex and fragment code that runs on the GPU.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Practice — Third-person Platformer with a NavMesh Enemy</title><link>https://cadmus.page/en/unity/02-3d/20-tps-platformer/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/20-tps-platformer/</guid><description>Orbit camera, physics controller, double jump, coyote time, a chasing enemy, and checkpoints.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The second practical capstone — we build a third-person platformer: the character runs, jumps (with
double jump and coyote time), is chased by an AI enemy, and on death the player respawns at a checkpoint.
We use what we covered in previous chapters: Cinemachine, NavMesh, a physics-based Rigidbody, and a
ScriptableObject for the config.&lt;/p&gt;&lt;p&gt;PlayerMotor.cs — the physics controller&lt;/p&gt;&lt;p&gt;Cinemachine FreeLook — the camera&lt;/p&gt;&lt;p&gt;In Cinemachine 3, for an orbital third-person camera:&lt;/p&gt;&lt;p&gt;Create a CinemachineCamera in the scene.
Add a CinemachineOrbitalFollow component to it (formerly a separate CinemachineFreeLook)…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Splines and Procedural Paths</title><link>https://cadmus.page/en/unity/02-3d/21-splines/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/21-splines/</guid><description>The built-in Splines package in Unity 6, Bezier/B-Spline curves, Cinemachine SplineDolly, and spawning along a path.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Unity 6 has a built-in Splines package (). Previously, for rail cameras,
tracks, and AI patrols you had to write Bezier math by hand or install asset-store plugins.
Not anymore.&lt;/p&gt;&lt;p&gt;What the package provides&lt;/p&gt;&lt;p&gt;SplineContainer — a node container for one or more curves (Catmull-Rom, Bezier, B-Spline).
Spline Tool in the Scene View — you draw points with the mouse and drag tangents.
SplineExtrude — extrudes a mesh along a spline (a ready-made road/pipe).
SplineInstantiate — places prefabs along a curve (fences, posts, trees).
SplineAnimate — animates a Transform along a spline (moving platforms, AI o…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Job System and Burst — Parallelism and SIMD</title><link>https://cadmus.page/en/unity/02-3d/22-jobs-burst/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/22-jobs-burst/</guid><description>IJob, IJobParallelFor, the Burst compiler, NativeArray — a working path to high performance.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The main C# thread in Unity is a single thread. If computes a path for a thousand NPCs, the
FPS will drop. Job System + Burst is the official way to parallelize computation across all CPU cores
and get SIMD optimization through a special AOT compiler.&lt;/p&gt;&lt;p&gt;Job System — a package (; in Unity 6 it&apos;s core). An API for describing parallel
 tasks through / structs.
Burst — a package (). A high-performance AOT compiler: it takes your code and turns
 it into SIMD-optimized native code (via LLVM). Usually a ×5–×100 speedup.
Unity.Collections — , , etc. — GC-free structures that are passed
 between a Job a…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>2D in Unity 6 — Box2D v3 and Hybrid Scenes</title><link>https://cadmus.page/en/unity/02-3d/23-2d-and-box2d/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/23-2d-and-box2d/</guid><description>The 2D pipeline, Box2D v3 in Unity 6.3, multi-threaded physics, Hybrid 2D/3D Scenes.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This encyclopedia is about 3D, but Unity 6.3 LTS brought important 2D additions worth knowing about —
especially if you have a hybrid project (a 3D world + a 2D HUD/effects) or are prototyping a 2D feature
inside a 3D project.&lt;/p&gt;&lt;p&gt;Unity&apos;s 2D pipeline in brief&lt;/p&gt;&lt;p&gt;Historically, Unity has a separate 2D stack that runs in parallel with 3D:&lt;/p&gt;&lt;p&gt;Sprite Renderer — draws a sprite instead of a Mesh.
Tilemap — a powerful pattern of grid tiles with rule tiles.
2D Animation — riggable 2D skeletons (for cutout animation).
2D Light (in URP) — lighting for sprite scenes with Normal Map support.
Box2D for physics (se…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>XR / OpenXR — VR Applications in Unity</title><link>https://cadmus.page/en/unity/02-3d/24-xr-openxr/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/24-xr-openxr/</guid><description>XR Interaction Toolkit, OpenXR plugin, a basic VR scene with teleport, grab, and hand-tracking.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;VR/AR (Unity calls this XR — eXtended Reality) is a large universe of its own. Unity has
historically been one of the leaders in the VR-development market. This chapter is a short entry
point: what you need to know to run a basic scene on Meta Quest, Valve Index, or PCVR.&lt;/p&gt;&lt;p&gt;The XR stack in Unity 6&lt;/p&gt;&lt;p&gt;OpenXR Plugin () — the lower layer. OpenXR is an open standard from
 the Khronos Group for VR/AR. It replaced the Oculus SDK, SteamVR, Vive Wave, and others.
XR Interaction Toolkit (, XRI) — a high-level system:
 ray-pointers, grab, teleport, locomotion, UI interaction. The main package for the devel…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Editor Scripting — Extending the Unity Editor</title><link>https://cadmus.page/en/unity/02-3d/25-editor-scripting/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/25-editor-scripting/</guid><description>Custom Inspectors, EditorWindow, MenuItem, Gizmos, ExecuteAlways — extending the Unity Editor.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Unity Editor can be extended with C# code just like runtime logic. This lets you:
Build custom inspectors for a non-standard field-editing UI.
Create editor windows — standalone tool panels inside the editor.
Add menu items, gizmos, scene view handles.
Run your code in the editor (not only in Play Mode).&lt;/p&gt;&lt;p&gt;Editor scripts — the main rule&lt;/p&gt;&lt;p&gt;Editor scripts live in an folder (any nested one), and are compiled into a separate
assembly that is not included in the game build.&lt;/p&gt;&lt;p&gt;Inside Editor scripts you can use (this namespace is not available at
runtime).&lt;/p&gt;&lt;p&gt;Custom Inspector — override the UI&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Sentis — ML inference in Unity</title><link>https://cadmus.page/en/unity/02-3d/26-sentis/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/26-sentis/</guid><description>ONNX models in real time, IWorker, a practical image classification example.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sentis is a system built into Unity 6 for running machine learning in real time inside the
game. It replaced Barracuda (deprecated since 2023).&lt;/p&gt;&lt;p&gt;What you can do with Sentis:
Image classification from the camera (ResNet, MobileNet, YOLO).
NPC AI based on neural networks (decision-making, dialog generation).
Style transfer for post-process effects.
Pose estimation for motion capture without sensors.
Voice command recognition.&lt;/p&gt;&lt;p&gt;Installation and the basic idea&lt;/p&gt;&lt;p&gt;Package Manager → install Sentis (). As of Unity 6.1 it&apos;s officially GA.
Import an file (ONNX is an open format for exporting models from…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Cinemachine — Advanced Techniques</title><link>https://cadmus.page/en/unity/02-3d/27-cinemachine-deep/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/27-cinemachine-deep/</guid><description>Confiner, Impulse, Composer, FreeLook, blending, state-driven cameras — a deep dive into Cinemachine 3.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In the camera chapter we went over the basics of
Cinemachine 3. This chapter is a deep dive: 4 features you often need in a real project.&lt;/p&gt;&lt;p&gt;CinemachineConfiner — the camera won&apos;t fly off the level&lt;/p&gt;&lt;p&gt;The most common problem with a follow camera is that it can end up inside a wall or show an
out-of-bounds zone. The Confiner solves this:&lt;/p&gt;&lt;p&gt;CinemachineConfiner2D — confines the camera to a 2D polygon (for 2D / top-down).
CinemachineConfiner3D — confines it to a 3D Collider (BoxCollider, ConvexMesh).&lt;/p&gt;&lt;p&gt;Usage:
Add an Empty GameObject to the scene with a suitable Collider (for example, a the
 size of the…&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Animation Rigging — Procedural Animation and IK</title><link>https://cadmus.page/en/unity/02-3d/28-animation-rigging/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/28-animation-rigging/</guid><description>TwoBone IK, Aim Constraint, Multi-Parent — layering procedural layers over a ready-made animation.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The standard Animator plays back recorded animations. What do you do if:
The character needs to look at a dynamic target (an enemy, the mouse cursor).
A hand needs to hold a door handle while it turns.
A foot needs to touch uneven ground correctly (foot IK).&lt;/p&gt;&lt;p&gt;The Animation Rigging package () provides procedural constraints
that are applied on top of the Animator&apos;s regular animation.&lt;/p&gt;&lt;p&gt;The main idea — a riggable layer&lt;/p&gt;&lt;p&gt;collects all constraints and applies them after the Animator&apos;s base animation. The
constraints are separate GameObjects with a logic component.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Save / Load — Saving Progress</title><link>https://cadmus.page/en/unity/02-3d/29-save-load/</link><guid isPermaLink="true">https://cadmus.page/en/unity/02-3d/29-save-load/</guid><description>PlayerPrefs, JSON, binary serialization, encryption, save versioning.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Save/Load is a standard task in any game. Unity has 3 main approaches, and the choice depends on the
size and complexity of the data being saved.&lt;/p&gt;&lt;p&gt;PlayerPrefs — for settings&lt;/p&gt;&lt;p&gt;Where it&apos;s stored:
Windows: in the Registry.
macOS: .
Linux: .&lt;/p&gt;&lt;p&gt;PlayerPrefs is not encrypted. The user can open and edit it — that&apos;s OK for settings, but
insecure for game progress.&lt;/p&gt;&lt;p&gt;For structured data, use JSON. Unity has a built-in (with no external dependencies).&lt;/p&gt;&lt;p&gt;Application.persistentDataPath:
Windows: 
macOS: 
iOS: 
Android: (sandboxed)&lt;/p&gt;&lt;p&gt;Serializing a Dictionary with Newtonsoft&lt;/p&gt;&lt;p&gt;Encryption (or just obfuscation)&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item><item><title>Glossary — Unity Terms Through the Eyes of a Web Developer</title><link>https://cadmus.page/en/unity/03-glossary/01-terms/</link><guid isPermaLink="true">https://cadmus.page/en/unity/03-glossary/01-terms/</guid><description>Short definitions of key concepts with web analogs.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A consolidated list of terms that appear in the encyclopedia. Where appropriate — an analog from the
web.&lt;/p&gt;&lt;p&gt;Scene — a file describing the objects on a level/screen. Analog: a page (route) in an
SPA.&lt;/p&gt;&lt;p&gt;GameObject — an empty container with a mandatory . It does nothing on its own.
Analog: an empty in the DOM.&lt;/p&gt;&lt;p&gt;Component — a behavior attached to a GameObject. Mesh, Collider, your script. Analog: a set of
CSS + JS handlers attached to an element.&lt;/p&gt;&lt;p&gt;Prefab — a reusable GameObject template in the form of an asset. Analog: a React component that
is rendered in many places.&lt;/p&gt;</content:encoded><author>Konstantin Ryzhov</author></item></channel></rss>