Skip to content

Instantly share code, notes, and snippets.

View sebtoun's full-sized avatar

Sebtoun sebtoun

  • Montpellier, FRANCE
View GitHub Profile
@sebtoun
sebtoun / JsonSerialisableScriptableObject.cs
Last active February 27, 2024 17:25
Unity's ScriptableObjects that easily serialize to JSON
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using UnityEngine;
public class JsonSerialisableScriptableObject<T> : ScriptableObject where T : JsonSerialisableScriptableObject<T>
{
@sebtoun
sebtoun / ClampedCurveAttribute.cs
Created October 13, 2021 19:04
Unity AnimationCurve decorator to clamp the curve like RangeAttribute is for float.
using UnityEngine;
public class ClampedCurveAttribute : PropertyAttribute
{
public readonly float MinX;
public readonly float MaxX;
public readonly float MinY;
public readonly float MaxY;
public ClampedCurveAttribute( float minX, float maxX, float minY, float maxY )
using UnityEngine;
/// <summary>
/// Attribute to select a single layer.
/// </summary>
public class LayerAttribute : PropertyAttribute
{
}
using UnityEngine;
using System;
//Original version of the ConditionalHideAttribute created by Brecht Lecluyse (www.brechtos.com)
//Modified by: -
[ AttributeUsage( AttributeTargets.Field ) ]
public class ConditionalHideAttribute : PropertyAttribute
{
public readonly string ConditionalSourceField;
@sebtoun
sebtoun / StretchWithVelocity.cs
Last active April 14, 2022 16:51
Stretch With Velocity Animation for Unity
using UnityEngine;
public class StretchWithVelocity : MonoBehaviour
{
public float MaxVelocity = 10;
public float MaxSpeedStretch = 0.5f;
public bool CompensatePosition = true;
public float MinVelocity = 0.1f;
public float Smoothing = 0.1f;
@sebtoun
sebtoun / SimpleStateMachine.cs
Created July 20, 2018 15:51
Simple State machine for unity
using System;
using System.Collections;
using System.Collections.Generic;
#if USE_GAMELOGIC_EXTENSIONS
using Gamelogic.Extensions;
#endif
using UnityEngine;
/// <summary>
/// A lightweight state machine that support either update or coroutine pattern for states update.
@sebtoun
sebtoun / Easing.cs
Last active January 28, 2022 14:18 — forked from cjddmut/EasingFunctions.cs
Easing Functions for Unity with support for Inspector with animation preview and Animation Curve for custom easing
using System;
using UnityEngine;
[ Serializable ]
public class Easing
{
public enum EasingType
{
Curve,
Function
@sebtoun
sebtoun / PeriodicTrigger.cs
Created February 24, 2019 20:45
Periodically trigger an event
using System;
public class PeriodicTrigger
{
public event Action TriggerEvent;
private float _period;
private float _remaining;
public PeriodicTrigger( float period )
@sebtoun
sebtoun / UniformPoissonDiskSampler.cs
Created March 10, 2018 09:03
Poisson Disk Sampler
// Adapted from java source by Herman Tulleken
// http://www.luma.co.za/labs/2008/02/27/poisson-disk-sampling/
// The algorithm is from the "Fast Poisson Disk Sampling in Arbitrary Dimensions" paper by Robert Bridson
// http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf
using System;
using System.Collections.Generic;
using UnityEngine;
using Random = System.Random;
@sebtoun
sebtoun / ShakeBehaviour.cs
Last active August 4, 2018 08:29
Shake Behaviour for Unity
#define USE_GAMELOGIC_EXTENSION
#if USE_GAMELOGIC_EXTENSION
using Gamelogic.Extensions;
#endif
using UnityEngine;
#if USE_GAMELOGIC_EXTENSION
public class ShakeBehaviour : GLMonoBehaviour