Skip to content

Instantly share code, notes, and snippets.

using System.Collections.Generic;
using UnityEngine.Pool;
public struct PooledListScope<T> : System.IDisposable
{
List<T> m_List;
public static PooledListScope<T> Get(out List<T> list)
{
list = ListPool<T>.Get();
@takazerker
takazerker / AddressablesTools.cs
Created February 13, 2023 14:54
Adds addressables shortcuts to the toolbar
using System.Reflection;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor;
using UnityEditor.Toolbars;
static class AddressableTools
{
static readonly System.Type ToolbarType = typeof(EditorGUI).Assembly.GetType("UnityEditor.Toolbar");
static readonly FieldInfo get = ToolbarType.GetField(nameof(get), BindingFlags.Static | BindingFlags.Public);
@takazerker
takazerker / AnimatorProperties.cs
Created August 6, 2022 07:45
Adds state and parameter selectors.
//=============================================================================
// Licensed under CC0. Takanori Shibasaki
//=============================================================================
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
[System.Serializable]
public struct AnimatorStateName
{
@takazerker
takazerker / StateMachine.cs
Last active July 23, 2022 17:07
C# StateMachine
//=============================================================================
// Licensed under CC0. Takanori Shibasaki
//=============================================================================
using System.Collections.Generic;
using System.Runtime.CompilerServices;
public abstract class StateBase
{
public virtual void Begin() { }
public virtual void End() { }
@takazerker
takazerker / TextureArrayImporter.cs
Last active April 28, 2022 19:52
Texture2DArray importer for Unity
using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.AssetImporters;
class TextureArrayJson
{
public int SerializedVersion;
public Texture2D Source;
}
@takazerker
takazerker / SkinnedMeshTools.cs
Created December 10, 2020 19:32
Reconstructs bone hierarchy of SkinnedMeshRenderer
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
static class SkinnedMeshTools
{
[MenuItem("CONTEXT/SkinnedMeshRenderer/Update Bone Hierarchy")]
static void UpdateBoneHierarchy(MenuCommand cmd)
{
var targetSkin = cmd.context as SkinnedMeshRenderer;