Skip to main content

· 12 min read
Xiaohai Huang

Imagine you are playing your favorite game on your phone. You are enjoying the graphics, the gameplay, and the story. Suddenly, you encounter a bug that crashes the game. You check the app store for an update, but there is none. You are frustrated and disappointed.

Now imagine you are developing a game with Unity. You want to deliver the best experience to your players, but you also want to save time and money. You don't want to recompile and resubmit your entire project every time you need to fix a bug or add a feature. You want to update your game without requiring users to download a new version of the app.

How can you achieve this?

The answer is hot updating.

Hot updating is a technique that allows you to update both code and resources of your game at runtime. This means that you can fix bugs, add features, and optimize performance without affecting the user experience.

But how can you implement hot updating in Unity?

In this blog post, I will introduce you a solution that can help you perform in-game updates in Unity with minimal effort and maximum flexibility. It is based on two open source projects: HybridCLR and Addressables.

HybridCLR is a framework that allows you to write C# code that can be compiled into IL2CPP or Mono assemblies at runtime. This means that you can update your game logic without recompiling your entire project.

Addressables is a Unity package that provides an easy way to load assets by key from local or remote locations.

By combining these two tools, you can perform in-game updates in Unity with minimal effort and maximum flexibility.

In this blog post, I will show you how to use HybridCLR and Addressables to perform in-game updates in Unity, and demonstrate how this solution can improve your game development workflow and user experience.

· 2 min read
Xiaohai Huang

This documentation covers the minimum settings required to configure NGINX to proxy requests to MinIO.

Given domain

  • Proxy requests to to the MinIO S3 API server listening on http://my-minio-server:9000
  • Proxy requests to the subpath (/minio-console) of the domain to the MinIO Web Console listening on http://my-minio-server:9001

· 14 min read
Xiaohai Huang

This study plan is for those who want to prepare for technical interviews but are uncertain which problems they should focus on. The problems have been carefully curated so that levels 1 and 2 will guide beginner and intermediate users through problems that cover the data structures and algorithms necessary to succeed in interviews with most mid-tier companies. While level 3 provides material to help users whose targets are top-tier companies. -- LeetCode

· One min read
Xiaohai Huang
  1. Browser cache. - cookie.
  2. Breadth-First Traversal and Depth First Traversal.
  3. script tag. async and defer.
  4. React Hook
var obj = {
a: 1,
foo: function (b) {
b = b || this.a;
return function (c) {

var a = 2;
var obj2 = { a: 3 };, 1);;