Under Construction

The Blog

Insights, tutorials, and stories from the world of software development.

Join my community?Contact to join
Unity
May 25, 2026

Boxing c#

This article explains boxing and unboxing in C#, why boxing creates heap allocations and GC pressure, and why that can hurt Unity performance. It shows common boxing cases such as Debug.Log, using structs with object, interfaces, generics, LINQ, foreach, and events, then gives practical ways to avoid boxing, check for it with the Unity Profiler, and keep Update-heavy code, Jobs, ECS, and other hot paths GC-free.

Minh Khoa
14 min
238
53
Unity
May 8, 2026

The Complete VContainer

This article is a detailed guide to using VContainer in Unity, from core concepts to real project architecture. It explains why VContainer is a faster, lighter alternative to Zenject, then covers LifetimeScope, Builder, and the main lifetimes: Singleton, Transient, and Scoped. It walks through basic setup, EntryPoint and Unity lifecycle replacement, constructor and method injection, interface registration, scene object registration, and injecting multiple implementations. The article also shows practical factory and prefab spawning patterns, including using IObjectResolver and Func, then explains hierarchical scopes such as ProjectScope, SceneScope, and SubScope for larger games. It ends with anti-patterns to avoid, such as hidden service locator usage, injecting into data classes, and circular dependencies.

Minh Khoa
19 min
75
24
Unity
May 8, 2026

Coding Conventions

This article summarizes common coding conventions for Unity/C# game development, including PascalCase and camelCase naming rules for classes, fields, methods, properties, constants, booleans, events, coroutines, UI components, ScriptableObjects, and prefabs. It also covers file and folder naming, use of namespaces, comments, inspector attributes, regions, and how to avoid magic numbers and magic strings so code stays readable, maintainable, and team-friendly.

Minh Khoa
14 min
201
24
Unity
May 5, 2026

Unity’s Biggest Trap: null That Isn’t Null

This article explains why UnityEngine.Object behaves differently from a normal C# object when it comes to Null and destruction. It breaks down the managed C# world and the native C++ world behind Unity objects, shows how Destroy() removes the native object while the C# wrapper can still remain in memory, and explains Unity’s overloaded == and != operators that create the “Fake Null” effect. It also warns that C# operators like ?. and ?? can bypass Unity’s null check and lead to MissingReferenceException, then recommends using classic null checks, avoiding ?. and ?? with UnityEngine.Object, and using Unity’s implicit boolean check when appropriate.

Minh Khoa
16 min
208
54
Unity
May 5, 2026

Anti alias & Vsync

This article explains Anti-Aliasing (AA) and VSync in games, with a focus on Unity. It describes why jagged edges happen and compares MSAA, FXAA, SMAA, and TAA, including how each works, their performance tradeoffs, and when to use them in URP and HDRP. It also covers how VSync prevents screen tearing, the pros and cons of turning it on or off, and gives practical advice for mobile, PC, and console projects, including Unity settings like QualitySettings.vSyncCount and Application.targetFrameRate.

Minh Khoa
12 min
179
38
Unity
Mar 28, 2026

Detailed comparison IL2CPP and Mono

This article compares Unity’s two main scripting backends, Mono and IL2CPP, and explains how they work, their strengths and weaknesses, and when to use each one. It covers Mono’s fast build times and easier debugging versus IL2CPP’s better runtime performance, stronger security, and required support for platforms like iOS and WebGL, then gives practical guidance on choosing Mono for development and IL2CPP for release.

Minh Khoa
15 min
119
42
Previous
Page 7 of 9
Next