2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【ゲームエンジン】Unityなんでも質問スレpart12

1 :名前は開発中のものです。:2023/11/06(月) 16:50:23.83 ID:aWH6Xwln.net
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
質問と答え以外は禁止
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

■前スレ
【ゲームエンジン】Unityなんでも質問スレpart11
https://mevius.5ch.net/test/read.cgi/gamedev/1691129256/l50

285 :名前は開発中のものです。:2023/11/26(日) 20:04:29.42 ID:wJ4Ewbd+.net
>>284
chatGPTに聞いてもPhysics.OverlapSphereかRaycast使えって言われるんですよね
指定された座標のオブジェクト情報を取得したいだけなんで「そんなことせなあかんか?」って思ったんですけど、調べてもそれしか無さそう?

286 :名前は開発中のものです。:2023/11/26(日) 20:13:44.84 ID:uqB1fo0P.net
シーンに直置きしてるならシリアライズフィールド使うかStartで自分から登録されに行けばよくないか?

287 :名前は開発中のものです。:2023/11/26(日) 20:25:02.75 ID:nqSny9Yy.net
>>283
まじかあ
絶対にノートPCはダメってワケじゃないでしょ?
TVに繋げる方法あるの初めて聴いたわ

288 :名前は開発中のものです。:2023/11/26(日) 20:29:11.75 ID:YEGARdnY.net
いわゆるグリッド移動ならインデックス管理しておいて、そのインデックスにオブジェクトを格納しておけばいいけど
指定したグローバル座標にあるオブジェクトを取得するのはRayかOverlap~しかないんじゃないかな
いや、これらが取得するのは厳密にはColliderだからObjectに変換する必要あるけど
タグかレイヤーで目的以外は弾けば無駄が少ない

289 :名前は開発中のものです。:2023/11/26(日) 20:39:15.05 ID:ap8K17/p.net
Physics.Raycastを嫌う理由がGC発生によるパフォーマンスの低下だとするなら、Physics.RaycastNonAllocを使えばいい
使ったことないけどOverlapSphereも同様らしい
GC発生を嫌ってるわけではないとなると目的が不明瞭なので適切な提案ができない

290 :名前は開発中のものです。:2023/11/26(日) 21:06:45.28 ID:wJ4Ewbd+.net
>>286,288,289
まとめての返信で失礼します
288さんの言うようにグリッド移動ですね。語彙力無くてすいません
GCとか後々のことを意識してのことではありました。初心者知識ですがわざわざ余計な処理を走るのを避けたかったんです。
なんか、もうちょい軽い処理でいけそうだなぁ…って考えたんですけどね…
インデックス管理もなんとなくやることは分かってる程度で実行したことないんで…例えば10×10×10の立体的な碁盤を用意したりしたらそれはそれで全て管理したら処理が重そうだし
とりあえず教えていただいた関数使ってみます!ありがとうございます

291 :名前は開発中のものです。:2023/11/26(日) 21:12:43.41 ID:sKe5WX7u.net
>>284
スクリプトだよそれくらい調べろや
シーンにいるobject一覧なんかすぐ取れるから


>>287
今ならミニデスクトップあるから
モニターにぶら下げられるよ
でもマック使いならマックブックでええやん

>>289
パフォーマンス低下?
どれほど低下するのか知らん奴らが、その言葉で騒いでるだけやね

292 :名前は開発中のものです。:2023/11/26(日) 21:14:07.82 ID:sKe5WX7u.net
>>290
10×10×10

それぐらいで遅くなるほど今のパソコン舐めるなよ

293 :ドーンおじ:2023/11/26(日) 21:25:02.28 ID:vo5TLBjQ.net
>>291-292
なんだその回答は!?低クオリティすぎんだろ!?死ねよ!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

294 :名前は開発中のものです。:2023/11/26(日) 21:27:08.12 ID:wJ4Ewbd+.net
>>292
舐めてました?すいません。笑
まぁ軽く出来るならやっとこうぐらいの精神ですかね。出来ないなら出来ないってきっぱり分かっときたかったんですよね。自分で調べる分だと悪魔の証明になっちゃいそうだったんで
プレイヤーが1,0,1にいるなら正面の1,0,2のオブジェクトは何か?ってのをやりたかった。でもまぁ後は自分で試行します。

295 :名前は開発中のものです。:2023/11/26(日) 22:08:54.91 ID:kOB5vzh5.net
>>287
ディスプレイなんて何でもいいけど小さいと使いにくいだけ

296 :名前は開発中のものです。:2023/11/26(日) 22:24:40.93 ID:uqB1fo0P.net
そういうのはアルゴリズム組んだほうがええんちゃうか
物理空間上でうにゃうにゃするとUnityの癖に悩まされたりバグの温床になったりする

