
Begin Unity C# journey by learning core concepts—from variables and data types to functions and input events—and practice moving objects, physics, animations, and ui scripting toward your first Unity game.
Download unity hub and install the personal free version, choose a 2020 long-term support editor with visual studio 2019, then create a new 3d core project named unity scripting.
Navigate the Unity interface, master scene view controls, and use the hierarchy, inspector, project window, and console panes to manage assets and debug in your game.
Save and organize your Unity scene and scripts, link Visual Studio 2019 for IntelliSense, and understand start and update methods, curly braces, and basic script compilation.
Master the Unity console tab to view errors, warnings, and messages, log with debug.log, and manage output with clear on play and error pause.
Explore Unity C# event functions like start and update, wake, on enable, fixed update, input events, rendering, and debug log, and learn how their order affects code execution.
Explore Unity function timing from awake, on enable, and start to fixed update, update, late update, and on disable, and on destroy, and learn how to initialize health.
Discover how fixed update runs in the physics cycle, its time source and scale, and how to schedule actions with Invoke and InvokeRepeating.
Master coroutines in Unity by using yield to pause and delay actions, including quarantine routines, and sequencing waits for end of frame or fixed update alongside update cycles.
Explore Unity physics by using on collision enter, trigger enter, stay, and exit with rigid bodies and colliders, and apply a bouncy physics material to observe collisions and bounces.
Explore the difference between collision and trigger in Unity using on trigger enter, stay, and exit with a non physical trigger collider to send script messages.
Learn Unity input events by detecting mouse actions on a collider using on mouse over, down, up, enter, and exit, and handle key presses with get key down.
Learn to detect mouse inputs in Unity using GetMouseButton, GetMouseButtonDown, and GetMouseButtonUp, map buttons in the input manager, and bind them to keyboard or joystick controls.
Explore how Unity input axes map horizontal and vertical movement, using getAxis and getAxisRaw to read the arrow keys and wasd keys, handle gravity, dead zones, and sensitivity.
Learn to rotate a cube in Unity using horizontal input to modify the Y-axis via transform.Rotate with a Vector3 and a small float value.
Explore variables in Unity C#, creating a rotate speed float and naming it uniquely, then compare private and public access, editor exposure, and how instances override values in the inspector.
Learn how to manipulate variables in a Unity C# script using plus equals and minus equals to update rotate speed. Apply time.deltaTime for frame-rate independent movement, reset all variables to zero when input.getAxisRaw('Horizontal') is zero, and observe live updates with debug logs.
Transform rotation speeds from separate variables to a single float array in Unity, using rotator[i] with zero-based indexing to control x, y, and z rotations.
Learn the four common data types in Unity C#: floats, integers, booleans, and strings, and see how to declare, assign, and test them in variables using if statements.
Learn how to use if statements and else to control game logic in Unity, toggle booleans with mouse input, and compare integers and strings, including handling blank strings.
Explore how to combine multiple conditions inside a single if statement in Unity C# for beginners, using and, or, and else if to control game logic.
Master casting between data types in Unity C# by converting floats to integers, strings to numbers, and numbers to strings using explicit casts, int.Parse, and ToString.
Master game object basics in unity, including name, transform, and components. Configure public game object references, use set active, handle unassigned reference exceptions, and apply refactoring to rename variables.
Learn to work with game objects in Unity by using a script to check active in hierarchy, toggle invisibility, and control interactions between cubes.
Explore vectors in Unity by working with Vector3 for position, rotation, and scale, and learn how to copy an object's position into a Vector3 variable to move another cube.
Copy a cube’s rotation and local scale from one object to another using quaternions in Unity, and set world space position and local scale with new Vector3.
Learn how to use a single transform variable in Unity C# to access position, rotation, and local scale, drag objects into a public transform, and compare single- vs multi-variable approaches.
Learn how to move objects with lerp between two points using transform.position, time.deltaTime, and a loop that eases as they approach, with adjustable loopSpeed in the inspector.
Move objects in Unity using transform.translate with keyboard input, scaling by delta time and speed. Use get axis horizontal, left-right input, and axis-based movement for smooth control.
Explore core Unity components and how to use them with variables, including mesh renderer, box collider, and rigidbody, to swap materials, adjust physics properties, and control interactions at runtime.
Learn to swap a plane's material with C# by accessing the renderer, configure a directional light's color and intensity, and adjust the main camera's field of view, with hands-on experimentation.
Learn to auto assign components in Unity using get component and game object.find, initialize in start, and organize public vs private variables for clean, scalable scripts.
Discover how to retrieve components from child objects in Unity, use get component in children to collect multiple sphere colliders into an array, and toggle a specific collider's trigger property.
Learn to switch items on and off in Unity using checkmarks, including rigidbody kinematic states and disabling colliders, mesh renderers, lights, cameras, and the audio listener.
Learn to access the other object's components at collision time via on trigger enter, using get component to change its material and use null checks to prevent errors.
Learn how to use Unity tags and colliders to control destruction on collision, tagging cubes and scripting exact tag checks to ensure only tagged objects are affected.
Learn to add an audio source component to a Unity cube via script, assign the ding clip, and play it on collision while preventing duplicate audio sources.
Apply require component to auto add audio source, Rigidbody, and BoxCollider in Unity C# when you drag the script onto a game object, preventing editor errors.
Spawn objects in the world at runtime using a prefab and a spawn point. Instantiate at the spawn point's position and rotation with the left mouse button.
Explore how scripts as components communicate in Unity C#, broadcast messages between objects, and expose public functions to change the ground material.
Explore how Unity scripts communicate by accessing other scripts with GetComponent, exposing public fields, and triggering destruction after two seconds, while using isActiveAndEnabled to control execution.
Understand how public variables appear in the inspector, how to hide them with HideInInspector, and how public static variables can be accessed across scripts and reset on start.
Learn to use the animator component in Unity to create, record, and loop animations for an object, set up transitions, and control animation states with floats, integers, booleans, and triggers.
Learn how to use animator parameters in Unity C# for beginners, including int, float, bool, and trigger, with practical examples of setting values and trigger-driven transitions.
Create and animate a cube's material color in Unity by building an animation clip, adjusting keyframes, and linking transitions in the animator using a float parameter.
Apply animations to multiple objects in Unity by using the animator component and its controller, and fetch the correct animator in Start to ensure consistent animation.
Explore how to add and control particle effects in Unity using the free Hit Impact Free asset, and drive them with scripts to toggle, play, and loop.
Configure a Unity UI canvas, explore screen space overlay and world space, wire a button with legacy text or Text Mesh Pro, and log clicks with a UI basics script.
Import free fonts from 1001 fonts, including Great Vibes, apply to a Unity UI button, adjust size, and switch to Text Mesh Pro to script dynamic button labels.
Learn to manage UI images in Unity by importing sprites, swapping images on click, and updating button colors with a color block controlled by simple scripts.
Learn to change text in Unity UI with Text Mesh Pro by assigning a public TMP_Text, updating names like Leo, and applying basic font and size adjustments.
Learn to build a basic shooting game in Unity using C#, featuring spawning and moving targets, color-changing components, time control, and a high-score mechanic.
Create and save a new scene, organize assets, and configure ledge and target materials with normal maps and hex colors. Adjust camera and UI canvas for 1920 by 1080.
Set up legacy text in Unity by importing fonts, swapping Arial for Carnivale, sizing a centered title with score and timer labels, and naming hierarchy elements for easier scripting.
Implement a move left behavior for targets in Unity by assigning random speeds at start, updating every frame with time.deltaTime, and stopping at the left wall via a trigger.
Learn to stop a moving object at a wall in Unity C# using on trigger enter, a kinematic rigidbody, colliders, and destroy after collision.
Learn to destroy targets in Unity by clicking with the mouse, using on mouse down to stop, move, and destroy after a delay, with colliders, triggers, and rigidbodies.
Learn to spawn and respawn targets in Unity by creating start points, turning objects into prefabs, and using an invoke repeating function to spawn every two seconds.
Spawn and manage target items in Unity C# using invoke repeating, prefabs, and clones, then adjust positions, rotation, random movement ranges, and speeds to fine-tune gameplay.
Add a crosshair image to the canvas, set it as a visual, non-clickable element. Create a crosshair script to hide the cursor and follow the mouse position.
Attach audio sources to prefabs, select the ding clip, and play it via the move script on mouse down, using 3d sound and a single audio listener.
Create a Unity UI with score increases, hits, and a one-second countdown driven by invoke repeating, updating on target hits.
Link Unity C# user interface text elements on the canvas to display score, hits, and time, and drive a countdown using invoke repeating with text updated as strings.
Add background music in Unity by importing a circus theme, configuring a 2D looping audio source, and enabling a UI toggle to mute or play with the m key.
Learn to attach a world-space canvas with a center image to targets, use a colors script to assign random color IDs and scores, and update the player score.
Update the high score only at level start by comparing the current score to a public static high score that persists across scenes and display it in the UI.
Learn how to reset scores on scene restart, pause the game with time scale, and display new high scores using UI elements in Unity C#.
Set up UI color labels on the Unity canvas using image and text to display color’s point value, including white 300, red 100, green 750, blue 3000, and purple -300.
Create a Unity C# main menu with a scalable canvas, time limit controls, plus/minus buttons, a bold play button, and credits, plus mute music and save the scene.
Persist a time limit across scenes with a save script, display it in UI via a menu script, adjust with plus/minus, and load the next scene.
Learn to implement a cross-scene time limit in Unity using C#, manage save objects, toggle the cursor, and adjust lighting and scene loading for testing.
Learn to export a Unity game by configuring build settings, adding scenes, selecting Windows/Mac/Linux desktop targets, then set company name, product name, icon, and resolution.
Do you want to learn to create games in Unity but feel confused by C# scripting? In this course I am going to cover all the basic concepts of C# coding to get you to a beginner level in Unity game design.
This course is intended for people who have little to no experience of C# scripting. It is perfect for people who have never scripted before as we look in detail at each concept of C# scripting. We first cover the theory and then you get opportunities to try them out. Toward the end of the course we put these concepts into use by creating a complete beginner level game.
We cover concepts such as:
functions and methods
Input events
Variable data types
Arrays
Conditional statements
Moving and rotating objects using code
Accessing and manipulating components
Physics interactions
Animations
Scripting for a user interface
These are the most common things you will be doing when making beginner level games. When we have finished the theory, I will be guiding you step by step through the production of a target shooter game so that you will see how these scripting concepts work using real world examples.
I guarantee that by the end of this course you will have developed new skills in coding and you will feel confident making your own games upto a beginner level. You will also have created your first Unity game.
So, if you want to start creating games in Unity, why not enrol today and I look forward to seeing you in my course.