Unity初心者の俺が調べたことをメモするスレ (99レス)
上
下
前
次
1-
新
54
: 2023/09/17(日)22:58
ID:SjciO0EV(1/2)
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
54: [sage] 2023/09/17(日) 22:58:20.80 ID:SjciO0EV 基本的に実装したい処理が思い浮かんだ時に必要そうな処理を基礎からその都度調べているだけよ 地道にUnityやっていけば必ず到達できるレベルでしかないからガンバレ 本日の作業もメニュー作り 静的イベントを利用してクラス間のやり取りをするうちに気になったのが、イベントとゲームオブジェクトのライフサイクルとの関係性 メインメニュー → 「装備」ボタンを押すと静的イベントを発火 → リッスンした装備メニューのマネージャークラスが装備メニューをSetActive といった流れを実装したかったが、テストプレイすると「装備」ボタンを押しても装備メニューが起動しない 原因は、装備メニューのマネージャークラスがアタッチされたゲームオブジェクトが無効化されていたためっぽい 無効化されたゲームオブジェクトの関数を外部からコールすることは可能だが、無効化中にはイベントのリスナーとしてコールバックを行うことはできないようだ 確かにゲームオブジェクトにアタッチされたクラスはUpdateなどのマジックメソッドが呼び出されないが、厳密にはこれらもランタイムから呼び出されている訳で、外部からコールされている状態に近いように思える イベントのリスナーとしてのコールバックもEventHandler?が呼び出しているらしいので、「ゲームオブジェクト」のライフサイクルにはこれらの仕様を変更する(というか、制限された仕様のインスタンスをUnityが提供している?)ようだ まあ面倒な理屈はともかく、イベントでやり取りするクラスは発火前にゲームオブジェクトを有効化しておくか、MonoBehaviourを利用しないクラスとして設計しましょう、というのが今日得た結論となる http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/54
基本的に実装したい処理が思い浮かんだ時に必要そうな処理を基礎からその都度調べているだけよ 地道にやっていけば必ず到達できるレベルでしかないからガンバレ 本日の作業もメニュー作り 静的イベントを利用してクラス間のやり取りをするうちに気になったのがイベントとゲームオブジェクトのライフサイクルとの関係性 メインメニュー 装備ボタンを押すと静的イベントを発火 リッスンした装備メニューのマネージャークラスが装備メニューを といった流れを実装したかったがテストプレイすると装備ボタンを押しても装備メニューが起動しない 原因は装備メニューのマネージャークラスがアタッチされたゲームオブジェクトが無効化されていたためっぽい 無効化されたゲームオブジェクトの関数を外部からコールすることは可能だが無効化中にはイベントのリスナーとしてコールバックを行うことはできないようだ 確かにゲームオブジェクトにアタッチされたクラスはなどのマジックメソッドが呼び出されないが厳密にはこれらもランタイムから呼び出されている訳で外部からコールされている状態に近いように思える イベントのリスナーとしてのコールバックも?が呼び出しているらしいのでゲームオブジェクトのライフサイクルにはこれらの仕様を変更するというか制限された仕様のインスタンスをが提供している?ようだ まあ面倒な理屈はともかくイベントでやり取りするクラスは発火前にゲームオブジェクトを有効化しておくかを利用しないクラスとして設計しましょうというのが今日得た結論となる
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 45 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.047s