297 :名前は開発中のものです。:2023/11/26(日) 22:25:46.37 ID:sKe5WX7u.net
ドーンおじの正体はこれな

141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!

298 :ドーンおじ:2023/11/26(日) 23:05:24.43 ID:vo5TLBjQ.net
>>297
やっぱりお前が低クオリティ野郎じゃねーか!コテ外すなや!m9⎛´・ω・`⎞ドーン!

299 :名前は開発中のものです。:2023/11/27(月) 02:36:36.68 ID:BoRbbeFq.net
ID:sKe5WX7u
あれだけ宗派云々で盛り上がった後なのに
世界には俺以外の宗派は存在しないし認めないと思ってるアホやね

300 :名前は開発中のものです。:2023/11/27(月) 09:04:30.48 ID:jh8FMahn.net
ドーンおじとやらもきっと、最初は真面目に質問に答えてたけど、292みたいなのがいるからマジレスするのがアホらしくなって荒らしに転向したんだろうなあ
そう考えるとなんか可哀想

301 :名前は開発中のものです。:2023/11/27(月) 11:41:20.00 ID:wHJ3vaA9.net
URPで2Dのレンダラーを使用中に3Dのライトを表示する方法、
もしくは複数のレンダラーを同事に使用する方法はありますか?
2D Lightと普通のライトを合成して使いたいです

302 :名前は開発中のものです。:2023/11/27(月) 11:56:05.86 ID:aMnFU6g7.net
>>294
指定座標からraycast出してhitしたオブジェクトをGetComponentしたらいいよ

303 :名前は開発中のものです。:2023/11/27(月) 12:09:35.21 ID:noS+cgi4.net
こんにちは質問です。
プレハブにアニメーションをつけて、いくつかの状態を切り替えて使おうとしました。
たとえばトイレ便器のフタがしまった状態から、フタが開くアニメ、フタ開いた状態、便座も開いた状態、というようにキーフレームが作ってあります
で、再生時の初期状態として欲しい状態が60フレームにあるとして
ロード後に自動で60フレームにするにはどうしたらよいでしょうか
かってに全フレーム再生してラストで止まるか、何も再生されず1フレームのままか、の2パターンはやれるのですが。

304 :名前は開発中のものです。:2023/11/27(月) 12:26:46.66 ID:aMnFU6g7.net
>>303
Startに
Animator animator;
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(stateInfo.fullPathHash, 0, 1);
1のところが0~1でどこらへんから再生させるか調整するって感じです?
60フレーム目とかで判別できないので
小数点いれて調整してみてねってことで

305 :名前は開発中のものです。:2023/11/27(月) 12:29:51.25 ID:KkPr08oo.net
次の質問する前に回答してくれてる人には最低限のマナーとして返信はしましょう

306 :名前は開発中のものです。:2023/11/27(月) 12:42:50.33 ID:jh8FMahn.net
>>303
https://qiita.com/ntkgcj/items/29cc215f248a5f4721cd
AnimationClipの最初から再生するのはこれでできるとして、この第3引数で再生位置を指定できる
再生中のAnimationClipが変数clipで、0.5秒の位置から再生したければ第3引数は 0.5f / clip.length

307 :名前は開発中のものです。:2023/11/27(月) 13:24:07.06 ID:noS+cgi4.net
>>304-306

うーん、実は外部スクリプトはassset書き出しのときに排除されてしまうんです
セキュリテの都合ですね
後出しでこんな言ってすみません
インスペクターでの設定は動作します

308 :名前は開発中のものです。:2023/11/27(月) 13:43:13.65 ID:FJPYb+2K.net
>>252
いいねこのバイブル
今まで疑問だったことがいろいろ解消したり、知らなかったこともたくさんあって勉強になったわ
貼ってくれてありがとう

309 :名前は開発中のものです。:2023/11/27(月) 14:01:23.70 ID:/j0+2mxV.net
>>303
そういう時はそれぞれ別のアニメーションクリップで作るのがunityの作法だよ

310 :名前は開発中のものです。:2023/11/27(月) 16:23:02.57 ID:HmVHwFbH.net
すみません、駄目元でお尋ねします。
Random.Range( 最小値, 最大値 )の乱数関数なんですが

例えば、「0〜10までのどれかが出るが、0は出にくい」
って感じの設定はできませんか?
もし出来るなら大変ありがたいんですが
んな都合の良い乱数まではできませんよね?

311 :名前は開発中のものです。:2023/11/27(月) 16:29:23.99 ID:vSro46YA.net
 Random.Range(0, 100)
なら出る数字は0〜99のどれか(100は含まれない)で、0が出る確率は1%になるけど、これの応用だと無理?

312 :名前は開発中のものです。:2023/11/27(月) 16:32:22.43 ID:vSro46YA.net
if (rand == 0)
{
 // 1%の確率で発生する処理
}
else if (10 <= rand && rand < 20)
{
 // 10%の確率で発生する処理
}
else if (20 <= rand && rand < 30)
{
 // 10%の確率で発生する処理
}
……(以下略)

馬鹿正直に書くとこうなる
もっとスマートにできそうだね

313 :名前は開発中のものです。:2023/11/27(月) 16:37:07.06 ID:/j0+2mxV.net
>>310
返すのがintならできる

if(Randam.Range(0.0f,1f)>0を出したい確率){
Return Randam.Range(1,11);
}else{
Return 0;
}

実際にゲームを作るとfloat返しでやりたくなるはずだと思うんだけど
それはややこしいな

314 :名前は開発中のものです。:2023/11/27(月) 16:53:02.98 ID:noS+cgi4.net
>>309
わかりましたプレハブを小分けにしてやってみますありがとうございます

315 :名前は開発中のものです。:2023/11/27(月) 17:16:14.23 ID:/j0+2mxV.net
>>314
プレハブ?
アニメーションクリップファイルはアニメーションクリップファイルだが

316 :名前は開発中のものです。:2023/11/27(月) 17:22:55.31 ID:HmVHwFbH.net
>>311,312,313

皆さま、ありがとうございます。確かにそれらの工夫次第で
0だけの確率を下げることを知りました、勉強になります!

317 :名前は開発中のものです。:2023/11/27(月) 18:39:13.12 ID:noS+cgi4.net
>>315
うーむ、ロード時にどのanimが再生されるかの、あの線で繋ぐUIのやつ、あれってどこに保存されてるんですかね?シーンファイル?

318 :名前は開発中のものです。:2023/11/27(月) 19:18:54.48 ID:BkO9IT7E.net
>>302,296
回答ありがとうございます。アルゴリズム組むのも都合が悪そうなので結果レイキャストで処理しました。

319 :名前は開発中のものです。:2023/11/27(月) 19:50:17.45 ID:/j0+2mxV.net
>>317
それはアニメーションコントローラーファイル

320 :名前は開発中のものです。:2023/11/28(火) 00:31:52.76 ID:hSn23D6b.net
>>319
なんとか計画通りに作れました皆さんありがとうございます

321 :名前は開発中のものです。:2023/11/28(火) 21:44:10.27 ID:+pwcdcfH.net
プログラマーとアーティストのための新しいUIツールキットのデモ | Unityブログ
https://blog.unity.com/engine-platform/new-ui-toolkit-demos-for-programmers-artists

322 :名前は開発中のものです。:2023/11/29(水) 09:07:08.53 ID:8Z5oyTA+.net
すみません、rigidbody 2dについて教えて欲しいのですが
例えば、ファミコンのスーパーマリオやロックマンで
崖ギリギリでも1ドットさえ乗っていれば
プレイヤーは立ったりすることできるんですが
現状、半分くらい崖から身を乗り出すとプレイヤーが傾いて
落ちてしまいます。
rigidbody 2dの設定で済む話なのかわかりませんが
どこかのチェックや数値の問題なのでしょうか?

あと、その落ちる時にもドット絵のオブジェクトが物理法則に則って
前のめりに回転して落ちるんですが角度がついたときに
ご丁寧に斜め状態のドット絵を強制的に作ってしまうんですが
これもSprite Rendererとかのどこかのチェックの有無で解決しそうですが
違いますか?

323 :名前は開発中のものです。:2023/11/29(水) 09:14:12.75 ID:oA7FsBQ7.net
>>322
https://futabazemi.net/unity/constraints-freeze-rotation

これ3Dの記事だけど2Dでも大体同じだから

324 :名前は開発中のものです。:2023/11/29(水) 09:33:25.13 ID:8Z5oyTA+.net
>>323
ありがとうございます!Unity、すごいですね!
知識をつけてってるんですが楽しいです!

325 :名前は開発中のものです。:2023/11/30(木) 00:19:57.27 ID:toSL22aW.net
Yokohara_h(@Hirokazu Yokohara)さんがポストしました:
え?Unityが以前買収したweta全員解雇するの?出すって言ってたツールは?同じく買収されてるZivaとかspeedtreeはどうなるんだろ?
https://x.com/yokohara_h/status/1729663063568036108?s=51&t=v_xy-gl7y1zQf182MLmXWg
うっわ...Unity完全にオワタやんこれ
wetaは虎の子やったんちゃうんかwあんだけ喧伝しといてもうゲームエンジンはUE一強やんけこれじゃ

326 :名前は開発中のものです。:2023/11/30(木) 00:22:03.65 ID:toSL22aW.net
Weta Digital閉鎖とか冗談にもなってないわ

327 :名前は開発中のものです。:2023/11/30(木) 00:25:28.15 ID:toSL22aW.net
更にまだ色々と削減するつもりみたいやな

328 :名前は開発中のものです。:2023/11/30(木) 10:50:42.51 ID:CMyAP9YG.net
質問です。2Dゲーム制作においてですが
オブジェクト自体の当たり判定とは別にトリガー用の判定エリアも設けたい場合
ひとつのオブジェクトにBox Collider 2Dを2個つけるということをしている人がいます。
これはなんら普通のことでしょうか?それともあまりお勧めできることではない感じですか?

329 :ドーンおじ:2023/11/30(木) 11:13:55.62 ID:VyxU6IGx.net
複数コライダーは索敵の基本だよ!敵が近くに居たら撃つ!弾が近くにきたら避ける!そのためのコライダーだね!m9⎛´・ω・`⎞ドーン!

