/UArrayCollections

Utility classes that can operate UdonSharp array variables like List or Dictionary

Primary LanguageC#

UArrayCollections

UdonSharpでは現状(ver1.1.1時点)で実装されていない、ListやDictionaryなどのコレクションのような操作を、通常の配列変数で実現するUdonSharpのユーティリティクラスです。
ListやDictionaryの他に、QueueやStackも用意しています。

使用条件

UdonSharp v1.1.1 以降

ダウンロード

Releasesページ、または、こちらのページから zipファイル、またはUnityPackageをダウンロードしてください。

使用方法

  • using UArrayCollections を宣言します。
  • 配列変数を定義します。
  • 配列変数を引数とし、Initializeメソッドを呼び出します。(配列の初期化)
  • 配列変数を引数とし、各機能のメソッドを実行します。(メソッド詳細はこちら
using UdonSharp;
using UArrayCollections;

public class UseArrayCollections : UdonSharpBehaviour
{
    string[] values;

    void AnyAction()
    {
        UList.Initialize(ref values);
        UList.Add(ref values, "abc");
    }
}

Dictionaryの場合、KeyValueのために2つの配列変数を使用します。

    string[] keys;
    string[] values;

    void AnyAction()
    {
        UDict.Initialize(ref keys, ref values);
        UDict.Add(ref keys, ref values, "k1", "abc");
        UDict.Add(ref keys, ref values, "k2", "def");
        string k1val = UDict.GetValue(keys, values, "k1");  // k1val = "abc"
    }

注意

処理は一般的な配列コピーやループ検索が主です。
処理効率は特別に優れているわけではありません。
特に配列の要素数が多くなるに従い、重くなる傾向にあります。

ライセンス

MIT Licenseで運用します。
当パッケージを組み込み、再配布することを許可します。
その際には当パッケージが組み込まれていることを記載しておくことをお勧めします。