オブジェクトIDの取得
by 煌魔 on 2025/07/20 04:32 3 コメント
煌魔
初めてマスターにチャレンジし、四苦八苦しながら楽しませていただいております!

オブジェクトID(配置一覧で、()に入っているもの)を取得する手段はありますか?
やりたい事としては、例えばbutton1、button2、button3というオブジェクトがボード上にあり、すべて同じクリックイベントを設定している際に、イベント内でどのボタンオブジェクトに触れたのかを判定し、条件分岐したいです。
2025/07/20 04:32
ディグダ
結構前の質問なのでもう解決してそうな気もしますが、一応。

条件分岐コマンドの「変数」で
\e.Argument
を変数名いれるところに入力すると操作したオブジェクトのオブジェクトIDとして分岐の設定ができると思います。
2025/08/02 15:53
煌魔
ありがとうございます!
ただ、試してみたところうまくいかずでした……。

自分で設定したオブジェクトIDが返ってくることが目的なのですが、
教えていただいた方法だとUUIDのような長いIDが返ってきました。
例のようなbutton1~3ぐらいの数であれば、そのIDを条件分岐すれば解決するのですが、下記のような事情があるので難しそうでした。

・オブジェクトIDに使用している数(例だと"button1"の1部分)を値として使用したい為
・最終的に数十個・複数ボードのオブジェクトを判定する必要がある為

今はオブジェクトの数分ボードイベントを作成し、引数に値を入れ、共通の処理をするコモンイベントに渡しています。が、呼び出し4つのボードに32個、計128イベントを作成することになり、結構なゴリ押し解法なので、なにかスマートな手段が無いものかと思い……。
2025/08/10 10:39
ヒエン
ぱっと思いついた案ですが
配列変数を一つ用意し、オブジェクト設置時に特殊変数のキャラクターから設置オブジェクトのID(UUIDみたいなやつ)を取得して保存(button0なら0の位置に保存)
クリック時は配列変数の操作のインデックスで引数を探すという手があります。

注意点としては、オブジェクト設置後に一定時間のwaitが必要なこと
あまりにも多すぎると保存先の配列変数が文字数上限に引っかかること(一応31体まで保存できることは確認済み)ですね
2025/08/10 20:20
コメントには ログインする必要があります。