330 :名前は開発中のものです。:2023/11/30(木) 11:22:10.62 ID:2rFXTlkJ.net
>>328
普通によく使うかな
CompositeCollider2Dという専用機能もあるくらい
MeshColliderよりもこっちの方が捗ることも多い

331 :名前は開発中のものです。:2023/11/30(木) 11:29:53.09 ID:CMyAP9YG.net
>>329 >>328
そうなんですか、2つどころか複数つけても問題ないのですね
わかりました。遠慮なくつけようと思います。

ちなみに、今、Box Collider 2Dを2個つけてみたんですが
両方ともBox Collider 2Dという名前のままなんで
区別がついてないですよね?
名前の変更もできない感じですが
これ、スクリプトの方で
bc = GetComponent<BoxCollider2D>();とかする場合に
<BoxCollider2D>ではどう区別して指定するのですか?

332 :名前は開発中のものです。:2023/11/30(木) 11:39:41.86 ID:CMyAP9YG.net
え?あれ?
自分今勘違いしているかもです。
これは、追加するBoxCollider2Dにはそれ用のオブジェクトを作って
そこに貼り付けたスプライトで管理するのか?
それなら確かに、BoxCollider2Dは区別しなくてもいいわけですが。。。

ひとつのオブジェクトのスプライトの中で2つのBoxCollider2Dを管理できると思ってるんですが。。。

