Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View soraphis's full-sized avatar

Soraphis soraphis

View GitHub Profile
@soraphis
soraphis / RectExtensions.cs
Last active October 30, 2017 08:44
Unity3D c# extension class for Rect objects. useful for developing editor addons
using UnityEngine;
namespace Assets.Soraphis.Lib {
public static class RectExtensions {
/// <summary>
/// Splits a Rect in vertical ordered, even, pieces and returns the piece at the given index
/// </summary>
public static Rect SplitRectV(this Rect rect, int many, int start, int length = 1) {
var height = rect.height/many;
@soraphis
soraphis / PhysicsDisposable.cs
Last active August 16, 2016 17:22
Reduces code clutter when using sphere casts or raycasts when the actual object should be ignored
/// <summary>
/// This class uses the decorator pattern and the Idisposable interface to allow a cleaner usage of raycast/spherecasts
/// or other physic quarrys, which should not hit the gameobject
/// </summary>
class PhysicsDisposable : IDisposable {
private static Stack<PhysicsDisposable> Pool = new Stack<PhysicsDisposable>(4);
private List<Collider> colliders = new List<Collider>(2);
private List<int> originalLayer;
@soraphis
soraphis / AdditionalTextAttribute.cs
Last active September 20, 2017 18:23
A small editor extension to add additional text informations into the Inspectors TextFields
using UnityEngine;
namespace Assets.Soraphis.MiniScripts {
public class AdditionalTextAttribute : PropertyAttribute {
public readonly string Text;
public AdditionalTextAttribute(string text) {
Text = text;
}
}
@soraphis
soraphis / ClickWordInTextTest.cs
Created August 8, 2016 14:24
Test Unity script to handle clicks on specific words in UI-Text components
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace DefaultNamespace {
public class ClickWordInTextTest : MonoBehaviour, IPointerClickHandler{
public Text TheTextComponent; // filled in the inspector or somewhere else
@soraphis
soraphis / MultiTransformClipboard.cs
Created July 30, 2016 13:03
Unity Script to be able to copy multiple transform components in edito mode (preview here: https://sendvid.com/w7i0jddd)
using UnityEngine;
using System.Collections.Generic;
using UnityEditor;
[InitializeOnLoad]
public class MultiTransformClipboard {
const string ComponentName = "Transform";
static MultiTransformClipboard()
@soraphis
soraphis / League of Legends Healthbar-System
Last active June 20, 2016 10:58
video of the script can be found here: https://youtu.be/u-3WI5WzO7U
using UnityEngine;
public class HealthBarRenderer : MonoBehaviour {
/// <summary>
/// This attributes should be read from a unit's Health-Component
/// </summary>
[Header("Health Attributes")]
public int Health;
public int PhysicalShield;
public int MagicalShield;
@soraphis
soraphis / MatrixLoop.cs
Last active April 17, 2016 21:55
Three equivalent ways to loop over an 2D array. the second one has less indentation.
/*
watching this video: https://unity3d.com/learn/tutorials/modules/advanced/scripting/procedural-cave-generation-pt1
made me scream because of this much copy-and-paste the nested-loop thing
so here are a few workarounds:
*/
int width = 3, height = 2;
int[,] fields = new int[height, width]; // (m x n)-matrix
// ---------------------
@soraphis
soraphis / CamerFadeScript.cs
Last active March 13, 2018 15:13
Implementation of an CameraFadeScript for Unity 5 with Code only, no gameobjects or ui elements needed. (There has to be a main camera in the scene :P)
using System.Collections;
using UnityEngine;
// does need UnityStandardAssets > ImageEffects
// does not work if you use the ImageEffect "ScreenOverlay" on your camera for visual effects
// Usage:
// From a MonoBehaviour-Class: StartCoroutine(CameraFade.FadeOut(0.8f));
// From inside a coroutine (if you want to wait for finished fading): yield return CameraFade.FadeOut(0.5f);
// From inside a coroutine (if you dont want to wait): CameraFade.FadeOut(0.5f);
@soraphis
soraphis / PositionHandleEditor.cs
Created April 1, 2016 16:33
Unity3D Handles by Propertydrawer
#if UNITY_EDITOR
namespace Editor {
using UnityEditor;
[CustomEditor(typeof(MonoBehaviour), true, isFallback = true)]
public class PositionHandleEditor : UnityEditor.Editor {
void OnSceneGUI() {
var t = target as MonoBehaviour;
if(t == null) return;
@soraphis
soraphis / arctan
Created February 16, 2014 15:51
arctan differenzieren
## Arkustangenz ableiten
$ f(x) = tan(x) $ und $ \bar f = arctan(x)$
$$ f(\bar f(x)) = x$$
$$ \frac{\delta f(\bar f(x))}{\delta x} = \frac{\delta x}{\delta x} $$
$$ \frac{\delta tan(arctan(x))}{\delta x} = \frac{\delta x}{\delta x} $$