[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart6 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
646
(4): 2022/08/03(水)15:40 ID:hAhPT9sa(1/4) AAS
お世話になります。
UIElementsのButton要素にクリックイベントを実装したところ、1クリックしかしていないのに複数回メソッドが呼ばれてしまい困っております。
処理内容の関係で実質1回呼ばれたのとほぼ変わらないため実害は無いのですが、1クリックで1回しか呼ばないようにするにはどのようにすればよろしいのでしょうか?('A`)
関係のありそうな情報を以下に記述いたします。

UXML階層:
GroupBox1
└Button1
省15
651
(1): 野球マン 2022/08/03(水)20:47 ID:vbIiPHPT(1/4) AAS
>>646
this.button1.clicked += TestMethod;

clicked
ってどこで呼び出してるの?
外部リンク[html]:docs.unity3d.com
buttonにデフォルトで付いてて自動的に呼ばれるものではなさそうだが
659
(1): 646 2022/08/04(木)09:32 ID:80wqhdYO(1/4) AAS
お世話になります。
646です。

>>658
それは確か「Q<要素>()で複数の要素が該当した時最初に該当した要素」ってやつだったかと思います。
uxml内で name="" に設定した名前を()内に記述するとその名前が付いた要素だけを取り出せるため、実際のC#スクリプトではほぼ全て名前を指定しております。
First()は使っていませんでしたが、650氏の指摘も含め確認してみようと思います。

このあと外出するため、確認作業が出来るのは何時になるのやら('A`)
661: 646 2022/08/04(木)16:54 ID:80wqhdYO(2/4) AAS
お世話になります。
646です。

結論から言うと、650氏の助言に従いInit()メソッドにDebug.Log()を置いたらドンピシャでしたorz

Init()メソッドは文法上は間違いなく1回しか実行されません。
ところが、今回そのメソッドを記述していた別のクラスの方に問題がありました……。
そのクラスは動的生成されるオブジェクトにコンポーネントとして組み込まれており、動的生成されたオブジェクトの数だけInit()メソッドが実行されたという、実にくだらないオチでした('A`;)
先週末に思い付きで仕様変更を行ったのですが、別のクラスに入れるはずのところを仕様変更前のクラスに突っ込んだ模様……。
省1
663: 646 2022/08/04(木)17:17 ID:80wqhdYO(3/4) AAS
>>662
ええ、本当に学べて良かったです……。
面倒臭がらずにちゃんと確認しておけば、顔真っ赤にして報告せずに済んだわけですからね……orz
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s