333 :名前は開発中のものです。:2023/11/30(木) 11:44:29.52 ID:CMyAP9YG.net
つまり、ひとつのオブジェクトに
当たり判定とトリガー判定のためのBoxCollider2Dが必要だと思ったら
そのオブジェクトでは当たり判定のBoxCollider2Dをつけて、
もうひとつはトリガー用のBoxCollider2Dを貼り付けたオブジェクトを別につくって
そのふたつのオブジェクトをいちいち合わせて考えるってことですかね?
自分のイメージだとぜんぜん違うんですが。効率悪そう。。。

普通に、ひとつのオブジェクトに2つBoxCollider2Dをくっつけて
スプライトの中で、それぞれのBoxCollider2Dから反応の関数をもらえると思ってました。

334 :名前は開発中のものです。:2023/11/30(木) 11:53:58.64 ID:CMyAP9YG.net
あー、ついに来たか。
親オブジェクト、子オブジェクトとか、それかー。それ使うんですね。
鬼門じゃないんですか、これは。理解できるかなー。

335 :名前は開発中のものです。:2023/11/30(木) 12:01:32.79 ID:CMyAP9YG.net
ゲームオブジェクトには複数のコライダーを配置できますが、
その場合、個別にどのコライダーがヒットしたかを検出することができません
しかし、解決策はあります
ゲームオブジェクトの子オブジェクトを作成してそこに各コライダーをアタッチすること、
コライダーがアタッチされているゲームオブジェクトにさらに検出用のスクリプトをアタッチすることで実現することができます


これですよね?

コレダーに名前つけてそれぞれを区別したらいいだけだと思うんですけど
Unityはそれを採用してないってことですよね

336 :名前は開発中のものです。:2023/11/30(木) 12:32:21.42 ID:kx/hSsho.net
>>335
unityのバージョンが新しいとlayeroverrideという機能ついてるから
複数つけてそれぞれに
除外レイヤーと有効レイヤー設定できるので
それでどれにあたるか変えればいけるよ。

337 :名前は開発中のものです。:2023/11/30(木) 12:54:18.87 ID:CMyAP9YG.net
>>336
>Unity2022.2からCollision Layer Overrideという
>オブジェクトごとに特定のレイヤーと衝突するかの設定が出来る機能が追加

うおおおおおおおおおおおおおおおお!!
自分osの問題で2021なんです、、、泣きます!!!!!

338 :低クオリティでごめんねごめんね:2023/11/30(木) 13:10:24.45 ID:Iy36Ltve.net
これでどのコライダーがぶつかったかはとれるよ
https://i.gyazo.com/4ea1df0c0dda8be8b040fa3ce288babc.png

