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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
373: 2018/08/07(火)07:23 ID:7twjrWhc(1/2) AAS
unityでそのままの方法でできるんだから悩む必要ないぞ
スクリプトをプレイヤーにつけるか敵につけるか空のオブジェクトにつけるかの違いだから
チュートリアルみたいに分散させるとどこに書いたかわからなくなって混乱の元になるし
一箇所に集めて配列管理でいいんじゃね
374
(2): 2018/08/07(火)11:30 ID:fUL+ini3(1/2) AAS
エディタ拡張やってる人いますか?
inspectorに何かを表示したりそこにオブジェクトを生成するような簡単な処理はできるようになったんだけど、そこから先のやり方が全くわからない
例えば、既存のterrainの上部のボタンみたいなものを作って独自の機能を自作したりシーン上でクリック等の操作をできるようにしたりする方法教えてください
375: 2018/08/07(火)15:03 ID:XJ39evIU(1/3) AAS
>>374
外部リンク[html]:anchan828.github.io
376
(1): 2018/08/07(火)15:17 ID:XJ39evIU(2/3) AAS
>>374
スマホだとわかりにくいけど、目次からweb版(無料)が見られるよ。探せなければpcで。それだけできてるなら6.10、17.2あたり見ればヒントになると思うよ。
377: 2018/08/07(火)17:12 ID:fUL+ini3(2/2) AAS
>>376
ありがとう
ボタン設置やハンドルの表示は分かるんだけど、例えばシーン上のどこかをクリックしたらその座標にオブジェクトを生成するとして、それだけなら出来るんだけど他のオブジェクトをクリックしたときに、そのオブジェクトを選択したことになってしまうんです
terrainで編集中だとシーン上で他のオブジェクトをクリックしたとしても、そのオブジェクトが選択されたりしないよね?
まずは、シーン上でオブジェクトをクリックしても選択しないようにしたい
単純に「シーン上でオブジェクトを選択不可にする方法」ってのはぐぐったら出てきたんだけど、スクリプト込の記事がないんだよね

あとは、例えばterrainならterrainDataいじってterrainの新しい機能を作りたいと思ってるんですけどね
378
(2): 2018/08/07(火)19:10 ID:qu27Ep4Q(1/2) AAS
画像リンク[jpg]:i.imgur.com
画像リンク[jpg]:i.imgur.com
画像リンク[jpg]:i.imgur.com
画像リンク[jpg]:i.imgur.com

ど素人質問&画像直撮りですみません
マウスクリックでスプライトのアニメーションを変えるスクリプトらしいんですがイマイチよく分かりません
一番最初、「Animator」で記述すると「」がc#では使えないと出たり
省2
379
(1): 2018/08/07(火)20:07 ID:iOrv/KJ+(1) AAS
>>378
解説本はその解説本が対応しているバージョンのUnityで行いましょう
380
(1): 弟子 ◆rZPPjYuxmQ 2018/08/07(火)20:21 ID:3KKwqbLg(1) AAS
>>378
一番最初というと
[SerializeField]「Animator」 animeData;
という部分ですね
恐らくで申し訳ないがこれは
animeDataというAnimator型の変数を定義していると思うので

[SerializeField]
省4
381
(4): 2018/08/07(火)20:32 ID:4Dd8RRWT(1) AAS
>>372
すみません、空オブジェクトのUpdateでは無く、
FixedUpdateである方が良い理由を教えてください。
382: 2018/08/07(火)21:09 ID:qu27Ep4Q(2/2) AAS
>>379
>>380
回答ありがとうございます
参考にしつつ手順の漏れがないか最初からやり直してみます
383: 2018/08/07(火)21:19 ID:7twjrWhc(2/2) AAS
[SerializeField]ってことはインスペクタでanimeDataを指定しないといけない
たぶんぴーたんをドラッグドロップするんだろう
384
(2): 2018/08/07(火)21:33 ID:iXlByqKN(1/2) AAS
>>381
フレームレート60に設定するとfixedupdateは秒間60回呼ばれる
updateは何回呼ばれるか決まってない
昔のゲームプログラムはフレームレート固定だったので
昔風に書くならfixedupdateがおすすめ
385: 2018/08/07(火)21:55 ID:iXlByqKN(2/2) AAS
>>381
動画リンク[YouTube]
この動画を見るとfixedupdateがよくわかる
386: 2018/08/07(火)21:57 ID:XJ39evIU(3/3) AAS
>>381
大体固定だからじゃない?でも多分両方必要だとおもうよ。
387
(1): 2018/08/07(火)23:36 ID:0e3nA05E(1/2) AAS
>>384
でも、描画フレームとは同期できないから使い勝手悪いぞ
素直にUpdate使う方が楽
388
(1): 2018/08/07(火)23:41 ID:0e3nA05E(2/2) AAS
>>384
もうひとつ付け加えると、FixedUpdateはスレッドで動いてるわけじゃないから、Update(描画フレーム)が処理落ちすると、1フレームに複数回呼ばれるし、その逆もまたしかりなので、結構めんどくさいよ
389
(2): 2018/08/07(火)23:56 ID:FHXvAGCS(1) AAS
>>381
Updateで昔ながらの60fpsをやるなら、まずコードのどこかでApplication.targetFrameRateに60を設定する

