Skip to content

Instantly share code, notes, and snippets.

View AGeorgy's full-sized avatar

George Ananchenko AGeorgy

View GitHub Profile
// #define USE_VEXE_FAST_REFLECTION // download it at https://github.com/vexe/Fast.Reflection increases reflection invoke performance significantly
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Reflection;
#if USE_VEXE_FAST_REFLECTION
@kinifi
kinifi / AutoSave.cs
Created November 3, 2015 19:28
Auto Save the current open Unity 3D level every 30 seconds
/* Created by Chris Figueroa - @Kinifi
* Create a script called AutoSave.cs
*/
using UnityEngine;
using UnityEditor;
using System.Collections;
public class AutoSave : EditorWindow {
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using Ionic.Zip;
@JakubNei
JakubNei / MyQuaternion.cs
Last active June 8, 2023 17:14
A custom completely managed implementation of UnityEngine.Quaternion. Base is decompiled UnityEngine.Quaternion. Doesn't implement methods marked Obsolete. Does implicit coversions to and from UnityEngine.Quaternion
using System;
using UnityEngine.Internal;
using UnityEngine;
using System.Runtime.Serialization;
using System.Xml.Serialization;
/// <summary>
/// Quaternions are used to represent rotations.
/// A custom completely managed implementation of UnityEngine.Quaternion
/// Base is decompiled UnityEngine.Quaternion
@liortal53
liortal53 / WWWRequest.cs
Last active July 9, 2016 22:05
Workaround for a Unity bug with yielding a WWW object on iOS with no network connectivity
using System.Collections;
using UnityEngine;
/// <summary>
/// Wrapper around Unity's WWW request class.
/// </summary>
public class WWWRequest : IEnumerator
{
/// <summary>
/// The default timeout for requests (in seconds).
@JakubNei
JakubNei / ComponentsCopier.cs
Last active January 31, 2023 05:41
A simple little editor extension to copy and paste all components
/*
A simple little editor extension to copy and paste all components
Help from http://answers.unity3d.com/questions/541045/copy-all-components-from-one-character-to-another.html
license: WTFPL (http://www.wtfpl.net/)
author: aeroson
*/
using UnityEngine;
using UnityEditor;
@liortal53
liortal53 / RemoveEmptyFolders.cs
Last active October 9, 2023 12:46
Clean Unity project from empty folders
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
public class RemoveEmptyFolders
{
/// <summary>
/// Use this flag to simulate a run, before really deleting any folders.
/// </summary>
@dwilliamson
dwilliamson / SphereIndexing.hlsl
Created July 30, 2015 23:50
Faster Sphere Indexing
float3 PositionToOctahedron(float3 position)
{
// Normalize input position to unit sphere to simplify required ops
float3 P = normalize(position);
// Get octant index
float3 side = P >= 0 ? 1 : 0;
float octant_index = side.x + side.y * 2 + side.z * 4;
// Project onto octahedron face, then onto each x/y plane
@JakubNei
JakubNei / DeferredSynchronizeInvoke.cs
Last active December 29, 2024 10:46
Implementation of ISynchronizeInvoke for Unity3D game engine. Can be used to invoke anything on main Unity thread. ISynchronizeInvoke is used extensively in .NET forms, it's is elegant and quite useful in Unity as well. I implemented it so i can use it with System.IO.FileSystemWatcher.SynchronizingObject.
/*
Implementation of ISynchronizeInvoke for Unity3D game engine.
Can be used to invoke anything on main Unity thread.
ISynchronizeInvoke is used extensively in .NET forms, it's is elegant and quite useful in Unity as well.
I implemented it so i can use it with System.IO.FileSystemWatcher.SynchronizingObject.
help from: http://www.codeproject.com/Articles/12082/A-DelegateQueue-Class
example usage: https://gist.github.com/aeroson/90bf21be3fdc4829e631
version: aeroson 2017-07-13 (author yyyy-MM-dd)
@linadk
linadk / UnetHelloWorld
Created June 19, 2015 18:37
Using the Unity3d Unet LLAPI this will establish a connection and send data. There aren't many examples out there for this currently so I thought I'd write this up.
/// <summary>
/// UNet LLAPI Hello World
/// This will establish a connection to a server socket from a client socket, then send serialized data and deserialize it.
/// </summary>
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;