GDScript 2.0(Godot 4.x)では、乱数を扱うためのメソッドが RandomNumberGenerator
クラスに集約されています。これを使うのが推奨されており、以前の randi()
や randf()
のようなグローバル関数は非推奨または廃止されています。
以下は、GDScript 2.0で乱数を取得する基本的な方法です:
gdscriptvar rng = RandomNumberGenerator.new() rng.randomize() # 時間を元にシードを設定 var random_int = rng.randi_range(0, 9) print(random_int)
gdscriptvar rng = RandomNumberGenerator.new() rng.randomize() var random_float = rng.randf() print(random_float)
gdscriptvar rng = RandomNumberGenerator.new() rng.randomize() var random_range = rng.randf_range(-5.0, 5.0) print(random_range)
randomize()
を呼ばないと、毎回同じ乱数列になります(テスト目的では省略することもあります)。
RandomNumberGenerator
はオブジェクトなので、毎回 new()
するか、再利用できます。
必要なら、ノードにメンバーとして持たせて再利用できるようにもできますよ:
gdscript@onready var rng := RandomNumberGenerator.new() func _ready(): rng.randomize() print(rng.randi_range(1, 100))
他にも乱数で何かしたいことがあれば教えてください!