Skip to content

Instantly share code, notes, and snippets.

View paraself's full-sized avatar
🙆‍♂️
Coding

Yves Wang paraself

🙆‍♂️
Coding
View GitHub Profile
@paraself
paraself / RTAtlasCreation
Created May 6, 2014 05:53
Unity Runtime Atlas Creation
Texture texture = new Texture2D(maximunAtlasSize, maximunAtlasSize);
texture.PackTextures(frames, padding, maximunAtlasSize);
texture.name = "New Atlas";
texture.Apply();
if(!Directory.Exists(Application.dataPath + "/Atlases"))
Directory.CreateDirectory(Application.dataPath + "/Atlases");
FileStream fs = new FileStream(Application.dataPath + "/Atlases/" + texture.name + ".png", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
@paraself
paraself / RGBA2HSVA
Last active August 29, 2015 14:21
Fast RGBA to HSVA in Unity3D shader
//Original source
//http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv
//http://ploobs.com.br/?p=1499
#ifndef RGBA2HSVA
#define RGBA2HSVA
fixed4 RGBA2HSVA(fixed4 rgba)
{
float K = 0;
fixed temp;
@paraself
paraself / AUB_BLENDS.cginc
Created May 15, 2015 10:41
Photoshop Blends shader funcitons
//Source http://forum.unity3d.com/threads/free-photoshop-blends.121661/
#ifndef AUB_BLENDS_INCLUDED
#define AUB_BLENDS_INCLUDED
/**********************INCLUDES**********************/
/**********************STRUCTS**********************/
struct a2f_uv0 {
float4 vertex : POSITION;
@paraself
paraself / EditorPlayMode
Last active October 30, 2023 14:38
Unity Play Mode Detection
//originally adopted from
//http://answers.unity3d.com/questions/447701/event-for-unity-editor-pause-and-playstop-events.html
//with a few modifications which makes the event firing nicer and cleaner
//Usage Example :
//
//using UnityEditor;
//using UnityEngine;
//
//[InitializeOnLoad]
//public class SingleEntryPoint
@paraself
paraself / gist:36b1730737656b5d3222
Created October 3, 2015 18:56 — forked from allanolivei/gist:8982445
Unity 3d : Expose the rendering order of MeshRenderer in the Unity3D
using UnityEngine;
using UnityEditor;
using System.Reflection;
using System;
using UnityEditorInternal;
[CustomEditor(typeof(MeshRenderer)), CanEditMultipleObjects]
public class MeshRendererInspector : Editor
{
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
public class QueuedTask : Singleton<QueuedTask> {
const int MaxProcessCount = 2;
@paraself
paraself / SyncedCameras
Last active May 23, 2016 06:20
Sync 2d Camera between scene view and game view. So whenever you pan your scene view by holding the middle mouse btn, the game view will always match its position to the scene view camera. However scene view's zoom in and out will not be taken into account. The ortho size of the game view camera will remain all the time. This is perfect for maki…
///Sync camera position between scene camera and the rendering camera
//Add [ExecuteInEditorMode] to your monobehaviour and add the following OnRenderObject method as well.
///...
[ExecuteInEditorMode]
//...
void OnRenderObject () {
cam = Camera.current;
@paraself
paraself / Easing.cs
Created August 1, 2016 15:58 — forked from Fonserbc/Easing.cs
Compact and simple easing functions for Unity
using UnityEngine;
/*
* Functions taken from Tween.js - Licensed under the MIT license
* at https://github.com/sole/tween.js
*/
public class Easing
{
public static float Linear (float k) {
@paraself
paraself / gist:c3fe55f333397319444dfd9cc48491a8
Last active August 4, 2016 10:24 — forked from Arakade/gist:9dd844c2f9c10e97e3d0
Call from OnDrawGizmos() to draw text at Unity3D glocal position in Editor
public static void DrawString(Camera cam,string text, Vector3 worldPos, Color? colour = null)
{
if (IsValidCamera (cam) == false)
return;
UnityEditor.Handles.BeginGUI();
Color c = GUI.color;
if (colour.HasValue) GUI.color = colour.Value;
var view = UnityEditor.SceneView.currentDrawingSceneView;
if (view==null) return;
@paraself
paraself / Events.cs
Created August 29, 2016 07:17 — forked from wmiller/Events.cs
Unity3D Event System
using System.Collections;
using System.Collections.Generic;
public class GameEvent
{
}
public class Events
{
static Events instanceInternal = null;