[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart8 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
453: 2022/10/26(水)19:53 ID:mhQKrFwX(6/6) AAS
>>452
タイマーを使う方法がある
ジャンプ時にタイマーをセットして接地判定を許すタイミングで接地判定可能フラグを
オンにする
454: 2022/10/27(木)00:20 ID:sgaEp23q(1) AAS
>>450
これで、switch文も解決しましたー!とか言ってきたら流石に白目なる
455: 2022/10/27(木)09:14 ID:gBSo1FaA(1/6) AAS
isHitToGround内で下降中のみレイを飛ばすように対策しましたが、2回目の押下でカウントが3になっちゃいますね
3に戻す部分はリセット関数しかないので、底が悪さしているのは確実なのですが

もうわからないです
外部リンク:ideone.com
456: 2022/10/27(木)09:50 ID:8Wq4UzIH(1) AAS
Mathf.Sign(rb.velocity.y) == 1


Mathf.Sign(rb.velocity.y) == -1

じゃないの?
457
(2): 2022/10/27(木)10:10 ID:n9F1DQle(1/3) AAS
適当に書いてみた

とりあえず状態外に見えないようにして
使えるかどうかだけ確認するのが楽だし
衝突は2DならcontactFillterでいい

外部リンク:ideone.com

俺は本職でもないただの無職だが
このくらいは自前で書けるように勉強しないと
ミニゲームすらままならないゾ
458
(1): 2022/10/27(木)10:27 ID:Mb1soW9V(1) AAS
まぁバグは本人が意識出来てる動作と実際の計算が異なる事で発生する
人為的なミスなので死角からハリセンが飛んでくるのに近い
外部リンク:ideone.com

velocityはプロットすると分かるが収束するまで結構暴れるからOnCollisionEnter2D一択だろうね
459: 2022/10/27(木)11:09 ID:El3K99WE(1) AAS
>>457
>このくらいは自前で書けるように勉強しないと

正にこれだと思うわ
460: 2022/10/27(木)11:25 ID:Ccb5Bjo8(1) AAS
もうわからないです
と言ってるからここが終着点なんだろう
461: 2022/10/27(木)11:34 ID:bQ7WgbrX(1/2) AAS
どうでもいいけど要件整理って大事だと思う
462
(1): 弟子 2022/10/27(木)11:39 ID:gXi2+Oha(1/5) AAS
久しぶりだな

まずさシンプルにいこう、逆に考えてみるか
void Update()
{
moveFunction();
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(rb.transform.up * 5.0f ,ForceMode2D.Impulse);
jumpingFunction();
//print(max_jump_count);
//print(isHitToGround());
}
}
private void moveFunction()
{
//操作方向
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
//左右移動
rb.velocity = new Vector2(x * 10, rb.velocity.y);
}
画像リンク


これでスペース押すと、ジャンプ繰り返すんだけど
3回目で押せなくすればいいかなと
463: 2022/10/27(木)11:39 ID:1clBHIjw(1) AAS
デバッガで追えばjumpingFunctionが2にしたのを同一フレームで
jumpingCountResetが3に戻してるのが見える
つまりisHitToGroundが期待した通りに動作してない
464: 2022/10/27(木)11:49 ID:gXi2+Oha(2/5) AAS
>>462
ちなみに、jumpingFunctionはコメントにしてある。

でこのあとは、3回目という判定と、床に着いたらクリアをつくればいいかと
465: 弟子 2022/10/27(木)11:57 ID:gXi2+Oha(3/5) AAS
まぁこんなんで悩むのは時間の無駄だから答え