メニューからQuality SettingsのVSync CountをDon’t Syncにする

同じくメニューからTime ManagerのMaximum Allowed Timestepを1/60にする

これでほぼほぼUpdateが60fpsになるはず
390: 2018/08/08(水)04:20 ID:ROW+RPaT(1/2) AAS
>>387 >>388
え、、、じゃあUpdateの方がいいんですかね
fixedupdateはPhysics(Physics2D)系以外を呼ぶなって書いてもありました。

>>389
じゃあUpdateの方がいいんですかね

どうすればいいのか頭が混乱してます。
とりあえず、作ってみないと、、
省1
391: 2018/08/08(水)05:50 ID:NV2Fm/zi(1) AAS
unityでこれって正解はそうそうないからな
みんな自分がうまく行く方法を教えるから意見がぶつかり合う
んで一番割りを食うのはそれを見て学ぶ初心者ってことだなw
392
(1): 2018/08/08(水)06:49 ID:tYWBz4xV(1/2) AAS
専門学校でゲームプログラムやってて、卒業後から最近まで業務システムやってたって人がいるんだけど、昔ゲームプログラムやった人はUnityは結構混乱するらしいな。
そのおっさんはゲームと思わない事がコツとか言ってる。
Unityでやるなら昔の事は忘れた方がいいみたいな気がするわ。
393
(1): 2018/08/08(水)07:13 ID:Fn8D11Bz(1/2) AAS
Unityがデフォで提供する可変フレームレートの仕組みのところで、そんなにやり方が分散するとは思えんな

外部リンク[html]:docs.unity3d.com
↑ここの下の方の流れ図を見てみ
FixUpdateはUpdateよりも実行される頻度が多い(FixUpdateの所で矢印がぐるぐる回っている)
Updateは描画(Rendering)前に呼ばれる

Updateには描画時のみに必要な処理を書く。つまり、描画コマ落ち時には呼ばなくても良い処理を書く。例えば条件に応じて色合いを変えたりとか。
Updateが固定フレームで呼ばれるようにするのは愚の骨頂だぜ
省3
394: 2018/08/08(水)07:13 ID:Fn8D11Bz(2/2) AAS
×FixUpdate
○FixedUpdate
><
395: 2018/08/08(水)07:28 ID:tYWBz4xV(2/2) AAS
>>393
やだなぁ、そんなに上から目線で言わなくても、俺よりみんなの方が出来る人達なのはわかってるって。
昔ながらだと、メモリ配置どうなってんの?から始まるみたいだし。
396
(1): 2018/08/08(水)07:41 ID:dtdVOklI(1) AAS
393が言ってる通り、updateら辺はお決まりだべさ
updateの頻度に関してはupdateのが多い場合がある、ってか、60fps行ってたら、デフォのfixed updateより遥かに頻度は高い。
問題は用法で、 updateはベストエフォートで実施されるから時間が適当。
例えフレームレート固定にしても、結構適当で1秒辺り処理される回数も結構適当。
一方fixed updateはバチっと固定秒を監視してるから固定秒間隔で実施出来る。んで、一秒辺りに処理される回数は決まってる。
1秒辺り何回やっても良い事務処理は updateで。
1秒辺り変化して欲しい量の加算や力の積み上げに関する処理はfixed updateでやると正確な回数処理されるって所かな。まあ、addforceとpositionの加算はfixed updateでやっとけばok
397
(1): 2018/08/08(水)09:45 ID:IIyUr7UN(1/2) AAS
>>396
嘘教えるなって!
Updateの処理が重いとfixedUpdateは待たされるから固定秒間隔なんかで来ない
じゃあ、fixedUpdateがなんのためにあるかっていったら物理演算のためだよ
Unityに入ってる物理エンジンはある時点でのスナップショットで判定してるから経過時間が等間隔じゃないと正しく判定できないから擬似的にその状況を作ってくれてるだけ
398
(4): 2018/08/08(水)10:38 ID:ROW+RPaT(2/2) AAS
うおおおおおおおおおおおおおおおおお
、、、結局、誰の認識が正しいのですか!?
399
(1): 2018/08/08(水)10:42 ID:aE2PPNXc(1) AAS
>>397
俺ら初心者スレの猛者達がFixedUpdateを遅らせるような事する訳ないだろ。
400: 2018/08/08(水)10:52 ID:sLCgEPxI(1) AAS
>>398
固定フレームレートでやりたいなら、自分で時間見てやりなさい、ってとこかな。Unity公式で紹介されてたなんかの弾幕ゲーはそうやってたよ。
401: 2018/08/08(水)11:02 ID:GGilygSJ(1) AAS
>>398
知識披露したいだけの奴らだから無視してればいい
バグがでて必要になったら覚えりゃいいだけ
402: 2018/08/08(水)11:20 ID:IIyUr7UN(2/2) AAS
>>399
実際にUpdateが処理落ちしてるときにFixedUpdateが呼ばれる間隔を計測してみ
等間隔なんかで来てないから

