Skip to content

Instantly share code, notes, and snippets.

View tiagosr's full-sized avatar
🕺

Tiago Rezende tiagosr

🕺
View GitHub Profile
@tiagosr
tiagosr / NavmeshMovement.cs
Last active August 23, 2019 20:12
Navmesh-using movement pseudocode
/*
This code works well for an ostensibly-static world in Unity, to avoid doing raycasts or anything similar.
Might need some adjustment to the specifics of how it currently works in Unity or your scene
(and this was written without proper checking, but it's informed pseudocode)
*/
Vector3[] current_move_path = null;
int current_move_path_index = 0;
...
@tiagosr
tiagosr / AntiAliasedPointSampled.shader
Last active October 31, 2023 10:44
Unity3D point-sampled shader with subpixel multisampling
Shader "esque.ma/Anti-Aliased Point-Sampled"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Feather ("Feather", Range(0.1, 0.9)) = 0.25
_Ratio ("Ratio", Range(0.0, 0.25)) = 0.15
}
SubShader
{
@tiagosr
tiagosr / TemplateSublimeProjectForUnityAndOmniSharp.sublime-project
Last active August 29, 2015 14:19
Template Sublime Text project file for Unity with OmniSharp-Sublime, including filter patterns
{
"folders":
[
{
"follow_symlinks": true,
"path": ".",
"folder_exclude_patterns": ["Library", "ProjectSettings", "Temp"],
"file_exclude_patterns": ["*.meta", "*.dll", "*.obj", "*.o", "*.a", "*.lib", ".DS_Store", "*.sublime-workspace"],
}
],
@tiagosr
tiagosr / Vector3Addons.cs
Created April 10, 2015 01:29
Little Unity addon for "swizzling" vectors in a fluent interfaces
using UnityEngine;
using System.Collections;
public static class Vector3Addons {
public static Vector2 xx(this Vector3 vec) { return new Vector2(vec.x, vec.x); }
public static Vector2 xy(this Vector3 vec) { return new Vector2(vec.x, vec.y); }
public static Vector2 xz(this Vector3 vec) { return new Vector2(vec.x, vec.z); }
public static Vector2 yx(this Vector3 vec) { return new Vector2(vec.y, vec.x); }
public static Vector2 yy(this Vector3 vec) { return new Vector2(vec.y, vec.y); }
public static Vector2 yz(this Vector3 vec) { return new Vector2(vec.y, vec.z); }
@tiagosr
tiagosr / conca.rkt
Last active August 29, 2015 14:17
Tiny little concatenative (forth-like) VM in one function, in Racket
#lang racket
(define (*vm* accum
stack
code
rstack
env)
(if (pair? code)
(let ([word (car code)])
(match word
['halt! accum]
@tiagosr
tiagosr / XmlFix.cs
Created March 10, 2015 20:39
XML Serialization add-ins for C# (esp. Unity)
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System.Text;
using System;
// XML-Serializable Dictionary class,
@tiagosr
tiagosr / State.cs
Last active August 29, 2015 14:16
Unity Event/Delegate-based State Machine
using UnityEngine;
using UnityEngine.Events;
using System.Collections;
using System.Collections.Generic;
public class State {
public delegate void EnterStateEvent(State s, State from);
public delegate void ExitStateEvent(State s, State to);
public delegate void UpdateStateEvent(State s);
public delegate void Constructor(State s);
@tiagosr
tiagosr / ps2_msx.ino
Created December 10, 2014 03:56
PS/2 keyboard reader and Gradiente Expert 1.1 MSX keyboard adapter
/*
* ABNT2 PS/2 keyboard to Gradiente Expert 1.1 keyboard mapper
* (c) 2014 Tiago Rezende
*/
static const uint8_t ps2data = 2;
static const uint8_t ps2clk = 3;
//#define K(x) (uint8_t)((x>=0x80)?(x+0x8):((x<=0x07)?(x+0x80):(x-0x10)))
#define K(x) x
@tiagosr
tiagosr / ofxRectFit.h
Created November 28, 2014 20:41
Parameterizable Rectangle Fitter for openFrameworks
//
// ofxRectFit.h
//
// Created by Tiago on 11/28/14.
//
//
#ifndef __ofxRectFit__
#define __ofxRectFit__
@tiagosr
tiagosr / MixableCamera.cs
Created May 19, 2014 17:50
A Camera component for Unity which can blend between two positions (for now only the same type of projection will work, no mixing between ortho and non-ortho cameras)
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Camera))]
public class MixableCamera : MonoBehaviour {
public Camera fromCamera, toCamera;
public float mixPosition = 0f;
public float mixSpeed = 0f;