例えばこの時
https://i.gyazo.com/cc78c5164b830dbe38390a69645837b2.png
これは3が返る

この時
https://i.gyazo.com/01bfc6172a9fc81147bd5342ef72b4bd.png
これは2が返る

動きはこんな感じ
https://i.gyazo.com/879e10b2ce566bb4a25e9fac83cb91bf.mp4

入れ替えて見ると
ちゃんとぶつかりも反応してる

339 :低クオリティでごめんねごめんね:2023/11/30(木) 13:14:39.04 ID:Iy36Ltve.net
入替えた場合
https://i.gyazo.com/2a510821978a271e2ccea1dc3d1db514.png
https://i.gyazo.com/35b1c1ee66d4cef385f1ef15b5a48b7a.png

340 :名前は開発中のものです。:2023/11/30(木) 13:42:59.93 ID:CMyAP9YG.net
>>338
ありがとうございます。
複数のコライダーを順番に配列にいれといて管理するんですね?
foreachで回してカウントしてトリガーを返してきたカウントからどのコライダーか判別すると。

これ、配列に入るコライダーの順番は、インスペクタの並び順ですか?
つまり、例えば、一部のコライダーのインスペクタを触りたいときは
c2ds[1].isTrigger = true;とかでいけますよね?

341 :名前は開発中のものです。:2023/11/30(木) 13:56:27.19 ID:CMyAP9YG.net
というのも、自分の作ってるゲームでは
オブジェクトのBoxCollider2DのisTriggerのon,off
ちょくちょく切り替えるようにしてるんで
>>338さんのを導入するとしたら
今のBoxCollider2Dを配列入れ込む話になるんで
ちょっとどうなるんだろう、って。
今はBoxCollider2Dひとつだけなんで、BoxCollider2D bc;で
void Start()内でbc = GetComponent<BoxCollider2D>();やってるんですよ。
それを変えるわけですよね

342 :名前は開発中のものです。:2023/11/30(木) 14:12:00.62 ID:n4imjDK6.net
インスペクタで触る?
コードでやるならenableでいけるでしょ

343 :名前は開発中のものです。:2023/11/30(木) 14:34:34.68 ID:CMyAP9YG.net
enableてオブジェクトのアクティブ、非アクティブ化にだけ使用してるみたいです。
例えば「Unity isTrigger 切り替え enable」でぐぐってみましたが
enableでBoxColliderのisTriggerを切り替えてるケースが見当たらず
みんな、だいたいGetComponent<Collider>().isTrigger = false;的なことやってるみたいです。

344 :名前は開発中のものです。:2023/11/30(木) 14:40:55.06 ID:CMyAP9YG.net
自分で調べた感じですがenableはGetComponent<Renderer>().enabled = false;とか見るに
コンポーネントまるごとチェックをはずしたり、したい場合に使うんじゃないでしょうか
BoxCollider2Dのアクティブのチェックを外したい場合とか。

自分はBoxCollider2Dの、isTriggerのチェックを外したいとかなんで
enableは使わない感じじゃないでしょうか

345 :名前は開発中のものです。:2023/11/30(木) 14:48:45.12 ID:CMyAP9YG.net
あと、>>338のコードを読み解こうと頑張っているんですが
ContactFilter2Dってどんなものなのか、どなたか教えて頂けないでしょうか。

なにが返ってくるのか検索してもぜんぜん解説が無いのです
利用しているコードはあるんですが、どういうものなのかの説明がされてなくて
リファレンスも英語のものだけ?しか見当たらず、ちょっとなんなのかわからず
検索結果からしても、これマニアックなんですかね、使うの。

346 :低クオリティでごめんねごめんね:2023/11/30(木) 14:52:15.27 ID:Iy36Ltve.net
簡単なのなので、自分でテストするだけ
https://i.gyazo.com/5d5f60e3f6147f4530d4d4f9365175b5.png

c2ds[2].isTrigger = false;
c2ds[2].enabled = false;

片方をコメントアウトしてどちらが機能するかみればいいだけだよ
10秒あればできるから、わざわざぐぐるとか無駄じゃね?

347 :名前は開発中のものです。:2023/11/30(木) 14:54:45.69 ID:n4imjDK6.net
>>345
マニアックというか英語で使い方分からないから広まってないだけだよね
んでとにかく出来るやり方が広く広まってそれを真似て、、

自分で確認しない風潮だよね

348 :低クオリティでごめんねごめんね:2023/11/30(木) 14:57:08.73 ID:Iy36Ltve.net
>自分はBoxCollider2Dの、isTriggerのチェックを外したい

という事は、ぶつかりは取りたいという事?
であればenableは不要になるけど
isTriggerのチェックを外すことがどういうことなのか分からんので、なんとも・・・

