Claude-Code-Game-Studios/docs/engine-reference/unity/deprecated-apis.md
Donchitos ad540fe75d Game Studio Agent Architecture — complete setup (Phases 1-7)
48 coordinated Claude Code subagents for indie game development:
- 3 leadership agents (creative-director, technical-director, producer)
- 10 department leads (game-designer, lead-programmer, art-director, etc.)
- 23 specialist agents (gameplay, engine, AI, networking, UI, tools, etc.)
- 12 engine-specific agents (Godot, Unity, Unreal with sub-specialists)

Infrastructure:
- 34 skills (slash commands) for workflows, reviews, and team orchestration
- 8 hooks for commit validation, asset checks, session management
- 11 path-scoped rules enforcing domain-specific standards
- 28 templates for design docs, reports, and collaborative protocols

Key features:
- User-driven collaboration protocol (Question → Options → Decision → Draft → Approval)
- Engine version awareness with knowledge-gap detection (Godot 4.6 pinned)
- Phase gate system for development milestone validation
- CLAUDE.md kept under 80 lines with extracted doc imports

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:04:24 +11:00

4.3 KiB

Unity 6.3 LTS — Deprecated APIs

Last verified: 2026-02-13

Quick lookup table for deprecated APIs and their replacements. Format: Don't use XUse Y instead


Input

Deprecated Replacement Notes
Input.GetKey() Keyboard.current[Key.X].isPressed New Input System
Input.GetKeyDown() Keyboard.current[Key.X].wasPressedThisFrame New Input System
Input.GetMouseButton() Mouse.current.leftButton.isPressed New Input System
Input.GetAxis() InputAction callbacks New Input System
Input.mousePosition Mouse.current.position.ReadValue() New Input System

Migration: Install com.unity.inputsystem package.


UI

Deprecated Replacement Notes
Canvas (UGUI) UIDocument (UI Toolkit) UI Toolkit is now production-ready
Text component TextMeshPro or UI Toolkit Label Better rendering, fewer draw calls
Image component UI Toolkit VisualElement with background More flexible styling

Migration: UGUI still works, but UI Toolkit is recommended for new projects.


DOTS/Entities

Deprecated Replacement Notes
ComponentSystem ISystem (unmanaged) Entities 1.0+ complete rewrite
JobComponentSystem ISystem with IJobEntity Burst-compatible
GameObjectEntity Pure ECS workflow No GameObject conversion
EntityManager.CreateEntity() (old signature) EntityManager.CreateEntity(EntityArchetype) Explicit archetype
ComponentDataFromEntity<T> ComponentLookup<T> Entities 1.0+ rename

Migration: See Entities package migration guide. Major refactor required.


Rendering

Deprecated Replacement Notes
CommandBuffer.DrawMesh() RenderGraph API URP/HDRP render passes
OnPreRender() / OnPostRender() RenderPipelineManager callbacks SRP compatibility
Camera.SetReplacementShader() Custom render pass Not supported in SRP

Physics

Deprecated Replacement Notes
Physics.RaycastAll() Physics.RaycastNonAlloc() Avoid GC allocations
Rigidbody.velocity (direct write) Rigidbody.AddForce() Better physics stability

Asset Loading

Deprecated Replacement Notes
Resources.Load() Addressables Better memory control, async loading
Synchronous asset loading Addressables.LoadAssetAsync() Non-blocking

Animation

Deprecated Replacement Notes
Legacy Animation component Animator Controller Mecanim system
Animation.Play() Animator.Play() State machine control

Particles

Deprecated Replacement Notes
Legacy Particle System Visual Effect Graph GPU-accelerated, more performant

Scripting

Deprecated Replacement Notes
WWW class UnityWebRequest Modern async networking
Application.LoadLevel() SceneManager.LoadScene() Scene management

Platform-Specific

WebGL

Deprecated Replacement Notes
WebGL 1.0 WebGL 2.0 or WebGPU Unity 6+ defaults to WebGPU

Quick Migration Patterns

Input Example

// ❌ Deprecated
if (Input.GetKeyDown(KeyCode.Space)) {
    Jump();
}

// ✅ New Input System
using UnityEngine.InputSystem;
if (Keyboard.current.spaceKey.wasPressedThisFrame) {
    Jump();
}

Asset Loading Example

// ❌ Deprecated
var prefab = Resources.Load<GameObject>("Enemies/Goblin");

// ✅ Addressables
var handle = Addressables.LoadAssetAsync<GameObject>("Enemies/Goblin");
await handle.Task;
var prefab = handle.Result;

UI Example

// ❌ Deprecated (UGUI)
GetComponent<Text>().text = "Score: 100";

// ✅ TextMeshPro
GetComponent<TextMeshProUGUI>().text = "Score: 100";

// ✅ UI Toolkit
rootVisualElement.Q<Label>("score-label").text = "Score: 100";

Sources: