Unity 2D Cheat Sheet

Last Updated: November 21, 2025

Project Setup

New Project > 2D Template
Create 2D project with correct settings
Edit > Project Settings > Graphics
Configure rendering settings
Window > Rendering > Lighting
Access lighting window
Edit > Project Settings > Physics 2D
Configure 2D physics settings

GameObject Basics

GameObject.Find("ObjectName")
Find GameObject by name
GameObject.FindWithTag("Player")
Find GameObject by tag
Instantiate(prefab, position, rotation)
Create GameObject instance
Destroy(gameObject)
Destroy GameObject
Destroy(gameObject, 2f)
Destroy after 2 seconds
gameObject.SetActive(false)
Deactivate GameObject
DontDestroyOnLoad(gameObject)
Persist between scenes

Transform & Position

transform.position
World position (Vector3)
transform.localPosition
Position relative to parent
transform.position = new Vector3(0, 0, 0)
Set position
transform.Translate(Vector3.right * speed * Time.deltaTime)
Move GameObject
transform.rotation
Rotation (Quaternion)
transform.Rotate(0, 0, 90)
Rotate 90 degrees on Z axis
transform.localScale
Scale (Vector3)
Vector3.Distance(pos1, pos2)
Distance between positions

Sprites

SpriteRenderer
Component to render sprites
GetComponent<SpriteRenderer>()
Get SpriteRenderer component
spriteRenderer.sprite = newSprite
Change sprite
spriteRenderer.color = Color.red
Tint sprite color
spriteRenderer.flipX = true
Flip sprite horizontally
spriteRenderer.sortingLayerName = "Foreground"
Set sorting layer
spriteRenderer.sortingOrder = 10
Set order in layer
Sprite Editor (Texture Import Settings)
Slice sprite sheets

Rigidbody2D (Physics)

Rigidbody2D rb
2D physics component
rb.velocity = new Vector2(x, y)
Set velocity directly
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse)
Apply force (jump)
rb.gravityScale = 1f
Gravity multiplier
rb.bodyType = RigidbodyType2D.Kinematic
Set to kinematic (no physics)
rb.constraints = RigidbodyConstraints2D.FreezeRotation
Lock rotation
rb.mass = 2f
Set object mass
rb.drag = 0.5f
Air resistance

Colliders 2D

BoxCollider2D
Rectangle collision box
CircleCollider2D
Circle collision
PolygonCollider2D
Custom shape collision
EdgeCollider2D
Line/edge collision
collider.isTrigger = true
Make collider a trigger
OnCollisionEnter2D(Collision2D collision)
Called when collision starts
OnTriggerEnter2D(Collider2D other)
Called when entering trigger
collision.gameObject.tag
Get tag of collided object

Input

Input.GetKey(KeyCode.Space)
Check if key is held down
Input.GetKeyDown(KeyCode.Space)
Check if key was just pressed
Input.GetKeyUp(KeyCode.Space)
Check if key was just released
Input.GetAxis("Horizontal")
Get horizontal input (-1 to 1)
Input.GetAxisRaw("Vertical")
Get vertical input (no smoothing)
Input.GetMouseButton(0)
Left mouse button (0=left, 1=right)
Input.mousePosition
Mouse position on screen
Camera.main.ScreenToWorldPoint(Input.mousePosition)
Convert mouse to world position

Animation

Animator
Component for animations
animator.SetBool("isRunning", true)
Set bool parameter
animator.SetFloat("speed", 5f)
Set float parameter
animator.SetTrigger("jump")
Trigger animation once
Window > Animation
Open Animation window
Window > Animator
Open Animator controller

MonoBehaviour Lifecycle

Awake()
Called when script instance loaded
Start()
Called before first frame update
Update()
Called every frame
FixedUpdate()
Called at fixed intervals (physics)
LateUpdate()
Called after all Updates
OnEnable()
Called when object enabled
OnDisable()
Called when object disabled
OnDestroy()
Called when object destroyed

Time

Time.deltaTime
Time since last frame (framerate independent)
Time.fixedDeltaTime
Fixed update interval
Time.time
Time since game started
Time.timeScale = 0.5f
Slow motion (0 = paused)

Audio

AudioSource
Component to play audio
audioSource.Play()
Play audio clip
audioSource.PlayOneShot(clip)
Play clip once (overlap allowed)
audioSource.Stop()
Stop playing audio
audioSource.volume = 0.5f
Set volume (0-1)
audioSource.loop = true
Loop audio

Camera

Camera.main
Get main camera
camera.orthographicSize = 5f
Set camera zoom (2D)
transform.position = target.position + offset
Follow player (camera script)
Vector3.Lerp(start, end, t)
Smooth camera movement

UI

using UnityEngine.UI;
Import UI namespace
Text textComponent
UI Text component
textComponent.text = "Score: " + score
Update UI text
Image imageComponent
UI Image component
Button buttonComponent
UI Button component
Canvas
Container for UI elements

Scene Management

using UnityEngine.SceneManagement;
Import scene management
SceneManager.LoadScene("MainMenu")
Load scene by name
SceneManager.LoadScene(0)
Load scene by index
SceneManager.GetActiveScene().name
Get current scene name

Coroutines

StartCoroutine(MyCoroutine())
Start coroutine
IEnumerator MyCoroutine()
Coroutine method signature
yield return new WaitForSeconds(2f)
Wait 2 seconds
yield return null
Wait one frame
StopCoroutine(coroutine)
Stop running coroutine
💡 Pro Tip: Use Time.deltaTime for smooth movement. Put physics code in FixedUpdate(). Use layers and sorting layers to control sprite rendering order!
← Back to Data Science & ML | Browse all categories | View all cheat sheets