349 :名前は開発中のものです。:2023/11/30(木) 15:17:19.00 ID:n4imjDK6.net
元々、どのコライダーが当たったのか?
が欲しかったんだよね?

なら読み解くとかいらんことしないで使えばいいんじゃね?
その内わかるようになるでしょ

350 :名前は開発中のものです。:2023/11/30(木) 18:16:16.06 ID:CMyAP9YG.net
>>349
>元々、どのコライダーが当たったのか?
>が欲しかったんだよね?
>なら読み解くとかいらんことしないで使えばいいんじゃね?

そうです。しかし、読み解けない状態、つまりはブラックボックス状態だと
うまく機能しない場合自分でどういう状況かわからないので、使わせて頂いても危険なんですよね。

例えば、現在記載してもらった>>338のコードを導入して
動いているですが、思った結果を吐いてくれてなくて、
「これは、なぜだ?」状態で悩ませています。
なるべく検索して調べているんですが、やはり解説がないので。

>>338のOnTriggerEnter2Dですが、
どのBoxCollider2Dのtriggerに触れたかわかるってことですよね?
例えば、print(_count );で毎回「1」と「2」が必ず同時にコンソールに表示されます。
でも、BoxCollider2Dの2個目のtriggerにしかチェック入れてないんですよ。
自分のイメージでは、コンソールには「2」だけが表示されなきゃならないイメージなんですが
毎回「1」と「2」が必ず同時にコンソールに表示されます。
なぜ?ってなってます。

351 :名前は開発中のものです。:2023/11/30(木) 18:31:12.78 ID:CMyAP9YG.net
_countは、どのBoxCollider2Dかを教えてくれる役割ですよね?

if(_bc1.IsTouching(_bc2)){
print(_count );
}

print();をココだけに記述している状態。
で、地面のオブジェクトにはふたつのBoxCollider2Dのつけており
上部のBoxCollider2Dはtriggerにチェックを入れていて通り抜ける。
下部のBoxCollider2Dは当たり判定有りなので、プレイヤーは上から落ちてきたら
まず上部のBoxCollider2Dを通過します。
自分のイメージでは、print();は上部のBoxCollider2Dに接触した時だけ
コンソールに表示されるべきなんですが、その時の_countの値で
どちらのBoxCollider2Dか判別できるんですよね?
ですが、現状、地面に降り立った時には
print();が2度表示されます。1、2と。

352 :名前は開発中のものです。:2023/11/30(木) 18:38:03.93 ID:n4imjDK6.net
相手もいずトリガー状態やろ

353 :名前は開発中のものです。:2023/11/30(木) 18:39:20.39 ID:n4imjDK6.net
せめて画面のSSとか出そうよ
相手に伝えたいならさ

354 :名前は開発中のものです。:2023/11/30(木) 18:44:33.81 ID:n4imjDK6.net
でもまぁそのコードならぶつかった相手のいずトリガーが付いてるか否かで判定できそーだけど
今風呂だし此の後酒飲むから検証はできん

あとコライダーのoffsetトル手もあるよ
まどんなプロパティあるか見て、何があなたのゲームに使えるか取捨選択すりゃいい

355 :名前は開発中のものです。:2023/11/30(木) 18:50:48.84 ID:kx/hSsho.net
なんだか、ややこしくなってるので
やりたいこと書いたほうがいいかもせれませんね。
自分ならBoxcastとかunity platform effector 2dとか使いますかねえ。

356 :名前は開発中のものです。:2023/11/30(木) 20:00:59.02 ID:gX6pmMx6.net
作ってる画面とどうしたいか出すだけで、すぐ解決する問題だろうね。

357 :名前は開発中のものです。:2023/11/30(木) 20:06:03.76 ID:CMyAP9YG.net
>>352
>相手もいずトリガー状態やろ
いいえ、違います。
そんな見落としは致しません。。。

>あとコライダーのoffsetトル手もあるよ
Offsetから判断させるってことですね?
最悪その方法ですよね。。

>>355
>やりたいこと書いたほうがいいかもせれませんね。

やりたいこと自体は2Dアクションではよくあることで、、、
地面のオブジェクトが並んでて、プレイヤーが一部の地面の上を歩くと
アイテムが下からせり出してくるって、だけです。。。
そのせり出してくるトリガーとして、地面のオブジェクトには
プレイヤーとの当たり判定とは別にBoxCollider2Dで見えない判定枠を作りたいのです。
それがイズトリガーにチェックしているすり抜ける当たり判定です。

358 :名前は開発中のものです。:2023/11/30(木) 20:13:38.87 ID:n4imjDK6.net
それ地面にスイッチ置くだけやない?

359 :名前は開発中のものです。:2023/11/30(木) 20:18:10.12 ID:kx/hSsho.net
>>357
地面のオブジェクトとは別に透明な当たり判定つけて踏んだらInstatiateもしくはsetactiveでインスペクターから紐づけるのはダメです?

