Skip to content

Instantly share code, notes, and snippets.

View snlehton's full-sized avatar

Sampsa Lehtonen snlehton

View GitHub Profile
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
/*
Simple EventManager class to implement one-to-many event passing. Features:
* Simple enum and payload events.
* Delayed event sending (send later in the frame in one place).
* Detects adding duplicates/removing non-existent listeners in Unity editor mode.
@snlehton
snlehton / UnityEditorCheatSheet.cs
Created January 22, 2020 10:19
Various random Unity editor snippets
// Create Dropdown button
if (EditorGUI.DropdownButton(position, GUIContent.none, FocusType.Passive))
{
var genericMenu = new GenericMenu();
// List<string> options
foreach (var option in options)
{
bool selected = option == property.stringValue;
genericMenu.AddItem(new GUIContent(options), selected, () =>
@snlehton
snlehton / ResoScaler.cs
Created October 16, 2016 18:57
A simple Unity component to render the screen in lower resolution
using UnityEngine;
// Render the screen in lower resolution
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class ResoScaler : MonoBehaviour
{
[Range(1, 8)]
public float scale = 1;
@snlehton
snlehton / UIFollow.cs
Created December 19, 2017 12:08
A simple Unity example script that makes a UI component track position of world space object rendered with specific world space camera. Canvas needs to be in Screen Space Camera mode.
// A simple Unity example script that makes a UI component track position of world space object rendered with
// specific world space camera. Canvas needs to be in Screen Space Camera mode.
[ExecuteInEditMode]
public class UIFollow : MonoBehaviour
{
[Tooltip("World space object to follow")]
public GameObject target;
[Tooltip("World space camera that renders the target")]
public Camera worldCamera;
[Tooltip("Canvas set in Screen Space Camera mode")]