Skip to content

Instantly share code, notes, and snippets.

@der-hugo
der-hugo / ResourcesInfo.cs
Created November 13, 2024 10:48
For listing all available paths to be used in Resources.Load - stores and loads a simple text file containing all resources paths
using System.Collections.Generic;
using UnityEngine;
using System;
using System.IO;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace derHugo
@der-hugo
der-hugo / Example.cs
Last active November 13, 2024 10:53
Inspector dropdown for selecting a tag
using UnityEngine;
namespace derHugo
{
public class Example : MonoBehaviour
{
public Tag Tag;
}
}
@der-hugo
der-hugo / BenchmarkTools.cs
Created October 29, 2024 09:48
Tool for measuring performance and memory impact of methods
using System;
using System.Diagnostics;
using System.Runtime;
using System.Runtime.CompilerServices;
namespace derHugo
{
public static class BenchmarkTools
{
private static readonly object _lock = new();
@der-hugo
der-hugo / Example.cs
Last active October 29, 2024 10:02
Unity Inspector dropdown for a single layer (as contrary to the LayerMask)
using UnityEngine;
namespace derHugo
{
public class Example : MonoBehaviour
{
public LayerMask multiLayers;
public Layer singleLayer;
}
}
@der-hugo
der-hugo / AnimatorRenameDialogue.cs
Last active November 4, 2024 10:27
Allows safe renaming of objects nested under / animated by an Animator without breaking the AnimationClips
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
/// <summary>
/// Dialogue that allows to rename objects in the Hierarchy of an <see cref="Animator"/> without breaking the AnimationClip bindings
/// </summary>
@der-hugo
der-hugo / AutoSaver.cs
Created March 21, 2022 08:59
Enables auto-saving in Unity
/// <summary>
/// Editor tools for auto-saving
/// </summary>
public static class AutoSaving
{
private const string k_MenuName = "Examples/Auto-Save/";
private static class IntervalAutoSaving
{
/// <summary>
@der-hugo
der-hugo / AnimatorTriggerResetter
Created March 18, 2022 10:06
Reset all triggers of an Aniamtor -> attach this to the Basic Layer in order to automatically apply it to all states
using UnityEngine;
public class AnimatorTriggerResetter : StateMachineBehaviour
{
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
foreach(var p in animator.parameters)
{
if (p.type == AnimatorControllerParameterType.Trigger)
{
@der-hugo
der-hugo / EnumMap.cs
Last active June 29, 2022 07:31
A modified version of SerializedDictionary (https://github.com/azixMcAze/Unity-SerializableDictionary) that has one KeyValuePair for each given enum value
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace DerHugo
{
#if UNITY_EDITOR
/// <summary>
/// Non generic base class for <see cref="EnumMap{TKey,TValue}"/> for drawers
@der-hugo
der-hugo / Triangle2D.cs
Created March 10, 2021 11:04
Are two 2D triangles intersecting in Unity? Refactored version of https://www.habrador.com/tutorials/math/6-triangle-triangle-intersection
using System;
using UnityEngine;
/// <summary>
/// To store triangle data to get cleaner code
/// </summary>
[Serializable]
public struct Triangle2D
{
@der-hugo
der-hugo / InstallSheepitAsAService.sh
Created June 27, 2019 14:25
Run Sheepit-Client as a Linux Service
#!/bin/bash
###############################################################
# This Script creates a service and a dedicated user #
# for running sheepit-client (www.sheepit.com) on a headless #
# Linux-Server #
# #
# Author of this script is: [email protected] #
###############################################################
###############################################################