moveFunction();
if (Input.GetKeyDown(KeyCode.Space))
{
if (jumpCount > 2) return;
rb.AddForce(rb.transform.up * 5.0f ,ForceMode2D.Impulse);
jumpCount++;
//jumpingFunction();
//print(max_jump_count);
//print(isHitToGround());
}
}
private void moveFunction()
{
//操作方向
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
//左右移動
rb.velocity = new Vector2(x * 10, rb.velocity.y);
}
private void OnCollisionEnter2D(Collision2D collision)
{
jumpCount = 0;
}
466
(2): 2022/10/27(木)12:06 ID:BXIf+hd4(1) AAS
>>445
その結末がこれなんだぜ
467
(1): 2022/10/27(木)14:19 ID:n9F1DQle(2/3) AAS
>>466
雑談スレのおっさんは巣に帰れっていってんじゃん
はっきり言って気持ちわりーよ
468: 2022/10/27(木)15:10 ID:NjCyUsXa(1/3) AAS
>>467
は?イミフ、結果として事実いったまでだが
469: 2022/10/27(木)15:22 ID:NjCyUsXa(2/3) AAS
なぜかIDリセットされたわ
>466
まさかマジでわからないで終わるかって素直な感想な
470
(1): 2022/10/27(木)15:22 ID:+6jYo91a(1) AAS
結果?過程だぞ
スレは常に変化する
まだまだ続いていくしこれからどうなるかは君達次第だ
471: 2022/10/27(木)15:30 ID:NjCyUsXa(3/3) AAS
>>470
他のまともな質問者や解答者にとってはそうだろう
以前の質問スレに戻ることを祈るよ
472: 2022/10/27(木)17:36 ID:gBSo1FaA(2/6) AAS
>>457
勉強中です
学習曲線あるんで、コツコツやります
473
(1): 2022/10/27(木)18:11 ID:gBSo1FaA(3/6) AAS
>>458
どうも コピーして使わせてもらいます
どこが原因だったんでしょうか
474
(1): 2022/10/27(木)19:12 ID:gBSo1FaA(4/6) AAS
画像リンク

unityの基本について知りたいのですが、スクリプトがグレーアウトして変更できないのはどうしてなんでしょうか
475
(1): 2022/10/27(木)19:26 ID:CHZE3YWL(1/3) AAS
>>474
それを変える意味ってなんだろう?
476
(1): 2022/10/27(木)19:38 ID:gXi2+Oha(4/5) AAS
ナゼ質問に質問で返すかなぁ
初心者イジメ好きなの?
477: 2022/10/27(木)19:47 ID:CHZE3YWL(2/3) AAS
>>476
まじで謎なんだが
例えば「スクリプト内を編集したい」なら「その欄は関係なくてプロジェクトウィンドウから
スクリプトファイルを開いたら編集できるよ」と答えられるし
例えば「スクリプトファイルのファイル名を変更したい」なら
「プロジェクトウィンドウ上でファイルの名前を変更した上で、
ファイルを開いてクラス名を変更する必要がある」と答えれる
478
(2): 2022/10/27(木)19:55 ID:gBSo1FaA(5/6) AAS
>>475
他のスクリプトに差し替えたいことがあるからです
479: 2022/10/27(木)19:55 ID:bQ7WgbrX(2/2) AAS
そういう時の答えって全世界共通でドンピシャなものがあるんだよな

そういうものです
480: 2022/10/27(木)19:58 ID:CHZE3YWL(3/3) AAS
>>478
差し替えたいなら別のスクリプトを作るしかないんじゃね
481: 2022/10/27(木)20:03 ID:n9F1DQle(3/3) AAS
それデバッグモードなら差し替えれるよ確か
482
(3): 2022/10/27(木)20:03 ID:3+ePgOaN(1/2) AAS
>>473
まずisHitToGround()が上昇=falseでないとjumpingCountResetでコケる
3→2→3が無限ループして進まない
falseにするとセットでswitch文のisHitToGroundと矛盾するので外しておく

第二にcountがfloatだとfloatの1f==1f...2f==2f...etc は成立する保証がなくなる
1fと言っているのは1.000001などの近似値である可能性があるので==演算子による比較が出来ない。
即ちfloatのswitch文は正常に動作する保証がないので運が良ければ動くかもしれないし悪ければダメかもしれない

結局こう直せば動く事は動く
外部リンク:ideone.com

最初はチュートリアルなどで実際に動作するスクリプトを変更して
どこを変更したら動かなくなるのか1つ変更しては実行して
変更と実行を1対1で原因と結果を理解する必要がある

あととにかく確認を確実にする そもそも事実関係を確認せずに予想で動いて動かないとか
酷い目にあってるのだから、確認出来ている事と確認出来てない事をちゃんと分類して
何が分かっていて何が分かってないのか把握するように努めよう
分からない事が駄目なのではなく、放置したり誤魔化したりするのが問題なのであって
そういう誠実さを自分にも相手にも持った方がいいかもね
1-
あと 520 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s