---
title: "Intermediate Scripting"
content_type: course
url: "https://learn.unity.com/course/intermediate-gameplay-scripting?language=en"
language: en
difficulty: intermediate
duration_minutes: 100
unity_version:
  - "2019.3"
supported_unity_versions:
  - name: "2019.3"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2019.3"
  - name: "2019.2"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2019.2"
  - name: "2019.1"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2019.1"
  - name: "2018.4"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2018.4"
  - name: "2018.3"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2018.3"
  - name: "2018.2"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2018.2"
  - name: "2018.1"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2018.1"
  - name: "2017.4"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2017.4"
  - name: "2017.3"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2017.3"
  - name: "2017.2"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2017.2"
  - name: "2017.1"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=2017.1"
  - name: "5.x"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=5.x"
  - name: "4.x"
    url: "https://learn.unity.com/course/intermediate-gameplay-scripting.md?language=en&version=4.x"
last_updated: "2026-08-04T14:20:52.000Z"
---

# Intermediate Scripting

This course provides essential training on intermediate level scripting via video tutorials.

## For educators

This collection of tutorials is an excellent reference point for teachers or students who want to review the higher-level conceptual concepts for developing with Unity. The tutorials included here are intended for people who already have experience with basic scripting and want to understand at a more conceptual level what they’re doing and what is possible with scripting. These skills and concepts are fundamental for anyone who is considering entering the field of computer science.

Suggested Prerequisites:

Before reviewing the tutorials here, it is recommended that you understand all of the concepts covered in “Beginner Scripting” and have completed at least one or two more complex projects or creator kids, such as:

- [3D Stealth Game: Haunted House](https://learn.unity.com/course/3d-stealth-game-haunted-house)
- [Creator Kit: RPG](https://learn.unity.com/project/creator-kit-rpg)
- [Creator Kit: Puzzle](https://learn.unity.com/project/creator-kit-puzzle)
- [Creator Kit: FPS](https://learn.unity.com/project/creator-kit-fps)

Below you can download a CSV outline and a Common Cartridge file for this course.

**CSV Outline**
Open the CSV outline in spreadsheet software (Excel, Google Sheets) for a summary of all content in the course, with links to each tutorial, exercise, and quiz.

**Common Cartridge**
Use the Common Cartridge file to import the course content into your Learning Management System (such as Canvas, Moodle, Blackboard, etc.). See instructions from your LMS provider for importing Common Cartridge files.

- [Intermediate Scripting 2019.3 Common Cartridge File](https://storage.googleapis.com/learn-platform-bucket-production/course/c6e2b808-d00f-5104-b9cf-5c7af631a69b/educatorMaterials.materials%5B_key==%2208d80987126c%22%5D.file/Intermediate_Scripting_2019_3_CommonCartridge_20251112_235142.imscc)

## Contents

- [Creating Properties](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/creating-properties?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/creating-properties.md?language=en&version=2019.3)) — Learn how to define properties that provide controlled access to member variables in a C# class.
- [Ternary Operator](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/ternary-operator?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/ternary-operator.md?language=en&version=2019.3)) — Use the ternary operator to write concise IF-ELSE conditions in your C# logic.
- [Statics](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/statics-l?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/statics-l.md?language=en&version=2019.3)) — Learn to declare and use static variables, methods, and classes in your Unity scripts.
- [Method Overloading ](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/method-overloading?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/method-overloading.md?language=en&version=2019.3)) — Learn to overload methods so you can define multiple implementations that share the same name.
- [Generics](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/generics?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/generics.md?language=en&version=2019.3)) — Learn to define and use generic methods and classes in C# to write reusable, type-safe code.
- [Inheritance](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/inheritance?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/inheritance.md?language=en&version=2019.3)) — Explore how inheritance lets you reuse code and model strong relationships between related classes.
- [Polymorphism and casting](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/polymorphism?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/polymorphism.md?language=en&version=2019.3)) — Learn how to use polymorphism, upcasting, and downcasting to share and extend behavior across inherited classes.
- [Member Hiding](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/member-hiding?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/member-hiding.md?language=en&version=2019.3)) — Explore how to hide base class members in derived classes using C# inheritance.
- [Overriding](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/overriding?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/overriding.md?language=en&version=2019.3)) — Practice overriding members of a base C# class with members of a derived class.
- [Interfaces](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/interfaces?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/interfaces.md?language=en&version=2019.3)) — Learn what interfaces are in C#, how to declare them, and how to implement and use them in classes.
- [Extension Methods ](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/extension-methods?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/extension-methods.md?language=en&version=2019.3)) — Learn how to define, implement, and call C# extension methods to extend existing types.
- [Namespaces](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/namespaces?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/namespaces.md?language=en&version=2019.3)) — Discover how to create, import, and nest namespaces to organize your C# types effectively in Unity projects.
- [Lists and Dictionaries ](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/lists-and-dictionaries?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/lists-and-dictionaries.md?language=en&version=2019.3)) — Learn to declare, populate, and access data using C# List and Dictionary collections.
- [Coroutines](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/coroutines?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/coroutines.md?language=en&version=2019.3)) — Learn to create coroutines and apply them to run complex behaviors over time in your application.
- [Quaternions](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/quaternions?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/quaternions.md?language=en&version=2019.3)) — Learn to use quaternions to control and manage GameObject rotation accurately in Unity.
- [Delegates](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/delegates?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/delegates.md?language=en&version=2019.3)) — Create and use delegates in C# scripts to add flexible, dynamic behavior to your Unity applications.
- [Attributes](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/attributes?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/attributes.md?language=en&version=2019.3)) — Learn the syntax for C# attributes and how to tag your code to convey extra behavior or metadata.
- [Events](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/events-uh?language=en&version=2019.3) ([md](https://learn.unity.com/course/intermediate-gameplay-scripting/tutorial/events-uh.md?language=en&version=2019.3)) — Create a dynamic broadcast-style messaging system in Unity by using Events for loose coupling.
