[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
862
(3): 名前は開発中のものです。 [sage] 2020/03/16(月) 13:25:01.26 ID:LdLDk6nR(2/3) AAS
>>857
857(1): 名前は開発中のものです。 [sage] 2020/03/16(月) 12:03:58.90 ID:BLklYMyv(1/4) AAS
設計のやり直しするしかない。
まずは入出力のフローを整理することから。
申し訳ございませんが理解ができないのでもう少し詳しくお願いします

>まずは入出力のフローを整理することから。
この点ですが、クリックのたびにRayCastがGUIに接触しているかどうかの処理は毎回入れています。
しかし、閉じるボタンを押したときの挙動の場合
クリック→閉じるボタンのファンクション実行(GUIを閉じる)→Raycastの判定(この時点でGUIが閉じているため、RaycastにGUIが引っ掛からない)
という挙動となってしまいます。

この順番を入れ替えることができるということでしょうか?
クリック時に先にRaycastの判定さえ先行えれば即解決する問題なのですが、どうすれば順序を入れ替えられるのでしょうか。

>>858
858(1): 名前は開発中のものです。 [sage] 2020/03/16(月) 12:08:04.17 ID:BLklYMyv(2/4) AAS
または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。
>または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。
前述の通りRaycastの判定は毎回行っており、ここからさらにどこでフラグを立てればよいかがわかりません

仮に閉じるボタンの所にフラグを設けた場合、FindやGetComponentを使わずに
プレイヤー操作コンポーネントにフラグを送るため、全てのコンポーネントに参照を持つ、
もしくはプレイヤー操作コンポーネントのファンクション自体を閉じるボタンにしてしまう、
という方法ぐらいしか思いつかないのですが、
プレイヤーの操作を行わせるコンポーネントはDBサーバから取得したデータをもとに毎回インスタンス化しているため、
全部に動的に割り当てていくというのは現実的ではないように思われます。

良い方法があるのでしょうか? どうかご教示願います。
865
(1): 名前は開発中のものです。 [sage] 2020/03/16(月) 13:47:15.65 ID:BLklYMyv(4/4) AAS
>>862
根本から作り直す必要ありと言う意味です。
レイキャストならどのように取り出すかなどforechとかで判定できるけど、作りがそれに対応できない感じなのでそう書きました。
後述は、できるならと思いましたが、参照先が不特定多数のようでよくわからないですが構造的に難しいなら見直した方がいいです。
866: 名前は開発中のものです。 [sage] 2020/03/16(月) 13:50:24.17 ID:4qkAYl3r(1) AAS
>>862
GUIを閉じるフレームだけやり過ごせばいいので、

GUIのボタンクリックのイベントでコルーチンを呼んで、1フレーム待ってから閉じる処理を呼ぶ

ボタンクリックのファンクションで
invokeを使って時間差で閉じるファンクションを呼ぶ

あたりでいけると思う
868
(1): 862 [sage] 2020/03/16(月) 15:18:30.98 ID:LdLDk6nR(3/3) AAS
>>863-865

ボタンとRaycastの判定がマルチスレッドで行われていることまで頭が向きませんでした。
ありがとうございました。

とりあえず修正が少なそうなコルーチンで想定通りの動きを起こすことができました。

同期ずれの方はこれでどうにかなるのかは不明ですが、今後問題になるようなら改めて大幅な修正をしようと思います。
単純に各メニュー画面を開いて処理させているだけなので、そんなに複雑なことをやっているつもりはないんで大丈夫だと思っていますが。>>863
863(1): 名前は開発中のものです。 [sage] 2020/03/16(月) 13:34:36.73 ID:ZW9c9VSl(1/2) AAS
>>856
自分はタイマー作って処理してるけど
UI上にマウスある時はタイマーの値が0.1とか小さな値が代入され続ける
これが0になるとキャラ操作可能になる
タイマー側は0以上だと絶えず減算し続けている仕組み
UIの動作が複雑になってくるとスクリプトの動作順や1フレーム単位での動機のズレで誤爆が起きたり起きなかったりして面倒な問題に
ウィンドウの開閉で問題が出やすいと思う
だから単純だけど誤爆が起きようが無いタイマーで数フレーのラグを稼いで操作を切り替えてるけど

前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s