360 :名前は開発中のものです。:2023/11/30(木) 20:25:34.02 ID:CMyAP9YG.net
>>358
そうです。そのスイッチとして地面の当たり判定とは別に
もう一個BoxCollider2Dをつけようかと。
地面のオブジェクトにこのスイッチをつけとくのは大前提です。

>>359
>地面のオブジェクトとは別に透明な当たり判定つけて
はい。当初は調べる中で、
別の透明な当たり判定を作って子オブジェクトにして
くっつけるつもりでしたが
>>338さんが、そんことせんでもこれでいける、と
案を出してくださったんで、>>338でいこうとしているところです。
で、詰まったと。が、自分にとってはブラックボックスなので
対処ができずにいる、と。

素直に、別オブジェクトを作ってくっつけるほうがいいのですかね。

361 :名前は開発中のものです。:2023/11/30(木) 20:28:56.84 ID:kx/hSsho.net
>>360
自分ならそれでプレハブ作っちゃうと
置いて出したいアイテム選ぶだけで
使い回しがきくので普通にInststiateさせるほうほオススメします

362 :名前は開発中のものです。:2023/11/30(木) 20:45:29.48 ID:CMyAP9YG.net
>>361
そうですよね。素直にそうします。
>>338さんのコード、なんか画期的っぽくて
解読したかったのですが。

363 :名前は開発中のものです。:2023/11/30(木) 20:47:02.50 ID:gX6pmMx6.net
例のプログラムを解析する気ならそれをしてから。
やりたい事進めたいなら解析などせずオブジェクト追加で。
指南はすでに示されてるのでお好きな方で。

364 :名前は開発中のものです。:2023/12/01(金) 00:20:46.54 ID:gKngTs7T.net
すみません!
ゲーム中に発生するプレハブ化オブジェクトに子オブジェクトをつけたい場合
なにか普段の流れと違うことをしてないとダメですか?
生成させるときのコードが違うとか。
というのも、なんかヒエラルキーのとこでプレハブのオブジェクトに子オブジェクトくっつけといても
ゲーム中に発生するそのプレハブのオブジェクトには子オブジェクトがついてくれてないんです。

365 :名前は開発中のものです。:2023/12/01(金) 00:26:48.46 ID:gKngTs7T.net
ちなみにその子オブジェクトもプレハブ化してます。
癖でプレハブ化しましたが、もしかしてプレハブ化してる親オブジェクトに
つけたい子オブジェクトはプレハブ化しないほうがいい感じですか?

366 :名前は開発中のものです。:2023/12/01(金) 00:42:50.51 ID:gKngTs7T.net
んー、オブジェクトのプレハブ化を最初からやり直し、
その時に子オブジェクト(プレハブ化していない)をつけてから
プレハブ化したら、そのオブジェクトを複製しても子オブジェクトがついている。。。
これで正解なのですか?

ややこしすぎ、、、

367 :名前は開発中のものです。:2023/12/01(金) 00:59:31.92 ID:gKngTs7T.net
いや、やっぱり再生してからの
親オブジェクト生成後には子オブジェクトはくっついてないです。
scene上でオブジェクトに子オブジェクトつけてても意味ないってことですか?

368 :名前は開発中のものです。:2023/12/01(金) 02:50:27.01 ID:602WDQfP.net
>>367
出したオブジェクトを親オブジェクトにsetparentしてあげるだけだと思うけど

369 :名前は開発中のものです。:2023/12/01(金) 02:55:16.30 ID:602WDQfP.net
var obj=Instantiate(出したいゲームオブジェクト);
obj.transform.SetParent(親にしたいオブジェクト);

370 :名前は開発中のものです。:2023/12/01(金) 03:06:43.96 ID:gKngTs7T.net
>>369
親オブジェクトのスクリプトの中でそれ書いちゃダメですか?
自分のイメージでは各親オブジェクトが生まれた時に
各オブジェクトが子オブジェクトを生成して自分の子オブジェクトにする、
みたいなのが理想なんですが。。。

それともゲームマネージャーの中で親オブジェクトを生成するとして
同時にそこに書くもんなんですか?

371 :名前は開発中のものです。:2023/12/01(金) 03:19:23.71 ID:gKngTs7T.net
ていうか、そもそも
子オブジェクトつきの親オブジェクトをプレハブ化した場合
そのプレハブを生成するときは毎度一緒に子プレハブが生成されてもいいと思いませんか
意味がわからない。。

372 :名前は開発中のものです。:2023/12/01(金) 03:19:52.70 ID:602WDQfP.net
>>370
なら生成されたオブジェクトにStartでそれを記述すればいいのでは

373 :名前は開発中のものです。:2023/12/01(金) 03:21:11.38 ID:gKngTs7T.net
なんども視聴してるけど、死ぬほどややこしい。。。。

