ThreadSafe対応の関数内でどうやって乱数生成したらいいんだ?と思ったので考えてみました。
ThreadSafe関数を設定
ステートに来た際に呼ばれてほしいので、On Become Relevant に設定します。
Property Access 経由でGetGameTimeSinceCreationを使う
Property Access に「GetGameTimeSinceCreation」というアクターが生成されてからの時間を取得する関数がありました。これを使えば乱数ぽいことができるかもしれないので使ってみます。
案A:SINでなんとかしてみる
ゲーム内時間を0~1の値に変換し、Lerpに繋げ、0~10の値を出力するようにしてみました。
結果
2秒ごとに呼んでみたらこのような結果になりました。
乱数ぽさがでているような。
案B:Stream版のRandom関数を使ってみる
Stream版のRandom関数が使えたので使ってみました。
結果
2秒ごとに呼んでみたらこのような結果になりました。
Seedの値が2ずつ増えていき、出力される値は1ずつ増えていく感じのようです。
規則性がはっきり出ちゃっています。
乱数について調べる
【Unity道場 札幌スペシャル2 2017】乱数完全マスター - YouTube
乱数生成法
沼にはまりそうなので、調査をいったんやめます。