Skip to content

Instantly share code, notes, and snippets.

View unitycoder's full-sized avatar
‏‏‎

mika unitycoder

‏‏‎
View GitHub Profile
@unitycoder
unitycoder / RvoGridGraph.cs
Created June 17, 2026 21:07 — forked from hymerman/RvoGridGraph.cs
RVO grid graph for A* Pathfinding Project Pro
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Pathfinding;
using Pathfinding.RVO;
/** Adds a GridGraph as RVO obstacles.
* Add this to a scene in which has a GridGraph based graph, when scanning (or loading from cache) the graph
* it will be added as RVO obstacles to the RVOSimulator (which must exist in the scene).
*
@unitycoder
unitycoder / Unity-ReferenceChecker.cs
Created May 29, 2026 06:36 — forked from noisecrime/Unity-ReferenceChecker.cs
WIP - Simple editor script to provide options in dropdown menu when clicking on an asset in the project browser to discover what other assets/scenes reference it.
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
/// <summary>
/// NoiseCrimeStudio OneShots are single scripts that provide specific funactionality.
/// </summary>
namespace NoiseCrimeStudios.OneShot.Editor
@unitycoder
unitycoder / Microvolume.shader
Created May 16, 2026 12:01 — forked from ForgeCreations/Microvolume.shader
This is the current state of my Microvolume concept as a Unity Shader for URP. You're welcome to play around with it in any way you want.
Shader "Custom/Microvolume/LitURP"
{
Properties
{
[MainTexture]_BaseMap("Albedo", 2D) = "white" {}
[MainColor]_BaseColor("Albedo Color", Color) = (1, 1, 1, 1)
[Normal]_NormalMap("Normal Map", 2D) = "bump" {}
_NormalScale("Normal Scale", Range(0, 2)) = 1
@unitycoder
unitycoder / BoxColliderEditFaceCenterDots.cs
Created April 13, 2026 19:10 — forked from adrenak/BoxColliderEditFaceCenterDots.cs
BoxColliderEditFaceCenterDots makes resizing BoxColiders easy
#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.EditorTools;
using UnityEngine;
using UnityEngine.Rendering;
/// <summary>
/// While Unity’s built-in box collider edit tool is active, draws camera-facing
@unitycoder
unitycoder / microgpt.py
Created February 12, 2026 07:03 — forked from karpathy/microgpt.py
microgpt
"""
The most atomic way to train and inference a GPT in pure, dependency-free Python.
This file is the complete algorithm.
Everything else is just efficiency.
@karpathy
"""
import os # os.path.exists
import math # math.log, math.exp
@unitycoder
unitycoder / fetch_vcdist.py
Created February 6, 2026 14:37 — forked from donno/fetch_vcdist.py
Downloads and extract the Visual C++ Redistributables.
"""Downloads and extract the Visual C++ Redistributables.
This is useful when working with minidump files as the user may be running
with a new different version of the runtime. This script aims to maintain
a copy of the various versions.
Versions are normally added once I encounter them, in November 2022, I added
a rather large back catalogue of versions.
This requires dark.exe from Wix (http://wixtoolset.org/releases/) and
@unitycoder
unitycoder / tgf-midi-extractor.mjs
Created January 2, 2026 11:13 — forked from nathnolt/tgf-midi-extractor.mjs
The Games Factory .gam 0C_Music.mus music file to midis converter
// The Games Factory 0C_Music.mus -> midi files
// See the following tool for actually extracting the 0C_Music.mus file from a .gam file
// https://kippykip.com/threads/cextract-the-games-factory-multimedia-fusion-game-extractor-unprotector.498/
//
import fs from 'fs'
const input = './0C_Music.mus'
const buffer = fs.readFileSync(input)
@unitycoder
unitycoder / Unity-hotswapping-notes.md
Created November 26, 2025 12:54 — forked from cobbpg/Unity-hotswapping-notes.md
Unity hotswapping notes

Unity hotswapping notes

Unity has built-in support for hotswapping, which is a huge productivity booster. This feature works not only with graphics assets like bitmaps and meshes, but also with code: if you edit the source and save it, the editor will save the state of the running game, compile and load the new code, then load the saved state and continue where it left off. Unfortunately, this feature is very easy to break, and most available 3rd party plugins have little regard for it.

It looks like there’s a lot of confusion about hotswapping in Unity, and many developers are not even aware of its existence – which is no wonder if their only experience is seeing lots of errors on the console when they forget to stop the game before recompiling... This document is an attempt to clear up some of this confusion.

Nota bene, I’m not a Unity developer, so everything below is based on blog posts and experimentation. Corrections are most welcome!

The basic flow of hotswapping

@unitycoder
unitycoder / LayerFieldAttribute.cs
Created November 26, 2025 10:01 — forked from ryan-at-melcher/LayerFieldAttribute.cs
A simple attribute for Unity to display an int field in the inspector as a GameObject layer dropdown that is limited to one selection.
using UnityEngine;
/// <summary>
/// Allows a single GameObject layer to be selected from the inspector when applied to an
/// <see langword="int" /> field. Intended to be used when a <see cref="LayerMask" />'s
/// multiselection is not suitable.
/// </summary>
public class LayerFieldAttribute : PropertyAttribute
{
}
@unitycoder
unitycoder / WorldSpaceHandVisual.cs
Created November 26, 2025 10:01 — forked from ryan-at-melcher/WorldSpaceHandVisual.cs
Unity fix for OVRControllerHands prefab incorrectly positioning synthetic hands using a local-pose rather than world-pose.
using Oculus.Interaction;
using Oculus.Interaction.Input;
using System;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Renders the hand.
/// <br /><br />
///