あと余談だけど、昔のゲームはVシンクに同期して作ってるのが多いから処理落ちするとスローモーションみたいになるけど、FixedUpdateだとフレームスキップしたようになる
403: 2018/08/08(水)11:54 ID:kbto8gV2(1) AAS
>>398
手っ取り早く、>>389でいいよ。
他のやり方は、他の仕様との兼ね合いとか考慮する事もあるので。
404: 弟子 ◆rZPPjYuxmQ 2018/08/08(水)11:56 ID:3sTNJ/OU(1) AAS
>>398
習うより慣れろ精神で、まず作りましょ
んで何か不具合、またわからないことが出てきたら、具体的に聴けばいいかと
405: 2018/08/08(水)12:01 ID:u0RnB40v(1) AAS
操作に対して移動を優先するか
遅くしてもグラフィックを描画するかはゲームの設計思想の問題
どっちが正解とかない
406
(2): 2018/08/09(木)08:13 ID:e+UL/kpA(1) AAS
この方の最新ツイート(8/8付)動画の40秒以降のぐるぐる回りながら形が戻っていく動き、どうやって作るんですか?

Twitterリンク:Makan_Gilani
Twitterリンク:5chan_nel (5ch newer account)
407
(1): 2018/08/09(木)08:34 ID:3chL1kmW(1) AAS
>>406
パーティクルで、発生位置がメッシュかな。パーティクルはオブジェクトな。
透明なスキンメッシュのオブジェクトがアニメしてて、メッシュの頂点から発生させてるって所か。
最近だとvelocityに回転つけられるんで、それも合わせりゃいいかと
408
(1): 2018/08/09(木)09:06 ID:PMvEwNv2(1) AAS
>>406
Houdiniでも使ったんかと思ったがProcedural Animationsだけで作ったと書いてある
スクリプトでtransformの制御だけで作ったようだね
恐れ入るよw
409: 2018/08/09(木)22:10 ID:IWEFStf3(1) AAS
>>407
>>408
ありがとうございます、やれるだけやってみます。
410
(2): 2018/08/10(金)20:49 ID:FesHIFfD(1) AAS
Raycastについて質問です。
rayを飛ばして当たったオブジェクトの情報を取得することは出来たのですが、ヒットしない場合、指定したY座標に到達した時のXZ座標を取得するにはどうすればいいですか?
例として高い位置(動的)から斜め下にrayを飛ばしてYが0の地点のXとZを取得したいです。
411: 2018/08/10(金)21:49 ID:bTEggd1E(1/2) AAS
>>410
さくっと考えてみた

d = レイの始点.y ÷ レイの向き.y
p = レイの始点 + レイの向き × -d

