- 1 名前:名前は開発中のものです。 [2018/06/06(水) 10:45:19.46 ID:3pAIyBsg.net]
- フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
■注意事項 「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く 次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 関連スレ 【3Dゲームエンジン】Unity質問スレッド35 https://mevius.5ch.net/test/read.cgi/gamedev/1523771570/
- 384 名前:名前は開発中のものです。 mailto:sage [2018/08/06(月) 20:49:47.90 ID:elMC6huJ.net]
- >>359
横からだが、俺自身も昔ながらのゲーム開発からUnity開発へ移行した口だけど、結局のところ昔ながらのことをしないとパフォーマンス稼げないことが多々出てくるから、どっちのやり方も知っていいとこ取りをするのがベストだと思っている あとチュートリアルはお作法というより機能や出来ることの説明がメインだから、設計という意味ではあまり参考にならないかと
- 385 名前:名前は開発中のものです。 [2018/08/06(月) 23:48:58.31 ID:pjnXk9Sd.net]
- >>368
ありがとうございます! モチベーションが上がって来ました。 それを参考に私も頑張ってみます。 >>370 >機能や出来ることの説明がメインだから そうなんですよ、Unityモデルでの昔ながらの作成方法な 設計の参考になるものが皆無なんで、困ってます。
- 386 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 05:33:02.72 ID:qUQ4iHYs.net]
- シーンに空のオブジェクト置いてfixedupdateを
mainループとみなしてそこからすべて操作するだけ
- 387 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 07:23:29.46 ID:7twjrWhc.net]
- unityでそのままの方法でできるんだから悩む必要ないぞ
スクリプトをプレイヤーにつけるか敵につけるか空のオブジェクトにつけるかの違いだから チュートリアルみたいに分散させるとどこに書いたかわからなくなって混乱の元になるし 一箇所に集めて配列管理でいいんじゃね
- 388 名前:名前は開発中のものです。 [2018/08/07(火) 11:30:26.00 ID:fUL+ini3.net]
- エディタ拡張やってる人いますか?
inspectorに何かを表示したりそこにオブジェクトを生成するような簡単な処理はできるようになったんだけど、そこから先のやり方が全くわからない 例えば、既存のterrainの上部のボタンみたいなものを作って独自の機能を自作したりシーン上でクリック等の操作をできるようにしたりする方法教えてください
- 389 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 15:03:44.07 ID:XJ39evIU.net]
- >>374
anchan828.github.io/editor-manual/web/index.html
- 390 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 15:17:47.36 ID:XJ39evIU.net]
- >>374
スマホだとわかりにくいけど、目次からweb版(無料)が見られるよ。探せなければpcで。それだけできてるなら6.10、17.2あたり見ればヒントになると思うよ。
- 391 名前:名前は開発中のものです。 [2018/08/07(火) 17:12:34.80 ID:fUL+ini3.net]
- >>37
- 392 名前:6
ありがとう ボタン設置やハンドルの表示は分かるんだけど、例えばシーン上のどこかをクリックしたらその座標にオブジェクトを生成するとして、それだけなら出来るんだけど他のオブジェクトをクリックしたときに、そのオブジェクトを選択したことになってしまうんです terrainで編集中だとシーン上で他のオブジェクトをクリックしたとしても、そのオブジェクトが選択されたりしないよね? まずは、シーン上でオブジェクトをクリックしても選択しないようにしたい 単純に「シーン上でオブジェクトを選択不可にする方法」ってのはぐぐったら出てきたんだけど、スクリプト込の記事がないんだよね あとは、例えばterrainならterrainDataいじってterrainの新しい機能を作りたいと思ってるんですけどね []- [ここ壊れてます]
- 393 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 19:10:53.89 ID:qu27Ep4Q.net]
- https://i.imgur.com/amXVxen.jpg
https://i.imgur.com/twb7p6A.jpg https://i.imgur.com/sPHv2uG.jpg https://i.imgur.com/PcvppLs.jpg ど素人質問&画像直撮りですみません マウスクリックでスプライトのアニメーションを変えるスクリプトらしいんですがイマイチよく分かりません 一番最初、「Animator」で記述すると「」がc#では使えないと出たり その横のanimeDataが「フィールド'PlayerMove.animeData'は割り当てられません」と出ます 初歩的なことで申し訳ないのですが教えていただきたいです
- 394 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 20:07:03.30 ID:iOrv/KJ+.net]
- >>378
解説本はその解説本が対応しているバージョンのUnityで行いましょう
- 395 名前:弟子 mailto:sage [2018/08/07(火) 20:21:33.60 ID:3KKwqbLg.net]
- >>378
一番最初というと [SerializeField]「Animator」 animeData; という部分ですね 恐らくで申し訳ないがこれは animeDataというAnimator型の変数を定義していると思うので [SerializeField] Animator animeData; でいいかと思います その次のfloat定義も float minPoint = -2; てなってますし。
- 396 名前:名前は開発中のものです。 [2018/08/07(火) 20:32:48.91 ID:4Dd8RRWT.net]
- >>372
すみません、空オブジェクトのUpdateでは無く、 FixedUpdateである方が良い理由を教えてください。
- 397 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:09:14.11 ID:qu27Ep4Q.net]
- >>379
>>380 回答ありがとうございます 参考にしつつ手順の漏れがないか最初からやり直してみます
- 398 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:19:26.85 ID:7twjrWhc.net]
- [SerializeField]ってことはインスペクタでanimeDataを指定しないといけない
たぶんぴーたんをドラッグドロップするんだろう
- 399 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:33:22.06 ID:iXlByqKN.net]
- >>381
フレームレート60に設定するとfixedupdateは秒間60回呼ばれる updateは何回呼ばれるか決まってない 昔のゲームプログラムはフレームレート固定だったので 昔風に書くならfixedupdateがおすすめ
- 400 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:55:56.43 ID:iXlByqKN.net]
- >>381
https://youtu.be/Ju4ILgpuVHE?t=836 この動画を見るとfixedupdateがよくわかる
- 401 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:57:34.60 ID:XJ39evIU.net]
- >>381
大体固定だからじゃない?でも多分両方必要だとおもうよ。
- 402 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 23:36:06.98 ID:0e3nA05E.net]
- >>384
でも、描画フレームとは同期できないから使い勝手悪いぞ 素直にUpdate使う方が楽
- 403 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 23:41:08.87 ID:0e3nA05E.net]
- >>384
もうひとつ付け加えると、FixedUpdateはスレッドで動いてるわけじゃないから、Update(描画フレーム)が処理落ちすると、1フレームに複数回呼ばれるし、その逆もまたしかりなので、結構めんどくさいよ
- 404 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 23:56:38.80 ID:FHXvAGCS.net]
- >>381
Updateで昔ながらの60fpsをやるなら、まずコードのどこかでApplication.targetFrameRateに60を設定する メニューからQuality SettingsのVSync CountをDon’t Syncにする 同じくメニューからTime ManagerのMaximum Allowed Timestepを1/60にする これで
- 405 名前:ルぼほぼUpdateが60fpsになるはず []
- [ここ壊れてます]
- 406 名前:名前は開発中のものです。 [2018/08/08(水) 04:20:11.17 ID:ROW+RPaT.net]
- >>387 >>388
え、、、じゃあUpdateの方がいいんですかね fixedupdateはPhysics(Physics2D)系以外を呼ぶなって書いてもありました。 >>389 じゃあUpdateの方がいいんですかね どうすればいいのか頭が混乱してます。 とりあえず、作ってみないと、、 簡単なものから組み立ててみます。
- 407 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 05:50:12.43 ID:NV2Fm/zi.net]
- unityでこれって正解はそうそうないからな
みんな自分がうまく行く方法を教えるから意見がぶつかり合う んで一番割りを食うのはそれを見て学ぶ初心者ってことだなw
- 408 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 06:49:31.17 ID:tYWBz4xV.net]
- 専門学校でゲームプログラムやってて、卒業後から最近まで業務システムやってたって人がいるんだけど、昔ゲームプログラムやった人はUnityは結構混乱するらしいな。
そのおっさんはゲームと思わない事がコツとか言ってる。 Unityでやるなら昔の事は忘れた方がいいみたいな気がするわ。
- 409 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 07:13:12.39 ID:Fn8D11Bz.net]
- Unityがデフォで提供する可変フレームレートの仕組みのところで、そんなにやり方が分散するとは思えんな
https://docs.unity3d.com/Manual/ExecutionOrder.html ↑ここの下の方の流れ図を見てみ FixUpdateはUpdateよりも実行される頻度が多い(FixUpdateの所で矢印がぐるぐる回っている) Updateは描画(Rendering)前に呼ばれる Updateには描画時のみに必要な処理を書く。つまり、描画コマ落ち時には呼ばなくても良い処理を書く。例えば条件に応じて色合いを変えたりとか。 Updateが固定フレームで呼ばれるようにするのは愚の骨頂だぜ 公式が何のためにわざわざUpdateを分離してくれたと思ってるんだw >>392 上のWebページの図の流れは、FixedUpdateがフレーム当たり何回も呼ばれる所以外、昔からのゲームの流れそのものなんだが
- 410 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 07:13:57.49 ID:Fn8D11Bz.net]
- ×FixUpdate
○FixedUpdate ><
- 411 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 07:28:28.35 ID:tYWBz4xV.net]
- >>393
やだなぁ、そんなに上から目線で言わなくても、俺よりみんなの方が出来る人達なのはわかってるって。 昔ながらだと、メモリ配置どうなってんの?から始まるみたいだし。
- 412 名前:名前は開発中のものです。 [2018/08/08(水) 07:41:24.90 ID:dtdVOklI.net]
- 393が言ってる通り、updateら辺はお決まりだべさ
updateの頻度に関してはupdateのが多い場合がある、ってか、60fps行ってたら、デフォのfixed updateより遥かに頻度は高い。 問題は用法で、 updateはベストエフォートで実施されるから時間が適当。 例えフレームレート固定にしても、結構適当で1秒辺り処理される回数も結構適当。 一方fixed updateはバチっと固定秒を監視してるから固定秒間隔で実施出来る。んで、一秒辺りに処理される回数は決まってる。 1秒辺り何回やっても良い事務処理は updateで。 1秒辺り変化して欲しい量の加算や力の積み上げに関する処理はfixed updateでやると正確な回数処理されるって所かな。まあ、addforceとpositionの加算はfixed updateでやっとけばok
- 413 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 09:45:47.13 ID:IIyUr7UN.net]
- >>396
嘘教えるなって! Updateの処理が重いとfixedUpdateは待たされるから固定秒間隔なんかで来ない じゃあ、fixedUpdateがなんのためにあるかっていったら物理演算のためだよ Unityに入ってる物理エンジンはある時点でのスナップショットで判定してるから経過時間が等間隔じゃないと正しく判定できないから擬似的にその状況を作ってくれてるだけ
- 414 名前:名前は開発中のものです。 [2018/08/08(水) 10:38:49.37 ID:ROW+RPaT.net]
- うおおおおおおおおおおおおおおおおお
、、、結局、誰の認識が正しいのですか!?
- 415 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 10:42:47.13 ID:aE2PPNXc.net]
- >>397
俺ら初心者スレの猛者達がFixedUpdateを遅らせるような事する訳ないだろ。
- 416 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 10:52:05.94 ID:sLCgEPxI.net]
- >>398
固定フレームレートでやりたいなら、自分で時間見てやりなさい、ってとこかな。Unity公式で紹介されてたなんかの弾幕ゲーはそうやってたよ。
- 417 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 11:02:40.16 ID:GGilygSJ.net]
- >>398
知識披露したいだけの奴らだから無視してればいい バグがでて必要になったら覚えりゃいいだけ
- 418 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 11:20:11.17 ID:IIyUr7UN.net]
- >>399
実際にUpdateが処理落ちしてるときにFixedUpdateが呼ばれる間隔を計測してみ 等間隔なんかで来てないから あと余談だけど、昔のゲームはVシンクに同期して作ってるのが多いから処理落ちするとスローモーションみたいになるけど、FixedUpdateだとフレームスキップしたようになる
- 419 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 11:54:42.55 ID:kbto8gV2.net]
- >>398
手っ取り早く、>>389でいいよ。 他のやり方は、他の仕様との兼ね合いとか考慮する事もあるので。
- 420 名前:弟子 mailto:sage [2018/08/08(水) 11:56:20.94 ID:3sTNJ/OU.net]
- >>398
習うより慣れろ精神で、まず作りましょ んで何か不具合、またわからないことが出てきたら、具体的に聴けばいいかと
- 421 名前:名前は開発中のものです。 mailto:sage [2018/08/08(水) 12:01:33.22 ID:u0RnB40v.net]
- 操作に対して移動を優先するか
遅くしてもグラフィックを描画するかはゲームの設計思想の問題 どっちが正解とかない
- 422 名前:名前は開発中のものです。 mailto:sage [2018/08/09(木) 08:13:03.25 ID:e+UL/kpA.net]
- この方の最新ツイート(8/8付)動画の40秒以降のぐるぐる回りながら形が戻っていく動き、どうやって作るんですか?
https://twitter.com/Makan_Gilani (deleted an unsolicited ad)
- 423 名前:名前は開発中のものです。 [2018/08/09(木) 08:34:57.79 ID:3chL1kmW.net]
- >>406
パーティクルで、発生位置がメッシュかな。パーティクルはオブジェクトな。 透明なスキンメッシュのオブジェクトがアニメしてて、メッシュの頂点から発生させてるって所か。 最近だとvelocityに回転つけられるんで、それも合わせりゃいいかと
- 424 名前:名前は開発中のものです。 mailto:sage [2018/08/09(木) 09:06:55.46 ID:PMvEwNv2.net]
- >>406
Houdiniでも使ったんかと思ったがProcedural Animationsだけで作ったと書いてある スクリプトでtransformの制御だけで作ったようだね 恐れ入るよw
- 425 名前:名前は開発中のものです。 mailto:sage [2018/08/09(木) 22:10:26.06 ID:IWEFStf3.net]
- >>407
>>408 ありがとうございます、やれるだけやってみます。
- 426 名前:名前は開発中のものです。 [2018/08/10(金) 20:49:30.40 ID:FesHIFfD.net]
- Raycastについて質問です。
rayを飛ばして当たったオブジェクトの情報を取得することは出来たのですが、ヒットしない場合、指定したY座標に到達した時のXZ座標を取得するにはどうすればいいですか? 例として高い位置(動的)から斜め下にrayを飛ばしてYが0の地点のXとZを取得したいです。
- 427 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 21:49:03.65 ID:bTEggd1E.net]
- >>410
さくっと考えてみた d = レイの始点.y ÷ レイの向き.y p = レイの始点 + レイの向き × -d これで出来たりしないかな?
- 428 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 22:05:26.37 ID:FyfoKJKo.net]
- でっかい地面、四角をおく。
レイと似たようなほっそ長ーい、オブジェクトを用意してそれをカメラの子供にして、z軸をレイと同じ方向で座標調整。 あとは、このオブジェと地面の交点をコリジョンのコンタクトポイントで取得すれば出来上がり。
- 429 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 22:37:17.53 ID:/+Zaq+IX.net]
- 3次元空間の方程式で解
- 430 名前:ッるんじゃないかね
高校数学だな 覚えてないが [] - [ここ壊れてます]
- 431 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 22:40:39.62 ID:bTEggd1E.net]
- まあ、もともとレイキャスト使ってるわけだし、素直に平べったいでかいボックスコライダー敷いて、それとの交点拾った方が楽かもね
- 432 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 23:03:35.77 ID:/+Zaq+IX.net]
- 現在地(X0,Y0,Z0) 直線の方向(l,m,n)
X=X0-l*Y0/m Z=Z0-n*Y0/m あってるかどうかは知らん
- 433 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 23:14:06.24 ID:AiF2ZNWr.net]
- >>415
411と一緒じゃね?
- 434 名前:名前は開発中のものです。 mailto:sage [2018/08/10(金) 23:42:56.79 ID:/+Zaq+IX.net]
- 411の式がなにを書いているのかよく理解できない
- 435 名前:410 [2018/08/10(金) 23:45:08.91 ID:0EV31+6P.net]
- 410ですありがとうございます
最初412のようなこと考えたんですが、とてつもなく大きくしないとヒットしない場合が出てくるのでやめて、タンジェント使って実現できました ですが、逆にy0座標を入れた変数の方を基準として操作してもう1つの方も動くようにしましたごめんなさい
- 436 名前:名前は開発中のものです。 [2018/08/11(土) 03:36:04.42 ID:w1AtvJPI.net]
- Plane.Raycastとかはどう?
- 437 名前:名前は開発中のものです。 [2018/08/13(月) 01:22:28.89 ID:hVLDMUb5.net]
- スクリプトから生成したオブジェクトにアタッチしてるスクリプトのstart()内でtransform.positionに値を入れるのが効かなくて、update()内でやると効くというような現象が起たのでググったら1件バクという記事があったんですが、そんなバグありますか?
スクリプトの読み込み順は生成元を優先にしてます 解決法わかる方いましたらよろしくおねがいします
- 438 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 02:35:54.68 ID:h8PoyRSx.net]
- まずスクリプトを書けよ
- 439 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 03:53:13.25 ID:J+8KZvgr.net]
- startのあとにどっかで上書きしてるんでしょ
- 440 名前:名前は開発中のものです。 [2018/08/13(月) 04:28:58.13 ID:SqAPnHqn.net]
- 生成元のInstantiateの直後に生成元でそのオブジェクトのtransform.positionに入れると効くので上書きはしてないと思うんですよね
両方それぞれのメソッドでDebug.Log入れて見てみたんですけど、ファイル実行の優先順位を設定してても、その中のメソッドの処理のタイミングがバラバラで上手くいってない気がしました がまだ解決はできてません
- 441 名前:弟子 mailto:sage [2018/08/13(月) 04:44:09.64 ID:nyffuRFH.net]
- バグという記事のurlよければください
再現できるか確認してみたいと思います
- 442 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 05:27:12.92 ID:h8PoyRSx.net]
- 抽象的なこと書かれても誰もどうすることもできんぞ
自分で解決しろとしか
- 443 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 08:56:25.52 ID:Z2oDd47O.net]
- Startの綴りが間違ってるとかそんなんだったら笑う
- 444 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 11:48:28.22 ID:de0S85/j.net]
- 俺は親オブジェクト指定してなくてローカル座標のつもりがワールド座標になってたりその逆だったりならたまにある。
- 445 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 12:58:04.92 ID:SGRWJO+v.net]
- ・unityで、コンビニで買えるプリペイドで購入する方法ありますか?
・DynamicBone ですが、フリー版で似た機能を使えるプラグインとかありますか?
- 446 名前:名前は開発中のものです。 mailto:sage [2018/08/13(月) 16:08:51.42 ID:CIIJAnZJ.net]
- ありますん
- 447 名前:名前は開発中のものです。 mailto:sage [2018/08/15(水) 14:53:35.61 ID:e1D8QaXW.net]
- >>428
https://panora.tokyo/61196/
- 448 名前:名前は開発中のものです。 [2018/08/16(木) 08:17:34.80 ID:Rx2cVzvB.net]
- 2000x2000とかの大きなterrainだと、遠くの山が描写されず、近づくと表示されて気持ち悪いんですが、描写される距離を設定で変えたりできますか?
木や草を描写する距離などはterrainの設定から出来るんですが、terrainそのものの描写する距離を変える設定が見つかりません
- 449 名前:名前は開発中のものです。 mailto:sage [2018/08/16(木) 09:49:16.59 ID:37AyipWF.net]
- テレインのインスペクターの、far、miniだったか?の値を変える。
- 450 名前:名前は開発中のものです。 mailto:sage [2018/08/16(木) 09:49:59.45 ID:37AyipWF.net]
- farが遠くが、どこまで見えるかの値。
- 451 名前:名前は開発中のものです。 [2018/08/16(木) 15:57:21.93 ID:Rx2cVzvB.net]
- テレインのインスペクターって、インスペクター上の歯車マーク(terrain settings)のところですよね?
そのfarがないんですよね unityのバージョンは20182.2f1です
- 452 名前:名前は開発中のものです。 mailto:sage [2018/08/16(木) 19:22:49.41 ID:37AyipWF.net]
- >>434
カメラのインスペクターだった。
- 453 名前:名前は開発中のものです。 mailto:sage [2018/08/17(金) 18:04:21.11 ID:/P5tUkj4.net]
- 剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて
- 454 名前:弟子 mailto:sage [2018/08/17(金) 20:11:32.08 ID:ni8AyJER.net]
- 出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?
- 455 名前:名前は開発中のものです。 mailto:sage [2018/08/17(金) 21:06:12.39 ID:jjg/SVIP.net]
- コライダーって出したり引っ込めたりするもんなのか?
- 456 名前:名前は開発中のものです。 mailto:sage [2018/08/17(金) 21:13:36.99 ID:53TbFepx.net]
- コライダを消せばいいやん。(false)
- 457 名前:436 [2018/08/17(金) 22:51:55.49 ID:Cl208u38.net]
- プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour { void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "Enemy") { Destroy(coll.gameObject); Debug.Log("hit Object"); } }
- 458 名前:436 [2018/08/17(金) 22:52:26.80 ID:Cl208u38.net]
- プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる 消すように色々ためしたけど上手くいかない、アドバイス頼みます public GameObject AtariHantei; void Update() { //アタック if (Input.GetMouseButtonDown(1)) { this.animator.SetTrigger("AttackTrigger"); //アニメ再生 audioSource.PlayOneShot(AttackSE, volumeSE); //AttackSE AtariHantei.SetActive(true); //コライダon }
- 459 名前:名前は開発中のものです。 mailto:sage [2018/08/17(金) 23:27:49.09 ID:jjg/SVIP.net]
- 詳しくはわからんけど根本的にやり方間違ってそうな気がするな
- 460 名前:弟子 mailto:sage [2018/08/18(土) 00:11:37.07 ID:cxAelueQ.net]
- >>440,441
とりあえず、そのスクリプトを生かしてコード書いてみました 現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします public class AttackController : MonoBehaviour { void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "Enemy") { Destroy(coll.gameObject); Debug.Log("hit Object"); transform.parent.SendMessage("SetOffAtariHantei"); } } で、プレイヤーには void SetOffAtariHantei() { AtariHantei.SetActive(false); //コライダOff } を追加します プレイヤーとあたり判定は親子関係にしました https://i.gyazo.com/d55a5010816e8b2f99b0db403835c96e.png https://i.gyazo.com/ae2fefe26576b05fecbc233346631b42.png これで敵を2対置いて、ミギクリした場合としない場合で判定がちゃんとされます https://imgur.com/a/HCi2D6J
- 461 名前:弟子 mailto:sage [2018/08/18(土) 00:14:35.49 ID:cxAelueQ.net]
- あぁテストする際、
void Start() { SetOffAtariHantei(); } に入れて最初は通過、その後クリックで当たるとした方が分かりやすかったかもしれません><
- 462 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 03:49:59.01 ID:FXerNp9n.net]
- なんで出っぱなしになって困ってる判定を敵にあたったら消すように改修すんの?
剣を振るアニメーション終わった後にとことこ敵の前に歩いていったら攻撃があたんの? 亜空間攻撃とはなかなか見ないゲームだな どんなゲームか
- 463 名前:わからんけど普通は一定時間後にオフにすればいい
SetActive falseで消えることはわかってるだろうから一定時間後にその処理を呼ぶようにすればいい 一定時間後に処理を走らせる方法はいろいろあるからググって わかんなかったらまた聞いて [] - [ここ壊れてます]
- 464 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 03:53:50.54 ID:FXerNp9n.net]
- >>444
知らなければ答えなければいい とか言って他人を煽るんだったら正しく答えてくれません? なんで初心者が迷うような回答をいつもするんですか?
- 465 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 11:18:41.80 ID:CpHT33yN.net]
- >>441
アニメーションイベントを使うといいよ 具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ 現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う 詳しくはウェブで!! https://gametukurikata.com/basic/animationevent
- 466 名前:名前は開発中のものです。 [2018/08/18(土) 11:49:36.64 ID:42eZyM7+.net]
- <<442
>>443 ありがとうございます 攻撃→コライダ出る→敵に当たる→コライダ消えるって感じなので、攻撃を空振りしたあとに 敵に当たるまでコライダ出っぱなしになるんだけど、これはどうすればいいの? そもそもこの攻撃の当たり判定の仕方は根本的に間違ってるの?入門本三冊持ってるんだけど どれにも攻撃の当たり判定は載ってなかったからネット検索してやってみたんだけども アニメーションイベント使ってやった方がいいのだろうか?ちなみに本にはアニメーションイベントのやり方は載ってなくて ググってみたけどよく分からなかった
- 467 名前:名前は開発中のものです。 [2018/08/18(土) 12:18:13.14 ID:42eZyM7+.net]
- >>445
>>447 ありがとうございます、一定期間後の処理で出来るようになりました。 アニメーションイベントもわからないので調べて出来るようになろうと思う void AtariKesu() { AtariHantei.SetActive(false); } void Update() { //アタック if (Input.GetMouseButtonDown(1)) { AtariHantei.SetActive(true); //コライダon Invoke("AtariKesu", 0.3f); }
- 468 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 14:52:49.51 ID:X+sFoNwa.net]
- >>448
間違い。 @コライダー出す→コライダー消す Aコライダーに当たる、 @Aの判定は別で処理すべき。 Aで当たった判定を@に渡して、途中で消す作りにすべき。
- 469 名前:名前は開発中のものです。 [2018/08/18(土) 17:20:42.60 ID:D8/ukjCM.net]
- raycastのrayって判定がけっこう曖昧になったりすることありますか?
マウスが乗ってるとこのterrainの座標を取得するのは問題なく出来てるんですが、xz座標を指定して高い位置から真下に飛ばしてヒットしたy座標を取得しようとすると取得できたり出来なかったり違った値が入ったりするんですが 少し感じたのはinfinityにするとしても発射位置を少し高くすると反応しなくなったりしてます
- 470 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 19:25:51.68 ID:An0BPv4U.net]
- >>449
アニメーションEventは一回わかると結構簡単だ public void AtariKesu()のスクリプトをつける アニメーションのEventにAtariKesuを入れるとそのコマに来たら呼び出してくれる
- 471 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 23:30:28.71 ID:47mEmEPe.net]
- >>451
曖昧になったと感じたことはない。 私は、な。
- 472 名前:名前は開発中のものです。 mailto:sage [2018/08/18(土) 23:34:58.38 ID:CVdxGkvB.net]
- お前の話は聞いてない
- 473 名前:名前は開発中のものです。 mailto:sage [2018/08/19(日) 00:14:57.54 ID:9mjqz3Tm.net]
- >>449
はじめて自分でアニメーションまでつけてやってみた 結構めんどくさかった 剣にコライダーつけてisTrigerをオン・オフにするようにした コライダーのisTrigerのチェック入れておく(オフの状態) public Collider2D coll2; void Start () {coll2=GetComponent<Collider2D>();} public void collOn(){coll2.isTrigger=true;} public void colOff(){coll2.isTrigger=false;} void OnCollisionEnter2D(Collision2D col) {Destroy(col.gameObject);} あとは剣のanimationで振り始めにEventをつけてcolOnを選んで 振り終わりにcolOffを選ぶ
- 474 名前:名前は開発中のものです。 [2018/08/19(日) 00:41:49.62 ID:gr5beU/F.net]
- >>452
>>455 ありがとうございます 自分もそれで試してみようと思う
- 475 名前:名前は開発中のものです。 mailto:sage [2018/08/21(火) 01:36:00.94 ID:ypI3wEdL.net]
- 上達するにはチュートリアルやれとしか言われないのですが、
あの数をやり終えてる人はなかなかいないと思います。 興味あるチュートリアルをやっているのか、好きなゲームを作って学んでいるのか、 皆さんはどうやって上達、脱初心者をしたのですか。
- 476 名前:名前は開発中のものです。 mailto:sage [2018/08/21(火) 01:47:03.06 ID:en2r1zRw.net]
- 聞いたところで何になる?
とにかく作る事。 作りたいものがあれば、それに必要なアルゴリズム、ロジックを構築する、その為にそこをしらべる。 これの繰り返し。
- 477 名前:弟子 mailto:sage [2018/08/21(火) 01:55:37.36 ID:RFRywrT+.net]
- >>457
初心者スレでそれ聴かれても 自分はずっと初心者でいいかなと思ってますよ
- 478 名前:名前は開発中のものです。 mailto:sage [2018/08/21(火) 03:04:32.49 ID:fxmPVXdZ.net]
- ええ…
- 479 名前:名前は開発中のものです。 mailto:sage [2018/08/21(火) 15:11:17.70 ID:8qBPp1CD.net]
- >>457
チュートリアルはroll a ballしかやらなかったな その後は作りたいゲームの案から比較的簡単なやつを選んで作っていった 上達の秘訣はググり力だと思うよ リファレンスを眺めて思いを馳せるのもいいかもしれない
- 480 名前:名前は開発中のものです。 [2018/08/24(金) 11:55:13.06 ID:Grbxnj3m.net]
- 敵がプレイヤーに向かってくるスクリプトはできたんだけど敵の進行方向にspriteを左右に反転させるコードがわかりません
分かる方いたらよろしくお願いします。 public class Chase : MonoBehaviour { public GameObject Player; public float Speed; void Update() { this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime); } }
- 481 名前:名前は開発中のものです。 [2018/08/24(金) 12:10:02.41 ID:4yphetVh.net]
- void Update()
{ Vector3 prePosition = transform.position; this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime); if(transform.position.x - prePosition.x >= 0){ transform.localScale.x = 1; }else{ transform.localScale.x = -1; } } こんな感じでどう? 2Dやったことないけどねw
- 482 名前:名前は開発中のものです。 mailto:sage [2018/08/24(金) 12:24:40.51 ID:4yphetVh.net]
- すまん横着した
こっちで void Update() { Vector3 prePosition = transform.position; this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime); Vector3 scale = transform.localScale; if(transform.position.x - prePosition.x >= 0){ scall.x = 1; }else{ scall.x = -1; } transform.localScale = scale; }
- 483 名前:名前は開発中のものです。 mailto:sage [2018/08/24(金) 12:25:36.69 ID:4yphetVh.net]
- スペルミスってるw
もうだめだw
- 484 名前:462 [2018/08/24(金) 12:53:19.91 ID:Grbxnj3m.net]
- >>465
できました ありがとうございます
|

|