Skip to content

Instantly share code, notes, and snippets.

@zwcloud
zwcloud / TextureScaler.cs
Created January 4, 2020 14:14
A unility class with functions to scale Texture2D Data, by petersvp from http://answers.unity.com/answers/987332/view.html
using UnityEngine;
/// A unility class with functions to scale Texture2D Data.
///
/// Scale is performed on the GPU using RTT, so it's blazing fast.
/// Setting up and Getting back the texture data is the bottleneck.
/// But Scaling itself costs only 1 draw call and 1 RTT State setup!
/// WARNING: This script override the RTT Setup! (It sets a RTT!)
///
/// Note: This scaler does NOT support aspect ratio based scaling. You will have to do it yourself!
@zwcloud
zwcloud / CustomAssetInspector.cs
Created July 24, 2021 10:01 — forked from StephenHodgson/CustomAssetInspector.cs
Unity custom inspector window to render markdown language as text asset.
using System;
using System.IO;
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(DefaultAsset))]
public class CustomAssetInspector : Editor
{
public override void OnInspectorGUI()
{
@zwcloud
zwcloud / TinyTween.cs
Created September 28, 2021 03:09
A single file tween library in C# with support built in for XNA and Unity data types. MIT License.
// TinyTween.cs
//
// Copyright (c) 2013 Nick Gravelyn
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
// and associated documentation files (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge, publish, distribute,
// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
@zwcloud
zwcloud / SerializableSortedList.cs
Created February 26, 2024 05:42
Unity JsonUtility SerializableSortedList
[Serializable]
public class SerializableSortedList<TKey, TValue> : SortedList<TKey, TValue>, ISerializationCallbackReceiver
{
[SerializeField] private List<TKey> keys = new List<TKey>();
[SerializeField] private List<TValue> values = new List<TValue>();
// Unity serialization callback before serialization
public void OnBeforeSerialize()
{
keys.Clear();