Skip to content

Instantly share code, notes, and snippets.

View frarees's full-sized avatar

Francisco Requena frarees

View GitHub Profile
@frarees
frarees / SyncUtil.cs
Last active August 17, 2022 10:09
C# Solution Sync for Unity3D
// https://frarees.github.io/default-gist-license
using UnityEngine;
using UnityEditor;
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine.Profiling;
[InitializeOnLoad]
@frarees
frarees / youtube-dl-range.sh
Created February 8, 2017 20:54
Download youtube clip range
#!/bin/sh
if [ "$#" -ne 4 ]; then
echo "Usage: $0 url start_time end_time out_file" >&2
exit 1
fi
URL=$(youtube-dl -f 22 -g $1)
ffmpeg -ss $2 -i ${URL} -t $3 -c:v copy -c:a copy $4
@frarees
frarees / Follow.cs
Last active October 21, 2020 09:38
Follow a (Rect)Transform
using UnityEngine;
public class Follow : MonoBehaviour
{
[SerializeField] Camera m_Camera;
[SerializeField] Transform m_Target;
[SerializeField] Vector3 m_WorldOffset;
[SerializeField] Vector3 m_ScreenOffset;
[SerializeField, Tooltip ("Will not update depth/Z")] bool m_KeepDepth;
[SerializeField, Tooltip ("Won't work if Keep Depth is ON")] float m_DepthOffset;
@frarees
frarees / raspi-sd-benchmarks.md
Last active May 1, 2020 12:59
Raspberry Pi SD card benchmark
@frarees
frarees / ColliderMask.cs
Created March 8, 2015 15:35
Filter canvas raycasts with Collider2D data (Unity3D)
using UnityEngine;
using UnityEngine.UI;
[RequireComponent (typeof (Image), typeof (Collider2D))]
public class ColliderMask : MonoBehaviour, ICanvasRaycastFilter {
Image m_Image;
Collider2D m_Collider;
void Awake () {
@frarees
frarees / Interfaces.cs
Last active August 29, 2015 14:08
Unity Serialization & Interfaces
// I'd like to serialize the GetComponents result straight away when getting components via interface
// That would avoid allocating more memory for another list that can be serialized
// signature: void GetComponents<T, K> (List<T> result) where T : Component;
public class MyBehaviour : MonoBehaviour, ICustom {
List<MonoBehaviour> behaviours = new List<MonoBehaviour> ();
void Awake () {
GetComponents<MonoBehaviour, ICustom> (behaviours);
@frarees
frarees / New.cs
Created October 7, 2014 13:38
Class Layout Update on Unity3D
using UnityEngine;
using System.Collections;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class Test : MonoBehaviour, ISerializationCallbackReceiver {
[SerializeField, HideInInspector] int m_SerializedVersion;
[SerializeField] string m_NewString;
@frarees
frarees / MinMaxSliderAttribute.cs
Last active April 4, 2024 12:13
MinMaxSlider for Unity
// https://frarees.github.io/default-gist-license
using System;
using UnityEngine;
[AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
public class MinMaxSliderAttribute : PropertyAttribute
{
public float Min { get; set; }
public float Max { get; set; }
@frarees
frarees / Grid.shader
Created January 4, 2014 17:53
Unity3D compatible CG shader to use with an orthographic projector to create a square grid.
Shader "Projector/Grid" {
Properties {
_Color ("Color", Color) = (1,1,1,0)
_ShadowTex ("Cookie", 2D) = "black"
_Size ("Grid Size", Float) = 1
}
Subshader {
Tags { "RenderType"="Transparent" "Queue"="Transparent+100" }
@frarees
frarees / MacroKiller.cs
Last active December 8, 2023 10:30
Evaluate C# code on editor for Unity3D
// https://frarees.github.io/default-gist-license
using System.IO;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Microsoft.CSharp;
using System.CodeDom.Compiler;