プレハブの親子関係
https://www.youtube.com/watch?v=Apr0SBjqTAY&t=529s

374 :名前は開発中のものです。:2023/12/01(金) 03:21:32.39 ID:602WDQfP.net
>>371
子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。
シーン上で編集してオーバーライドしていないのでは

375 :名前は開発中のものです。:2023/12/01(金) 03:22:35.45 ID:gKngTs7T.net
>>372
ですよね??
それ、いけますよね??

明日やってみます
もう今夜は寝ます
ありがとうございます!

376 :名前は開発中のものです。:2023/12/01(金) 03:25:20.78 ID:gKngTs7T.net
>>374
>子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。

まじですか!?!?!?それだと嬉しいです!!!!!!!!

>シーン上で編集してオーバーライドしていないのでは

オーバーライド??知らないのでやってないと思います!
明日、調べてやってみます!!やったああ!!

ていうか、
>子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。
これが正しいなら、その動画の長々しい解説なんなんでしょう!!
ややこしすぎる!!

377 :名前は開発中のものです。:2023/12/02(土) 14:56:54.67 ID:cw6ywShe.net
質問させてください。開発環境はMacです
mac book pro メモリ16G
グラフィックボード Radeon Pro 560 4096 MB,Intel HD Graphics 630 1536 MB

Unityで再生ボタンを押したあとゲームが実行されるまで
15秒から20秒くらいかかります。
実行されるまでの間のReload Script Assembliesポップにて
虹色グルグルが出ます。それが15秒くらい続くわけです。

プロジェクト自体にはまだほとんど素材もありません。
コードでなにか負荷をかける様なミスもあるかもしれないので
file→new sceneで真っさらなsceneにして再生してみましたが
やはり実行されるまで同じ状況になるので、
コードやプロジェクトのせいでは無さそうです。

どの様な原因が考えられますか?
ちなみに、スプリクトエディタには
軽いという理由でVS Codeを選んでいます。

同じ様に再生ボタン押してからゲームが実行されるまで
ロード時間が長くて解決できた方とかいますか?
早い人だと実行されるまで1秒とか言ってるので、どうにかしたいです。

378 :名前は開発中のものです。:2023/12/02(土) 15:56:24.27 ID:5XLPJcoQ.net
いらねーパッケージやらPlug-inやら最近のUnityはプロジェクト作った段階で入るから消せばよくね

379 :名前は開発中のものです。:2023/12/02(土) 15:57:12.00 ID:5XLPJcoQ.net
>>377
ちなみに、その早い人は君と同じ開発環境なのかな?

その人と同じ機種にればもっとよくね?

380 :名前は開発中のものです。:2023/12/02(土) 16:07:58.99 ID:mbmOr3Q/.net
まさかいまどきHDD使ってるとか

381 :名前は開発中のものです。:2023/12/02(土) 16:54:04.00 ID:kzQwpgnK.net
Unity関連のハウツー本の中で昔あったFlashゲー的なモノを題材にしたものって何かありますかね?

382 :名前は開発中のものです。:2023/12/02(土) 16:54:04.18 ID:NpDR7C5p.net
最近のunityはパッケージまみれで空のプロジェクトでも2G弱あるからな起動から何から全部遅くなってる
さすがに耐えられなくて2020に戻したわ

383 :名前は開発中のものです。:2023/12/02(土) 17:02:05.44 ID:uXSz+3ZC.net
unityパッケージ多すぎてどれが必要でどれが不要なのかもわかりません

384 :名前は開発中のものです。:2023/12/02(土) 17:07:08.30 ID:HAQXIv4J.net
>>161
Mac買うのやめた方がいいと思う
普通にRTX搭載のBTOゲーミングPC買ってみてはどうかな
生成AI使うのはこれから必須になっていくし3060VRAM 12GB搭載機はそんなに高くない、そもそもMacだと同じ性能比のWinと比べてコスパ激高になる上にやれる事が凄く減る
Apple Vision Proという次世代プラットフォームになり得るものが控えてるけど、それでも開発機はWinでApple Vision Pro向けにリリースする時に安いMacでStore登録有れば事足りるんじゃないかな

385 :ドーンおじ:2023/12/02(土) 17:48:15.84 ID:Gozfv42z.net
>>384
VisionProがプラットフォームになるわけねーだろwww50万だぞ!50万!誰が買うんだよ!
生成AIがどーこーとか見当違いなこともどーでもいーだろ!
AppStoreに出すときにXcode環境は必須だからMacは必要って云っときゃいいんだよ!
ど素人がわざわざ遅レスしてまで初心者にクソみたいなアドバイスしてんじゃねーぞコラ!m9⎛´・ω・`⎞ドーン!

総レス数 1001
334 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200