Skip to content

サンプルコード

ShirasUdonAssembly JSONのサンプルです。各ページでJSONを閲覧・コピーできます。

VRChatワールドにJoinすると、サンプルを選んでShirasUdonVMで実行できます。

CollatzSequence

27から始め、偶数なら2で割り、奇数なら3倍して1を足すCollatz数列を1まで出力します。分岐と繰り返しのサンプルです。

DecimalArithmetic

整数からDecimalを実行時生成し、(10 + 2) × 3 - 5を2で割る加減乗除を行います。計算式とDecimal結果15.5をログへ出力します。

EnumIncrement

VRCTweenEase.LinearをSystemInt32へCOPYし、1を加算してVRCTweenEaseへCOPYで戻します。実行すると変更前のLinearと変更後のInSineをログへ出力します。

FibonacciSequence

フィボナッチ数列の先頭20項を出力します。複数のローカル変数相当の値を更新するループのサンプルです。

FizzBuzz1To100

1から100までを走査し、3の倍数をFizz、5の倍数をBuzz、両方の倍数をFizzBuzzとして出力します。剰余、比較、条件分岐、ループのサンプルです。

GreatestCommonDivisor

ユークリッドの互除法で1071と462の最大公約数21を求めます。剰余を使ったwhileループのサンプルです。

IncreaseLocalPlayerMovement

AddSpeedはローカルプレイヤーのWalk Speed、Run Speed、Strafe Speedを現在値から1 m/s速くします。AddJumpは現在のGravity Strengthを考慮してジャンプ到達高度が約1 m高くなるようJump Impulseを変更します。Resetは各速度とJump ImpulseをVRChat標準値へ戻します。

PrimeNumbersUpTo100

100以下の素数を列挙します。候補ごとの内側ループ、剰余判定、真偽値による分岐を含むサンプルです。

PropertyGetterSetterTests

Vector3.x、Color.a、Rect.widthについて、コンストラクタで値型を生成し、getterで変更前の値を取得、setterで変更、getterで変更後の値を再取得してログへ出力します。__SystemVoidを省略するsetterと明記するsetterの両方を検証します。

RotateFloorSlowly

_startでGameObject.Findを使ってFloorを取得し、VRCTweenでY軸をゆっくり無限回転させます。_stopで保持中のTweenHandleをKillします。回転は各クライアントでローカルに実行されます。

StructDefaultValueTests

Vector3のdefault(T)初期化を検証します。ロード直後の最初の実行で各値のdefaultをログ出力した後、APIの戻り値、コンストラクタ、default値への直接操作という3つの経路で変更し、結果を再度ログ出力します。再実行時はHeapが維持されるため、変更後の値から開始します。

Sum1To100

1から100までの整数を加算し、sum = 5050をDebug.Logへ出力するサンプル。_startを実行するたびにローカル変数相当のsとiを初期化します。

Sum1To1000

1から1000までの整数を加算し、sum = 5050をDebug.Logへ出力するサンプル。_startを実行するたびにローカル変数相当のsとiを初期化します。

Sum1To10000

1から10000までの整数を加算し、sum = 5050をDebug.Logへ出力するサンプル。_startを実行するたびにローカル変数相当のsとiを初期化します。

Vector3Operations

Vector3(1,2,3)とVector3(4,5,6)を生成し、加算、距離、正規化をExternで実行して結果を出力します。