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

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

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

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

>>858
>または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。
前述の通りRaycastの判定は毎回行っており、ここからさらにどこでフラグを立てればよいかがわかりません

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

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

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

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

あたりでいけると思う
867: 名前は開発中のものです。 [] 2020/03/16(月) 14:56:23.37 ID:OslewfXc(1) AAS
モディファイアーでミラーリングした物が、クリッピングしてサブディビジョンサーフェスしても
点線的なのがミラーした側に出てこないんだがこれどうやって出すの?
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フレーム単位での動機のズレで誤爆が起きたり起きなかったりして面倒な問題に
ウィンドウの開閉で問題が出やすいと思う
だから単純だけど誤爆が起きようが無いタイマーで数フレーのラグを稼いで操作を切り替えてるけど

869: 名前は開発中のものです。 [sage] 2020/03/16(月) 17:28:33.58 ID:81ZCqdDT(1) AAS
メッシュが空っぽのPrefubをシーン内に自動生成して
後からC#でメッシュを割り当てたいのですがやり方が分かりません。

var mesh = (Mesh)Resources.Load("Assets/Resources/Mesh/hogehoge");
Debug.Log(mesh);

まずはこんな感じでメッシュを呼び出せるかと思いましたが、
コンソール上では"Null"になってしまいました。。。
870: 名前は開発中のものです。 [] 2020/03/17(火) 00:18:23.21 ID:PLSsds2i(1) AAS
>>868
いやマルチスレッドとかないから
871: 名前は開発中のものです。 [sage] 2020/03/17(火) 06:51:01.43 ID:l0ok0yUe(1) AAS
Play中にNavmeshAgentのPriorityの設定をいじっても反映されないんですけど
これ反映させるためのメソッドかなんかありますかね?

・Agent同士で当たり判定を残したい
・でもワープさせたいので、その都度一度AgentのEnableを切りたい
・切ったら当たり判定なくなってる

AgentじゃなくてObstacld使えば当たり判定あるんですけど
一応Destination移動もできるようにしときたいからAgentにしたいんですよね
872: 名前は開発中のものです。 [sage] 2020/03/17(火) 13:31:53.59 ID:s0pCT5yE(1) AAS
Unityでゲーム作りたいと思い始めたんだけどUnity製ゲームのキャラモデルって基本的にヒューマノイド使ってるの?
ヒューマノイドって補助ボーンが使えないとか色々制限があるって聞いたんだけどどうなんだろう?
873: 名前は開発中のものです。 [sage] 2020/03/17(火) 17:52:53.51 ID:6NXECLVB(1) AAS
iosアプリを作っていて、TouchScriptを用いてタップとフリック操作を取り入れたのですが、フリック操作をした時にまずタップ操作として認識されてしまいます。
競合しないようにするにはどうすればいいでしょうか
874: 名前は開発中のものです。 [sage] 2020/03/17(火) 18:00:15.93 ID:NeByzchF(1/2) AAS
タップは離したときにタップ位置と近かったらタップ動作、とかでだめかな
875: 名前は開発中のものです。 [sage] 2020/03/17(火) 18:02:01.78 ID:NeByzchF(2/2) AAS
まあそうでなくとも同じ動作で始まるからタップでタイマー開始、一定時間後に大きく動いてなければ、とかね
876: 名前は開発中のものです。 [sage] 2020/03/17(火) 19:31:29.24 ID:X2NYOiQv(1) AAS
タイマーだろうね。タップなんだから、0.3秒以内で離したらタップ処理。それまではフリック処理の準備、という感じかしら。
877
(1): 名前は開発中のものです。 [sage] 2020/03/17(火) 22:42:44.88 ID:jPxCje6v(1) AAS
>>856
856(2): 名前は開発中のものです。 [sage] 2020/03/16(月) 09:55:12.73 ID:LdLDk6nR(1/3) AAS
Unity2018を利用しています。
uGUIでユーザインターフェースを実装しています。

クリックした場所へ移動するというMMOでありがちな操作方法で動いています。

GUIをクリックしたときは動かないようにしてあるのですが、GUIの閉じるボタンをファンクションで動作させると、
GUIが閉じた瞬間に閉じるボタンがあった場所へ向かって移動をしてしまいます。
どうも閉じるボタンのファンクションが実行され、パネルが閉じた後でクリックした場所のRaycastを取得してしまい、
移動が暴発してしまうようでした。

仕方なくパネルを閉じる場合はは閉じるボタンのファンクションではなく、プレイヤーを操作しているクラス内で
閉じるボタンがクリックされたかどうかを判定しパネルを閉じているのですが、
毎回GetComponentやらFindやら重い処理で閉じるボタンの判定することとなったり、
すべての閉じるボタンを保持しておいてRaychastで取得したボタンと一致するかどうかを判定する、
とかボタン登録の量から考えて非現実な手法であったり、
名前を統一してその名前で作られたボタンを閉じるボタンにする、としたら同階層で名前の違う閉じるボタンの実装が必要になったりと
うまくいきません。

何よりボタンのファンクションではなくプレイヤーの動作アクションのクラスでどうにかしようとしている所がスマートではないことが気になります。

どうしたら移動を暴発させずに閉じるボタンでパネルを閉じることができるでしょうか?
常にUIの一番下に何も表示しないimageを敷いといて、そこでpressを受け取ったときのみ、3D面にレイキャストする
878: 名前は開発中のものです。 [sage] 2020/03/18(水) 08:43:50.70 ID:Er59hwEQ(1) AAS
Unity+Playfabを利用しています

