Skip to content

Instantly share code, notes, and snippets.

View kurtdekker's full-sized avatar

Kurt Dekker kurtdekker

View GitHub Profile
@kurtdekker
kurtdekker / PostProcessingSceneUtilities.cs
Created October 30, 2024 17:57
PostProcessingScene work - a way to temporarily modify scenes at build time
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.Collections.Generic;
// @kurtdekker
//
// Makes temporary changes to scenes when building.
//
// Obviously this must live in an Editor/ folder.
@kurtdekker
kurtdekker / StreamingAssetsPath.cs
Created October 7, 2024 19:09
Unity3D streaming assets path for several platforms
using UnityEngine;
// @kurtdekker
public static class StreamingAssetsPath
{
public static string StreamingAssetPathForWWW()
{
#if UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN
return "file://" + Application.dataPath + "/StreamingAssets/";
@kurtdekker
kurtdekker / FilterUtilities.cs
Created August 12, 2024 01:37
Filter utilities: a deadband expander
public static partial class FilterUtilities
{
// @kurtdekker
//
// Part of Jetpack Kurt Space Flight available for iOS/Android
//
// Evalutes a normalized analog input signal (such as an analog
// axis) and filters it:
//
@kurtdekker
kurtdekker / LORES.cs
Last active June 20, 2024 17:26
Low-resolution (LORES) rendering in Unity3D
using UnityEngine;
// @kurtdekker - Cheesy quick way to do low-resolution in Unity3D:
//
// This script creates and controls the final Camera, not the Main Camera.
//
// Player Scene, when loaded, MUST have a Main Camera that we hijack.
//
// DO NOT DROP THIS ON A CAMERA!
//
@kurtdekker
kurtdekker / RevolutionCounter.cs
Last active January 22, 2024 06:20
Counts revolutions of a Transform (around its +Z axis)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// @kurtdekker
//
// Counts revolutions in degrees around the +Z axis of a transform
//
// NOTE: Like all things in a discrete digital simulation, this takes samples at
// regular intervals. This means rapid rotation of the transform will introduce
@kurtdekker
kurtdekker / ScreenMetrics2D.cs
Created August 14, 2023 14:53
Unity3D screen metrics utility for 2D camera use
using UnityEngine;
// @kurtdekker
//
// Ultra simple script to give you the "live edges" of your screen.
// This updates for any screen orientation, dimensions or camera.
//
// Presumes:
// - orthographic Camera pointed +Z
// - returns values in the Z == 0 plane.
@kurtdekker
kurtdekker / RunmeJohnny.cs
Created July 22, 2023 13:54
Make a Unity project / build with zero scenes, just pure code.
using UnityEngine;
// @kurtdekker - for the purists who don't want ANY scenes in project
//
// All other Unity asset inclusion rules are still in effect, so no
// assets will make it into your project unless they are:
//
// - correctly in a Resources/ folder
// - referenced by something in the above
// - correctly in the Streaming Assets folder / system.
@kurtdekker
kurtdekker / PlatformMotionRecorder.cs
Last active July 18, 2023 04:40
Track platforms so you can ride them around reliably.
//
// @kurtdekker
//
// Purpose: to be able to track arbitrary moving surfaces
// you want to hop on and ride around (platforms, etc.)
//
// Requires you to know if you are grounded or not.
//
// To use:
//
@kurtdekker
kurtdekker / CanvasScalerOrientationDriver.cs
Created June 30, 2023 23:20
CanvasScaler Orientation Driver - controls the CanvasScaler to simplify portrait / landscape adjustments
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// @kurtdekker - to help fitting portrait / landscape UI stuff together
//
// Put this where the CanvasScaler is.
//
// You should set CanvasScaler to:
@kurtdekker
kurtdekker / LaneMover.cs
Created June 26, 2023 13:50
Lane-based motion in the X- and Z- coordinate space
using UnityEngine;
// @kurtdekker - lane-based mover
//
// To use:
// Drop this on your player object
// Move your camera to see it go into the distance (see note about 2D below)
// press PLAY
// use A and D to change lanes