Jay McGavren's Journal


Unity Cheat Sheet

I’ve been reading Unity in Action: Multiplatform Game Development in C# by Joseph Hocking in my spare time. Like most of the Unity resources out there, it’s great as a tutorial, less so as a reference book.

I keep remembering that I saw how to do a thing somewhere in the book, and flipping back and forth trying to find it again. This is true for even the most basic stuff, like instantiating a prefab or accessing components of a GameObject. And then there’s additional stuff I learned in the docs and on forums. I needed a place I could refer back to for a quick refresher on all this.

In case you need that, too, I’ve created this post. Hope it’s helpful! It’s possible some of the details are technically incorrect; if you spot something let me know in the comments!

Scripting Essentials


Log a string to the Console.


Run a method in a coroutine.

yield return new WaitForSeconds(2.0f);

Call in a coroutine to return control to the spawning method, but receive it back after 2 seconds.


void Start() { // your code here }

Called when the parent GameObject is spawned.

void Update() { // your code here }

Called each frame while the parent GameObject is enabled.

void OnEnable() { // your code here }

Called at the time the parent GameObject gets enabled.

void OnDisable() { // your code here }

Called at the time the parent GameObject gets disabled.

Game Objects

public float speed = 3.0f;

Create an instance variable named speed that can be edited using the object inspector GUI.

private float _x = 0.0f;

Create a private instance variable named _x.

[SerializeField] private GameObject myPrefab;

Create a private instance variable that you can nonetheless drag-and-drop object values into in the inspector.

Instantiate(myPrefab) as GameObject

Create a new instance of a prefab.


Get a reference to a MonoBehaviour subclass defined in a script attached to a GameObject, so you can access its public variables or call its methods.


Create a new sphere.


Mark a GameObject as destroyed.

Locations and Movement


The time since the last Update() call.

Random.Range(-10f, 10f)

Get a random number between -10 and 10.

transform.Rotate(x, y, z)

Rotate the GameObject in its local coordinates. Add Space.World as a 4th argument to use global coordinates.

transform.Translate(x, y, z)

Move the object.


Get the GameObject’s current y-axis (or x- or z-axis) rotation.

transform.localEulerAngles = new Vector3(x, y, z)

Set the GameObject’s rotation on all three axes.


SpriteRenderer renderer = myGameObject.GetComponent<SpriteRenderer>();

Get a game object’s SpriteRenderer.

renderer.color = new Color(1.0f, 0.0f, 1.0f);

Tint a sprite purple.

[SerializeField] private Sprite _mySprite;

void Start() {
    GetComponent<SpriteRenderer>().sprite = _mySprite;

Set the Sprite associated with a GameObject.


That’s all for now because that’s all I have need of. I’ll update this post as I discover more universally-used concepts. Let me know if you have suggestions!

comments powered by Disqus