アイテムをキャラクターのインベントリに格納した際、カタログアイテムの方で記述したカスタムデータが
インベントリ内のアイテムインスタンスに反映されません

色々調べたところ英語のフォーラムにカタログアイテムのカスタムデータを明示的に取得してインベントリ
のアイテムインスタンスのカスタムデータに入れるということが書かれてありました
しかも、Unity上でカタログアイテム自体単体で取得する方法がないため、カタログのアイテム全部を取得し、
ループ検索で一致するアイテムIDからカスタムデータを取り出して、アイテムインスタンスに入れるとありました

アイテムを追加するたびにループをしてまでカスタムデータを取得しなくてはならないというのもばかばかしいことこの上ないのですが、
そもそも内容を見る限り、カタログアイテムのカスタムデータはアイテムの性能を決める重要な役割をしているものと思われるのですが、
これがインスタンス化した時に反映されないのはおかしいと感じています

フォーラムを見る限り何年も前からこの状態らしいのですが、そもそもカスタムデータとは何のために存在しているのでしょうか?
もしアイテムの性能を決定するものでないとした場合、アイテムの性能はどこに記述すればよいのでしょうか?
879: 名前は開発中のものです。 [sage] 2020/03/18(水) 14:51:58.44 ID:6iKxrNBv(1) AAS
>>877
多分だけど一瞬で反応するから問題の同じ挙動になると思う
必要なのは移動処理の判定開始を遅らせるとかキャンセルする系の処理だよ
880: 名前は開発中のものです。 [sage] 2020/03/19(木) 02:44:57.35 ID:KPezZrYE(1/3) AAS
unityでPC向けスタンドアローンアプリをビルドしたあとに見つかった
バグ等の修正パッチを当てるための方法ってありますか?
それとも再ビルドしてまるごとあげ直しになりますか?
881
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 08:28:54.39 ID:J+qe28nd(1/2) AAS
まるごとだと思うけど
アセットとかは素材の部分だけだし
882
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 10:18:16.92 ID:iFaUF1Zz(1/2) AAS
Unity2018を利用、uGUIでRPG風のインベントリアイテムスロットを製作しています

インベントリ内のスロット一つ一つはプレハブ化しており以下のような構成
Slot(画像UI。スロットの背景スプライト)
 + Image(画像UI。アイテムのアイコンスプライト)
 + EquipImage(画像UI。装備中なら右下に「E」が付くだけのスプライト)
スロットにアタッチしたスクリプト内のUpdateで装備状態を見てEquipImageをアクティブを操作しています

現装備品のスロット(プレハブ化していません)
□□□
インベントリ内のスロット
123□ ←1、2,3はアイテム
ドラッグアンドドロップで装備スロットにアイテムを移動したとき、装備品スロットにアイテムが格納され、インベントリのスロットでは装備中を表す「E」が表示されます
12□
↑↑
123□←1、2に「E」が表示される

ここまではよいのですが、インベントリ内の装備中のアイテムを別なスロットに移動すると「E」の画像が消えてしまいます
12□

□231←装備中にもかかわらず1は「E」が消える

ここで不可解なのが、元のスロットに戻すと「E」が表示されます
また、例のように元々1、2、3のあった場所であれば位置が変わっても「E」が表示されます
12□

312□←1,2ともEは表示される

動いている状態を確認すると、位置が変わっても装備中ならば各スロットのEquipImageはアクティブになっていますが、画面には表示されません

一体何がどうなってこのような挙動になっているのか分かりません。調べようにもキーワードもわかりません
どなたか解決方法をご存じありませんでしょうか
883: 名前は開発中のものです。 [sage] 2020/03/19(木) 11:05:19.58 ID:KPezZrYE(2/3) AAS
>>881
ありがとうございます
884
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 11:22:59.11 ID:KPezZrYE(3/3) AAS
>>882
レイヤーのソートは設定してますか?
885
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 12:48:43.74 ID:iFaUF1Zz(2/2) AAS
>>884
コメントをいただき、先ほど試してみましたが、挙動に変化はありません

動かして気付いたのですが、インベントリのパネルを開いた状態のまま装備アイテムを取得し、
そのまま装備スロットにドラックアンドドロップした場合でも、インベントリのスロットには「E」が表示されませんでした

一体何が原因なのでしょうか
886: 名前は開発中のものです。 [sage] 2020/03/19(木) 13:19:37.46 ID:s95zZVW0(1) AAS
>>885
あとはヒエラルキーの描画順やキャンバス内に設置は大丈夫そうですか?
もしかしたら画像やスクリプトも貼った方が答えがでやすいかもしれません
887: 名前は開発中のものです。 [] 2020/03/19(木) 21:20:18.43 ID:PI5hmug2(1/3) AAS
初めて、Unityをインストールしてて、
もう1時間半経ちますがまだ終わりません。
こんなもんなのでしょうか?
Windows10 Homeです。
888
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 22:15:23.61 ID:r1ZfL8Hc(1) AAS
うちも最近UNITY始めたばかりですが
数分でインストールできましたよ(2〜3分くらいだったと思う
889
(1): 名前は開発中のものです。 [sage] 2020/03/19(木) 22:26:51.61 ID:lUc3zbVU(1/2) AAS
Windowsモジュールだけにしても5GBくらいあるから回線遅かったらそれくらいはかかるだろうね
1-
あと 113 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s