[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild3 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
856: 名前は開発中のものです。 [sage] 2020/03/16(月) 09:55:12.73 ID:LdLDk6nR Unity2018を利用しています。 uGUIでユーザインターフェースを実装しています。 クリックした場所へ移動するというMMOでありがちな操作方法で動いています。 GUIをクリックしたときは動かないようにしてあるのですが、GUIの閉じるボタンをファンクションで動作させると、 GUIが閉じた瞬間に閉じるボタンがあった場所へ向かって移動をしてしまいます。 どうも閉じるボタンのファンクションが実行され、パネルが閉じた後でクリックした場所のRaycastを取得してしまい、 移動が暴発してしまうようでした。 仕方なくパネルを閉じる場合はは閉じるボタンのファンクションではなく、プレイヤーを操作しているクラス内で 閉じるボタンがクリックされたかどうかを判定しパネルを閉じているのですが、 毎回GetComponentやらFindやら重い処理で閉じるボタンの判定することとなったり、 すべての閉じるボタンを保持しておいてRaychastで取得したボタンと一致するかどうかを判定する、 とかボタン登録の量から考えて非現実な手法であったり、 名前を統一してその名前で作られたボタンを閉じるボタンにする、としたら同階層で名前の違う閉じるボタンの実装が必要になったりと うまくいきません。 何よりボタンのファンクションではなくプレイヤーの動作アクションのクラスでどうにかしようとしている所がスマートではないことが気になります。 どうしたら移動を暴発させずに閉じるボタンでパネルを閉じることができるでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/856
862: 名前は開発中のものです。 [sage] 2020/03/16(月) 13:25:01.26 ID:LdLDk6nR >>857 申し訳ございませんが理解ができないのでもう少し詳しくお願いします >まずは入出力のフローを整理することから。 この点ですが、クリックのたびにRayCastがGUIに接触しているかどうかの処理は毎回入れています。 しかし、閉じるボタンを押したときの挙動の場合 クリック→閉じるボタンのファンクション実行(GUIを閉じる)→Raycastの判定(この時点でGUIが閉じているため、RaycastにGUIが引っ掛からない) という挙動となってしまいます。 この順番を入れ替えることができるということでしょうか? クリック時に先にRaycastの判定さえ先行えれば即解決する問題なのですが、どうすれば順序を入れ替えられるのでしょうか。 >>858 >または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。 前述の通りRaycastの判定は毎回行っており、ここからさらにどこでフラグを立てればよいかがわかりません 仮に閉じるボタンの所にフラグを設けた場合、FindやGetComponentを使わずに プレイヤー操作コンポーネントにフラグを送るため、全てのコンポーネントに参照を持つ、 もしくはプレイヤー操作コンポーネントのファンクション自体を閉じるボタンにしてしまう、 という方法ぐらいしか思いつかないのですが、 プレイヤーの操作を行わせるコンポーネントはDBサーバから取得したデータをもとに毎回インスタンス化しているため、 全部に動的に割り当てていくというのは現実的ではないように思われます。 良い方法があるのでしょうか? どうかご教示願います。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/862
868: 862 [sage] 2020/03/16(月) 15:18:30.98 ID:LdLDk6nR >>863-865 ボタンとRaycastの判定がマルチスレッドで行われていることまで頭が向きませんでした。 ありがとうございました。 とりあえず修正が少なそうなコルーチンで想定通りの動きを起こすことができました。 同期ずれの方はこれでどうにかなるのかは不明ですが、今後問題になるようなら改めて大幅な修正をしようと思います。 単純に各メニュー画面を開いて処理させているだけなので、そんなに複雑なことをやっているつもりはないんで大丈夫だと思っていますが。>>863 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/868
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s