これで出来たりしないかな?
412: 2018/08/10(金)22:05 ID:FyfoKJKo(1) AAS
でっかい地面、四角をおく。
レイと似たようなほっそ長ーい、オブジェクトを用意してそれをカメラの子供にして、z軸をレイと同じ方向で座標調整。
あとは、このオブジェと地面の交点をコリジョンのコンタクトポイントで取得すれば出来上がり。
413: 2018/08/10(金)22:37 ID:/+Zaq+IX(1/3) AAS
3次元空間の方程式で解けるんじゃないかね
高校数学だな
覚えてないが
414: 2018/08/10(金)22:40 ID:bTEggd1E(2/2) AAS
まあ、もともとレイキャスト使ってるわけだし、素直に平べったいでかいボックスコライダー敷いて、それとの交点拾った方が楽かもね
415
(1): 2018/08/10(金)23:03 ID:/+Zaq+IX(2/3) AAS
現在地(X0,Y0,Z0) 直線の方向(l,m,n)
X=X0-l*Y0/m
Z=Z0-n*Y0/m
あってるかどうかは知らん
416: 2018/08/10(金)23:14 ID:AiF2ZNWr(1) AAS
>>415
411と一緒じゃね?
417: 2018/08/10(金)23:42 ID:/+Zaq+IX(3/3) AAS
411の式がなにを書いているのかよく理解できない
418: 410 2018/08/10(金)23:45 ID:0EV31+6P(1) AAS
410ですありがとうございます
最初412のようなこと考えたんですが、とてつもなく大きくしないとヒットしない場合が出てくるのでやめて、タンジェント使って実現できました
ですが、逆にy0座標を入れた変数の方を基準として操作してもう1つの方も動くようにしましたごめんなさい
419: 2018/08/11(土)03:36 ID:w1AtvJPI(1) AAS
Plane.Raycastとかはどう?
420: 2018/08/13(月)01:22 ID:hVLDMUb5(1) AAS
スクリプトから生成したオブジェクトにアタッチしてるスクリプトのstart()内でtransform.positionに値を入れるのが効かなくて、update()内でやると効くというような現象が起たのでググったら1件バクという記事があったんですが、そんなバグありますか?
スクリプトの読み込み順は生成元を優先にしてます
解決法わかる方いましたらよろしくおねがいします
421: 2018/08/13(月)02:35 ID:h8PoyRSx(1/2) AAS
まずスクリプトを書けよ
422: 2018/08/13(月)03:53 ID:J+8KZvgr(1) AAS
startのあとにどっかで上書きしてるんでしょ
423: 2018/08/13(月)04:28 ID:SqAPnHqn(1) AAS
生成元のInstantiateの直後に生成元でそのオブジェクトのtransform.positionに入れると効くので上書きはしてないと思うんですよね
両方それぞれのメソッドでDebug.Log入れて見てみたんですけど、ファイル実行の優先順位を設定してても、その中のメソッドの処理のタイミングがバラバラで上手くいってない気がしました
がまだ解決はできてません
424: 弟子 ◆rZPPjYuxmQ 2018/08/13(月)04:44 ID:nyffuRFH(1) AAS
バグという記事のurlよければください
再現できるか確認してみたいと思います
425: 2018/08/13(月)05:27 ID:h8PoyRSx(2/2) AAS
抽象的なこと書かれても誰もどうすることもできんぞ
自分で解決しろとしか
426: 2018/08/13(月)08:56 ID:Z2oDd47O(1) AAS
Startの綴りが間違ってるとかそんなんだったら笑う
427: 2018/08/13(月)11:48 ID:de0S85/j(1) AAS
俺は親オブジェクト指定してなくてローカル座標のつもりがワールド座標になってたりその逆だったりならたまにある。
428
(1): 2018/08/13(月)12:58 ID:SGRWJO+v(1) AAS
・unityで、コンビニで買えるプリペイドで購入する方法ありますか?
・DynamicBone ですが、フリー版で似た機能を使えるプラグインとかありますか?
429: 2018/08/13(月)16:08 ID:CIIJAnZJ(1) AAS
ありますん
430: 2018/08/15(水)14:53 ID:e1D8QaXW(1) AAS
>>428
外部リンク:panora.tokyo
431: 2018/08/16(木)08:17 ID:Rx2cVzvB(1/2) AAS
2000x2000とかの大きなterrainだと、遠くの山が描写されず、近づくと表示されて気持ち悪いんですが、描写される距離を設定で変えたりできますか?
木や草を描写する距離などはterrainの設定から出来るんですが、terrainそのものの描写する距離を変える設定が見つかりません
432: 2018/08/16(木)09:49 ID:37AyipWF(1/3) AAS
テレインのインスペクターの、far、miniだったか?の値を変える。
433: 2018/08/16(木)09:49 ID:37AyipWF(2/3) AAS
farが遠くが、どこまで見えるかの値。
434
(1): 2018/08/16(木)15:57 ID:Rx2cVzvB(2/2) AAS
テレインのインスペクターって、インスペクター上の歯車マーク(terrain settings)のところですよね?
そのfarがないんですよね
unityのバージョンは20182.2f1です
435: 2018/08/16(木)19:22 ID:37AyipWF(3/3) AAS
>>434
カメラのインスペクターだった。
436
(2): 2018/08/17(金)18:04 ID:/P5tUkj4(1) AAS
剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて
437: 弟子 ◆rZPPjYuxmQ 2018/08/17(金)20:11 ID:ni8AyJER(1) AAS
出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?
438: 2018/08/17(金)21:06 ID:jjg/SVIP(1/2) AAS
コライダーって出したり引っ込めたりするもんなのか?
439: 2018/08/17(金)21:13 ID:53TbFepx(1) AAS
コライダを消せばいいやん。(false)
440
(1): 436 2018/08/17(金)22:51 ID:Cl208u38(1/2) AAS
プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour {

void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
省3
441
(2): 436 2018/08/17(金)22:52 ID:Cl208u38(2/2) AAS
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます

public GameObject AtariHantei;
void Update()
{

//アタック
省6
442: 2018/08/17(金)23:27 ID:jjg/SVIP(2/2) AAS
詳しくはわからんけど根本的にやり方間違ってそうな気がするな
443
(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:11 ID:cxAelueQ(1/2) AAS
>>440,441
とりあえず、そのスクリプトを生かしてコード書いてみました
現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします
public class AttackController : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D coll)
{
省18
444
(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:14 ID:cxAelueQ(2/2) AAS
あぁテストする際、
void Start()
{
SetOffAtariHantei();
}
に入れて最初は通過、その後クリックで当たるとした方が分かりやすかったかもしれません><
445
(1): 2018/08/18(土)03:49 ID:FXerNp9n(1/2) AAS
なんで出っぱなしになって困ってる判定を敵にあたったら消すように改修すんの?
剣を振るアニメーション終わった後にとことこ敵の前に歩いていったら攻撃があたんの?
亜空間攻撃とはなかなか見ないゲームだな

どんなゲームかわからんけど普通は一定時間後にオフにすればいい
SetActive falseで消えることはわかってるだろうから一定時間後にその処理を呼ぶようにすればいい
一定時間後に処理を走らせる方法はいろいろあるからググって
わかんなかったらまた聞いて
446: 2018/08/18(土)03:53 ID:FXerNp9n(2/2) AAS
>>444
知らなければ答えなければいい
とか言って他人を煽るんだったら正しく答えてくれません?
なんで初心者が迷うような回答をいつもするんですか?
447
(1): 2018/08/18(土)11:18 ID:CpHT33yN(1) AAS
>>441
アニメーションイベントを使うといいよ
具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ
現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う

詳しくはウェブで!!
外部リンク:gametukurikata.com
448
(1): 2018/08/18(土)11:49 ID:42eZyM7+(1/2) AAS
<<442
>>443
ありがとうございます
攻撃→コライダ出る→敵に当たる→コライダ消えるって感じなので、攻撃を空振りしたあとに
敵に当たるまでコライダ出っぱなしになるんだけど、これはどうすればいいの?

そもそもこの攻撃の当たり判定の仕方は根本的に間違ってるの?入門本三冊持ってるんだけど
どれにも攻撃の当たり判定は載ってなかったからネット検索してやってみたんだけども
省2
449
(2): 2018/08/18(土)12:18 ID:42eZyM7+(2/2) AAS
>>445
>>447

ありがとうございます、一定期間後の処理で出来るようになりました。
アニメーションイベントもわからないので調べて出来るようになろうと思う

void AtariKesu()
{
AtariHantei.SetActive(false);
省9
450: 2018/08/18(土)14:52 ID:X+sFoNwa(1) AAS
>>448
間違い。
?コライダー出す→コライダー消す
?コライダーに当たる、

??の判定は別で処理すべき。
?で当たった判定を?に渡して、途中で消す作りにすべき。
451
(1): 2018/08/18(土)17:20 ID:D8/ukjCM(1) AAS
raycastのrayって判定がけっこう曖昧になったりすることありますか?
マウスが乗ってるとこのterrainの座標を取得するのは問題なく出来てるんですが、xz座標を指定して高い位置から真下に飛ばしてヒットしたy座標を取得しようとすると取得できたり出来なかったり違った値が入ったりするんですが
少し感じたのはinfinityにするとしても発射位置を少し高くすると反応しなくなったりしてます
452
(1): 2018/08/18(土)19:25 ID:An0BPv4U(1) AAS
>>449
アニメーションEventは一回わかると結構簡単だ
public void AtariKesu()のスクリプトをつける
アニメーションのEventにAtariKesuを入れるとそのコマに来たら呼び出してくれる
453: 2018/08/18(土)23:30 ID:47mEmEPe(1) AAS
>>451
曖昧になったと感じたことはない。
私は、な。
1-
あと 549 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s