Skip to content

Instantly share code, notes, and snippets.

Yurii Selinnyi quizcanners

Block or report user

Report or block quizcanners

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View PEGI Custom Editor.cs
// Article: https://medium.com/@quizcanners/unity-i-have-a-custom-editor-for-every-script-5eddf20fdacc
using System.Collections.Generic;
using PlayerAndEditorGUI;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class SomeScript : MonoBehaviour: IPEGI {
View Bevel Shader Edge Function
inline float3 DetectSmoothEdge(float3 edge, float3 junkNorm, float3 sharpNorm, float3 edge0, float3 edge1, float3 edge2) {
edge = max(0, edge - 0.965) * 28;
 float allof = edge.r + edge.g + edge.b;
float border = min(1, allof);
float3 edgeN = edge0*edge.r + edge1*edge.g + edge2*edge.b;
float junk = min(1, (edge.g*edge.b + edge.r*edge.b + edge.r*edge.g)*2);
return normalize((sharpNorm*(1 - border)+ border*edgeN)*(1 - junk) + junk*(junkNorm));
}
View Surface Shader Cheat-Sheet
// Transparency
alpha:fade // Means it is not a glass
Tags { "Queue" = "Transparent" "RenderType" = "Transparent" }
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
// Adjusting strength of the Normal
o.Normal = UnpackNormal(bump0);
o.Normal.xy *= wet;
o.Normal.z = 1;
View ComparisonWithPEGI.cs
public bool Inspect()
{
if ("Object's Transparency:".edit(ref transparency))
RecalculateShaderParameters();
if (transparency != 0.5f && icon.Refresh.Click("Will load default value",25).nl())
transparency = 0.5f;
return false;
}
View ComparisonWithPEGI_NativeWay.cs
public override void OnInspectorGUI() {
var controller = (MyMaterialController )target;
EditorGUILayout.BeginHorizontal();
EditorGUI.BeginChangeCheck();
controller .transparency = EditorGUILayout.FloatField("Object's Transparency:", controller .transparency);
View MatrixOperations.cs
// https://gist.github.com/hecomi/9580605
//Dirctionary:
View Matrix : camera.worldToCameraMatrix
// How to project a texture:
//cs:
projectionMatrix = camera.projectionMatrix * camera.worldToCameraMatrix
//vert:
View Shader Performance Tips.cs
// All functions: http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html
// Performance
// Accessing with "_Name" is slower
Shader.SetGlobalFloat("_Name", value); // =>
int id = Shader.PropertyToID("_Name"); // Once at Start/ OnEnable
Shader.SetGlobalFloat(id, value);
// Trouble-shooting:
// Black Pixels on some devices = Division by zero
@quizcanners
quizcanners / Circle.shader
Last active Apr 25, 2019
Vert Frag Shader Template
View Circle.shader
// This is a starting point for most effects I make.
Shader "Playtime Painter/Effects/Circle" {
Properties{
_MainTex("Albedo (RGB)", 2D) = "white" {}
[Toggle(_DEBUG)] debugOn("Debug", Float) = 0
}
SubShader{
Tags{
@quizcanners
quizcanners / Shader_Cheat-Sheet.cs
Last active Feb 18, 2020
To keep snippets of code for Shaders. Just some stuff that I often use but also often forget because brain=poo
View Shader_Cheat-Sheet.cs
//https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html
//https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityCG.cginc - Most interesting stuff ;)
//https://github.com/TwoTailsGames/Unity-Built-in-Shaders/tree/master/CGIncludes
//https://docs.unity3d.com/Manual/SL-Shader.html
//http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html
//https://unity3d.com/how-to/shader-profiling-and-optimization-tips
//https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html
//http://www.deepskycolors.com/archive/2010/04/21/formulas-for-Photoshop-blending-modes.html
//http://www.iquilezles.org/blog/
//https://www.youtube.com/channel/UCcAlTqd9zID6aNX3TzwxJXg
View iSTD.cs
// An example snippet for: https://www.quizcanners.com/single-post/2018/04/20/Story-Trigger-Data-Interface-iSTD
public stdEncoder Encode() => new stdEncoder()
.Add("mrkP", mapMarkerPosition);
.Add("mrkC", mapMarkerColor);
public bool Decode (string tag, string data){
switch (tag){
case "mrkP": mapMarkerPosition = data.ToVactor2(); break;
case "mrkC": mapMarkerColor = data.ToColor(); break;
You can’t perform that action at this time.