Montréal
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
From Wikipedia :
Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
In the case of Unity3D
Allows multiple trades to develop a game / application through a single tool
Unity3D
C#
Javascript
Boo (Python)
ShaderLab, GLSL
Sealed
Unity Engine Core
Shader Programming API
Network API
Animation Engine
GUI System
Physics Engine
Terrain Engine
Particle System Engine (Shuriken)
Audio Engine
Unity3D
Today Unity have the possibility to switch between compilers:
Unity3D
Burst (available on 2018.2):
Unity3D
Unity3D
C# Code
C# Compiler
IL (Intermediate language) Code
Just-In-Time (JIT) Compiler
Native Machine Code
Execute
The Common Language Runtime
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
Unity3D
WARNING:
Unity3D
Unity3D
An Entity is composed by components which are categorized in 2 parts:
Unity3D
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
Unity3D
Unity Components
Customized GameObject
Assets (Resource Library)
Camera
Collider
Light
Rigidbody
Camera
FPS CTRL
Audio Listener
GameObject
Custom GameObject
Script Files
Animation
Prefab
Mesh
...
Compose
Fetch
Unity3D
Unity3D
Big picture of the monobehaviour flowchart
Unity3D
Here some fundamentals events you must know :
Unity3D
Update() and FixedUpdate()
U
U
U
U
U
U
U
U
U
U
U
U
U
F
F
F
F
F
F
0.0s
0.1s
FixedUpdate() is synchronized with Physics Engine steps while Update() runs on each frame. Always use FixedUpdate() for Physics!
Unity3D
Unity3D
Quick answer: it's impossible to make a generic architecture of scripts for every type of game
Not so quick answer: it's possible to respect a set of rules that we can apply on the majority of projects
Will exist the whole runtime
Scene 1
Scene 2
Entry point
SoundManager
LevelManager
SceneManager
Player
Enemy
Weapons
Player
NPCs
Unity3D
Unity3D
Unity3D