Skip to content

0.1.9

Choose a tag to compare

@zz-roba zz-roba released this 06 Aug 10:23
· 8 commits to main since this release

言語

  • メソッドの多重定義に対応しました。同じ名前で引数の違うメソッドを並べられます。
  • staticなヘルパークラスのメソッドと、拡張メソッドを呼べるようになりました。
  • Behaviourでinterfaceを実装できるようになりました。同じinterfaceを実装したBehaviourは、
    種類を混ぜて1つの配列に入れ、同じ呼び出し1行で動かせます。相手の型を知らないまま呼べます。
  • Behaviourのクラスを型引数にしたGetComponentを書けるようになりました。子や親から探す形もあります。
  • ジャグ配列(int[][])と、Behaviourの配列に対応しました。
  • foreachでTransformの子とstringの文字を回せるようになりました。
  • 増減(x++)と複合代入(x += 3)を、式の値としても使えるようになりました。
  • switch式でfloatを扱えるようになりました。switch文のcase nullも書けます。
  • 文字列補間の書式指定({x:F2})と桁揃え({x,8})を書けるようになりました。
  • structとrecordのstatic readonlyを書けるようになりました。
  • object型の引数に値型を渡せるようになりました。objectから値型へ戻すキャストも書けます。
  • 範囲外の整数キャストが、C#と同じ切り詰めになりました。以前は実行時にそこで止まっていました。
  • typeof(string).Nameのような継承されたメンバの読み取り、値型の引数なしnew、
    objectと文字列の連結も書けるようになりました。

エディタ

  • 同期などの属性をusing Tsukimi;だけで書けるようになりました。UdonSynced、UdonBehaviourSyncMode、
    RecursiveMethod、FieldChangeCallbackが同じ名前空間にあります。
  • Create/T# Scriptで作るスクリプトの雛形も、using Tsukimi;だけになりました。
  • 別のフォルダにある型を参照したときのエラーメッセージを変えました。名前が見つからないと言うだけでなく、
    そのファイルが今のコンパイル範囲の外にあることも伝えます。
  • コンパイルは通るのに実行すると壊れるパターンを、いくつかコンパイル時のエラーにしました。
    以前はエラーも警告も出ないままアセンブルまで通り、動かして初めて分かる状態でした。

速度

  • 参照型の配列を添字で読むのにかかる時間が、要素数に比例しなくなりました。
    オブジェクトを配列に並べてループで回す書き方に効きます。

同梱サンプル

  • Showcaseを17本に増やしました。増えた1本は、種類の違うBehaviourを1つの配列に混ぜて、
    同じ呼び出し1行で動かすinterfaceの例です。

修正

  • 再帰(RecursiveMethod)を含むプログラムが、Unity上で1つもアセンブルできませんでした。
  • 引数のあるpublicメソッドを、別のBehaviourから呼べませんでした。
  • 参照型のメンバを持つrecordの等値比較が、実行時に止まっていました。

移行の注意

  • 0.1.8までusing UdonSharp;とusing Tsukimi;を両方書いていた場合は、using UdonSharp;を消してください。
    同じ名前の属性が両方にあるため、そのままだとどちらの属性か決められないというエラーになります。

既知の制限

  • UdonBehaviourSyncModeを書いても、シーン上のUdonBehaviourのSynchronizationは変わりません。
    手動同期にしたいときは、インスペクタのSynchronizationでManualを選んでください。