Skip to content

Instantly share code, notes, and snippets.

View Siccity's full-sized avatar
🫁
This isn't Facebook

Thor Brigsted Siccity

🫁
This isn't Facebook
View GitHub Profile
@Siccity
Siccity / FastVectorReader.cs
Last active March 31, 2022 07:27
[Unity] Fast Vector Reader
using System;
using System.IO;
using System.Runtime.InteropServices;
using UnityEngine;
public static unsafe class FastVectorReader {
[StructLayout(LayoutKind.Explicit)]
private struct Union {
[FieldOffset(0)] public Vector2[] v2;
[FieldOffset(0)] public Vector3[] v3;
@Siccity
Siccity / needsmorejpeg.cs
Created March 19, 2019 09:38
Add to project
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class needsmorejpeg : MonoBehaviour {
[RuntimeInitializeOnLoadMethod]
public static void NEEDSMOREJPEG() {
Camera cam = Camera.main;
if (cam == null) cam = GameObject.FindObjectOfType<Camera>();
cam.gameObject.AddComponent<needsmorejpeg>();
@Siccity
Siccity / ReorderableListAttribute.cs
Last active April 14, 2020 09:03
Lets you easily create Reorderable Lists in Unity
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// Example usage:
//
// [ReorderableList]
// public MyList myList;
//
@Siccity
Siccity / Function.cs
Last active December 16, 2017 12:08
Lets you set functions with return valules in the Inspector.
using System;
using System.Linq.Expressions;
using System.Reflection;
[Serializable]
public class Function : Function<bool> { }
public abstract class Function<TReturn> : FunctionBase {
public TReturn Invoke() {
object o = base.Invoke();
@Siccity
Siccity / MatrixTRSAttribute.cs
Last active November 17, 2017 09:56
Add [MatrixTRS] to public Matrix4x4 fields to edit them as transforms
// Put this file in a NON-editor folder
using UnityEngine;
using System;
[AttributeUsage(AttributeTargets.Field)]
public class MatrixTRSAttribute : PropertyAttribute { }
public static class MatrixTRSExtensions {
public static Quaternion ExtractRotation(this Matrix4x4 matrix) {
@Siccity
Siccity / SerializedPropertyExtensions.cs
Last active November 16, 2017 11:51
SerializedProperty to real value
using UnityEditor;
public static class SerializedPropertyExtensions {
public static object GetValue(this SerializedProperty property) {
object targetObject = property.serializedObject.targetObject;
System.Type targetObjectClassType = targetObject.GetType();
System.Reflection.FieldInfo field = targetObjectClassType.GetField(property.propertyPath);
if (field != null) {
object value = field.GetValue(targetObject);
@Siccity
Siccity / PreviewSpriteMaker.cs
Last active October 24, 2018 11:36
Needs transparency
using UnityEditor;
using UnityEngine;
using System;
// Create an editor window which can display a chosen GameObject.
// Use OnInteractivePreviewGUI to display the GameObject and
// allow it to be interactive.
public class PreviewSpriteMaker : EditorWindow {
private static GameObject gameObject;
@Siccity
Siccity / ExtendedAnimationCurves.cs
Created September 7, 2017 12:15
Unity3D: ExtendedAnimationCurves - Vector3AnimationCurve and QuaternionAnimationCurve
using UnityEngine;
using System.Collections.Generic;
/// <summary>
/// Class Extensions
/// </summary>
public static class ExtendedAnimationCurves {
public static void Serialize(this AnimationCurve anim, out float[] times, out float[] values) {
times = new float[anim.length];
values = new float[anim.length];
@Siccity
Siccity / DebugMesh.cs
Last active April 1, 2019 20:17
Unity3D: Debug Mesh - Shows mesh normals and tangents.
using UnityEngine;
public class DebugMesh : MonoBehaviour {
private MeshFilter filter { get { return _filter != null ? _filter : _filter = GetComponent<MeshFilter>(); } }
private MeshFilter _filter;
public bool showNormals = true;
public bool showTangents = true;
public float renderDistance = 10f;