Skip to content

Instantly share code, notes, and snippets.

@mao-test-h
mao-test-h / CompileTime.cs
Last active January 4, 2020 16:50
コンパイル時間計測 (Unity2018/2019対応版)
// referred to:
// http://baba-s.hatenablog.com/entry/2019/05/22/084000
// https://forum.unity.com/threads/editorapplication-iscompiling-is-always-false.770126/
using UnityEngine;
using UnityEditor;
#if UNITY_2019_1_OR_NEWER
using UnityEditor.Compilation;
#endif
@mao-test-h
mao-test-h / MonafuwaUtility.cs
Created December 9, 2019 18:17
Unityのタイトルバーを「もなふわすい~とる~む」に設定出来るEditor拡張(Windows限定)
#if UNITY_EDITOR_WIN
using System;
using System.Runtime.InteropServices;
using System.Text;
using UnityEditor;
namespace MonafuwaUtility
{
static class MonafuwaSweetRoomEditor
{
@mao-test-h
mao-test-h / EndianConverter.cs
Created December 7, 2019 19:52
エンディアン変換
// refered to:
// - https://takachan.hatenablog.com/entry/2018/03/10/020555
using System;
namespace Utility
{
internal static class EndianConverter
{
public static char Reverse(char value) => (char)Reverse((ushort)value);
@mao-test-h
mao-test-h / UITraitCollectionBridge.cs
Last active May 7, 2021 20:16
Unity上からiOS端末のダークモード判定を行う
using System.Runtime.InteropServices;
namespace iOSNative
{
/// <summary>
/// `UITraitCollection`のBridge
/// </summary>
/// <remarks>
/// - https://developer.apple.com/documentation/uikit/uitraitcollection
/// </remarks>
@mao-test-h
mao-test-h / NativeUtility.cs
Created September 15, 2019 11:42
ポインタをNativeArrayに変換
namespace Unity.Collections.LowLevel.Unsafe
{
public static unsafe class NativeUtility
{
public static NativeArray<T> PtrToNativeArray<T>(T* ptr, int length)
where T : unmanaged
{
var arr = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray<T>(ptr, length, Allocator.Invalid);
// これをやらないとNativeArrayのインデクサアクセス時に死ぬ
@mao-test-h
mao-test-h / Native2DArray.cs
Last active December 31, 2020 05:15
Unityでのネイティブメモリ確保用のラッパー
using System;
using System.Runtime.InteropServices;
using Unity.Collections.LowLevel.Unsafe;
namespace Unity.Collections
{
/// <summary>
/// ネイティブメモリでの2次元配列のメモリ確保用ラッパー
/// </summary>
[NativeContainer]
@mao-test-h
mao-test-h / InsertDefault.cs
Last active March 29, 2019 07:37
[SerializeField] private 変数にdefault代入してくれる君
// Unity2018.3からprivateな[SerializeField]が初期化しないと警告吐くようになってきたので、
// 各CSソースを解析して一括で"= default;"を付ける奴。
// ※ sedコマンドとかでも出来なくは無いが..改行や既存の代入などを踏まえるとこっちの方が早かった。
namespace Tools // HACK: 適当なので都合に合わせて命名
{
using System;
using System.IO;
using UnityEngine;
using UnityEditor;
@mao-test-h
mao-test-h / NativeObject.cs
Created February 23, 2019 18:09
少し保守的にしてみたネイティブメモリ側に作るオブジェクト。(ぶっちゃけ長さが1のNativeArrayと変わらない)
namespace LowLevel.Unsafe
{
using System;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
public unsafe struct NativeObject<T> : IDisposable
where T : unmanaged
{
[NativeDisableUnsafePtrRestriction] readonly T* _buffer;
@mao-test-h
mao-test-h / ProgressBarDrawer.cs
Created February 21, 2019 18:48
Inspectorにプログレスバーを表示する奴のサンプル
// usage:
// [SerializeField] [ProgressBar] float _sample;
// [SerializeField] [ProgressBar("hoge")] float _sample;
// [SerializeField] [ProgressBar(0f, 1f)] float _sample;
// [SerializeField] [ProgressBar(0f, 1f, "hoge")] float _sample;
namespace Sample
{
using System;
using UnityEngine;
@mao-test-h
mao-test-h / Dokaben-Sprite-Default.shader
Created October 29, 2018 14:11
ドカベンロゴアニメーションシェーダー(書き直し版)
Shader "Custom/Sprites/Dokaben"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
[HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
[HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1)
[PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}