Skip to content

Instantly share code, notes, and snippets.

@ShutovKS
ShutovKS / Extensions.cs
Created June 15, 2024 14:36
Getting random value from enum in C#
public static class Extensions
{
public static int RandomIndex<T>() where T : Enum
{
var values = Enum.GetValues(typeof(T));
return new System.Random().Next(values.Length);
}
}
@ShutovKS
ShutovKS / MonoBehaviourSingletonExample.cs
Created May 6, 2024 17:02
Example Singleton "MonoBehaviour"
using UnityEngine;
public class MonoBehaviourSingletonExample : MonoBehaviour
{
public static MonoBehaviourSingletonExample Instance => _instance ?? Initialize();
private static MonoBehaviourSingletonExample _instance;
private static MonoBehaviourSingletonExample Initialize()
{
var instance = new GameObject();
@ShutovKS
ShutovKS / ExampleQuit.cs
Last active May 15, 2024 19:19
Quitting the game in Unity
using UnityEngine;
public class ExampleQuit
{
public static void Quit()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#elif UNITY_WEBGL
// Link to the website page where you want to go after clicking the exit button
@ShutovKS
ShutovKS / UnityMainThreadManager.cs
Created April 20, 2024 17:38
Unity main thread manager
using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
public class UnityMainThreadManager : MonoBehaviour
{
private static readonly Queue<Action> executionQueue = new();
private static UnityMainThreadManager _instance;
@ShutovKS
ShutovKS / BuildTargetConverter.cs
Last active April 20, 2024 17:48
Converter for Unity, BuildTargetGroup => BuildTarget & BuildTarget => BuildTargetGroup
using UnityEditor;
public static class BuildTargetConverter
{
public static BuildTarget ToBuildTarget(this BuildTargetGroup buildTargetGroup)
{
return buildTargetGroup switch
{
BuildTargetGroup.GameCoreXboxOne => BuildTarget.GameCoreXboxOne,
BuildTargetGroup.EmbeddedLinux => BuildTarget.EmbeddedLinux,
@ShutovKS
ShutovKS / .gitignore
Last active February 2, 2024 18:19
Unity gitignore
### Unity .gitignore template
# This .gitignore file should be placed at the root of your Unity project directory
# Unity-specific
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/