Skip to content

Instantly share code, notes, and snippets.

@aras-p
aras-p / foo.md
Last active January 27, 2021 06:32
Controlling fixed function states from materials/scripts in Unity

(typing off the top of my head, might not compile)

Since Unity 4.3:

In the shader, instead of writing Cull Off, write Cull [_MyCullVariable], the value will be fetched from the material or global float/int variable _MyCullVariable then.

You could have it be part of material, e.g. inside Properties block:

[Enum(Off,0,Front,1,Back,2)] _MyCullVariable ("Cull", Int) = 1
@keijiro
keijiro / ToggleTest.shader
Last active March 24, 2023 00:43
Shows how to use the Toggle material property drawer in a shader. See the reference manual for further details: http://docs.unity3d.com/ScriptReference/MaterialPropertyDrawer.html
Shader "ToggleTest"
{
Properties
{
[Toggle(FILL_WITH_RED)]
_FillWithRed ("Fill With Red", Float) = 0
}
SubShader
{
Pass
@nothke
nothke / Draw.cs
Last active January 20, 2024 06:58
///
/// Draw lines at runtime
/// by Nothke
/// unlicensed, aka do whatever you want with it
/// made during Stugan 2016 :)
/// ..(it's midnight, and Robbie clicks A LOT, LOUDLY!)
///
/// Important:
/// - Should be called in OnPostRender() (after everything else has been drawn)
/// therefore the script that calls it must be attached to the camera
@unitycoder
unitycoder / if-branchless.shader
Last active April 3, 2024 11:20
Avoiding Branching / Conditionals in Shaders Fast No If
"The common wisdom of "don't use conditionals in shaders" is one of my biggest frustrations with how shaders are taught.
step(y, x) _is_ a conditional! It compiles to identical code as:
float val = (x >= y ? 1.0 : 0.0)
or
float val = 0.0;
if (x >= y) val = 1.0;"
https://twitter.com/bgolus/status/1235254923819802626
// Performing shader divisions without diving *rcp = approximation of 1/x
float myDividedVal = myValToDivide * rcp(myDivider);
@sourceperl
sourceperl / client.py
Last active March 18, 2022 20:22
Simple key/value store with json and python flask
#!/usr/bin/env python3
import http.client
import json
connection = http.client.HTTPConnection('localhost', port=5000)
headers = {'Content-type': 'application/json'}
connection.request('GET', '/set/foo?value=474', headers=headers)
response = connection.getresponse().read()
@Naphier
Naphier / UGuiTextToTextMeshPro.cs
Created January 4, 2017 15:23
Unity3D Editor Tool to convert Unity GUI Text objects to Text Mesh Pro Text Objects
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using TMPro;
using TMPro.EditorUtilities;
public class UGuiTextToTextMeshPro : Editor
{
[MenuItem("GameObject/UI/Convert To Text Mesh Pro", false, 4000)]
static void DoIt()
Shader “Custom/CurvedWorld” {
Properties {
// Diffuse texture
_MainTex (“Base (RGB)”, 2D) = “white” {}
// Degree of curvature
_Curvature (“Curvature”, Float) = 0.001
// Axis Around which the curvature is required
_Axis (“Axis”, int ) = 2
}
@TheDonDope
TheDonDope / escape.from.tarkov.keybindings.md
Last active January 20, 2023 19:00
Escape from Tarkov Keybindings

Escape from Tarkov Controls Cheat Sheet

BEGINNER'S GUIDE - ALL CONTROLS + TIPS (Escape from Tarkov)

Controls

  • Hold Shift when zoomed in with Mouse Right Click to hold breath and steady aim
  • Press B to switch between firing modes 🔥 (You will always start a raid in single fire mode)
    • The animation when switching to 🔥 🔥 🔥 fire is an ⬆️ flick
  • The animation when switching to 🔥 fire is an ⬇️ flick
@dLopreiato
dLopreiato / ConvexHull.cs
Last active July 4, 2023 21:39
Code Complete Convex Hull c# for Unity
/* This is taken from this blog post:
* http://loyc-etc.blogspot.ca/2014/05/2d-convex-hull-in-c-45-lines-of-code.html
*
* All I have done is renamed "DList" to "CircularList" and then wrote a wrapper for the generic C# list.
* The structure that is supposed to be used is *much* more efficient, but this works for my purposes.
*
* This can be dropped right into your Unity project and will work without any adjustments.
*/
using System.Collections.Generic;
using UnityEngine;
@yasirkula
yasirkula / EditorCollapseAll.cs
Last active March 11, 2024 11:53
An editor script for Unity 3D to collapse all GameObject's in Hierarchy view or to collapse all folders in Project view. See the comments section below for instructions.
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEditor.IMGUI.Controls;
using UnityEditorInternal;
using UnityEngine.SceneManagement;
public static class EditorCollapseAll
{
private const BindingFlags INSTANCE_FLAGS = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;