[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
41(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 20:01:23.35 ID:6zyx93de(3/4) AAS
Lerp勘違い理解君か
初心者スレが魔境過ぎて中級者の俺には付いてけない
42: 名前は開発中のものです。 [sage] 2020/01/13(月) 20:15:44.52 ID:QiViT9Gr(8/12) AAS
質問スレなんで、質問に対する解決策の提案が出来なければ、誰にも感謝されないよ。
仮に、提案が間違っていても問題ない。一緒に考えてくれることがとてもありがたい。
教えてくれて本当にありがとう。
43(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 21:07:35.13 ID:auL79zSW(4/4) AAS
物知り顔でドヤってる>>2121(5): 名前は開発中のものです。 [] 2020/01/13(月) 11:46:21.42 ID:Rcgjsxsv(2/11) AAS
画像リンク
これ見て理解して
単純にLerpの事理解してないと思うけど、Time.deltaTime という浮動小数点を使っている以上90度にはならない
最後のprint文表示すると分かるけど永遠と89.xxxxxと表示される
インスペクタは省略表示だからそれに惑わされないように
それから同じオブジェクトで複数軸の回転を行うと当然ながら「Quaternion.Euler(0, 90, 0)」では取れないのは分かるよね?
があまりにも愚かだったから突っ込んだだけで感謝とかそういうのは別に求めてない
……というかてめえには一言足りとも語りかけちゃいないのになんでお前がいちいち答えるんだよ、構ってちゃんかよ
44: 名前は開発中のものです。 [] 2020/01/13(月) 21:09:46.43 ID:Rcgjsxsv(9/11) AAS
>>41
自称中級者なのになんで初心者スレきたの?
寂しいの?
書かないと死ぬ病気なの?
構ってほしいのかな?
なら雑談スレいけやぼけ
45(1): 名前は開発中のものです。 [] 2020/01/13(月) 21:11:21.23 ID:Rcgjsxsv(10/11) AAS
>>43
だから糖衣構文君は雑談スレで勘違いして暴れていいよ
ほんと動かないコード書いて恥ずかしくないのかね
46(2): 名前は開発中のものです。 [sage] 2020/01/13(月) 21:32:16.53 ID:QiViT9Gr(9/12) AAS
質問いいかな?
マリオ64+初代トゥームレイダーみたいな3Dアクション作ってるんだけど、
スマホ画面のバーチャルボタンでの二つボタン同時押しがきつい。
例えば、Bダッシュジャンプ(※B押しながらAでジャンプ)とかが出来ない。
そこで物理コントローラでの操作はそのままで、例えばスマホ画面の
バーチャルコントローラだけ、Bボタンを "離す入力" を遅延させることは出来ないかな?
例えばスマホではBボタンを離しても、0.5秒は押したままで判定されて、その隙にAボタンを押すみたいな。
スクリプト内では以下でコントローラの入力を取ってる。
UnityEngine.InputSystem.Controls.ButtonControl
自分が思いつくのは拡張メソッドとか?
スマホ判定したら、特定のボタンの wasReleasedThisFrame が来たら、何とかして遅延実行させるとか?
47(1): 名前は開発中のものです。 [] 2020/01/13(月) 21:46:07.74 ID:Rcgjsxsv(11/11) AAS
>>46
さーせん自分インプットシステムようわからんので
ここは自称中級者君と糖衣構文君が動くコード書いて説明してれることを祈る
48: 名前は開発中のものです。 [sage] 2020/01/13(月) 22:06:33.65 ID:QiViT9Gr(10/12) AAS
>>47
いえいえ、いつもありがとう。
スクリプトでは例えば以下のように書いてるけど(※例えばYボタン)
if (yButton.wasReleasedThisFrame) {
// 処理
}
物理コントローラー接続時とスクリプトを変えたくないとしたら、
yButton.wasReleasedThisFrame の前に処理をインターセプト出来て、
本来の wasReleasedThisFrame が来たら 10フレ遅らせて wasReleasedThisFrame を発火させるとか。
なら、UnityEngine.InputSystem.Controls.ButtonControl を継承した自作クラスを作るとか?
そんな入力イベントをバッファ出来る自作ボタンコントロールクラスとか出来るのかな?
49: 名前は開発中のものです。 [sage] 2020/01/13(月) 22:39:53.81 ID:QiViT9Gr(11/12) AAS
とりあえず進捗
以下のようなクラスの継承では動かなかった。
public class BufferButtonControl : ButtonControl {
// 処理を書く予定だった
}
無理やりキャストして ButtonControl 型の変数に突っ込もうとしたが、Unity で実行時エラーが出た。
yButton = (BufferButtonControl ) Gamepad.current.yButton;
しかし拡張メソッドは動いた。
public static bool WasReleasedThisFrame(this ButtonControl self) {
Debug.Log("Hack!");
return self.wasReleasedThisFrame;
}
あとはこの中にスマホで物理コントローラ接続無しなら、10フレ程度バッファする処理を書けば…
って、どう書くんだろう?
50(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 22:40:12.07 ID:yBWGUThF(2/3) AAS
そんな処理より、操作変えた方がいいよ。
ボタン二つを管理するのかな?と思ったけどそうじゃなくて遅延させるのはちょっと…
どうしてもやりたいなら、タッチマネージャーを頭から作るのが必要かと。
51: 名前は開発中のものです。 [sage] 2020/01/13(月) 22:42:52.88 ID:6zyx93de(4/4) AAS
ここまでの内容をまとめると
怒涛の連レスするID:RcgjsxsvはID:QiViT9Grと同一人物で
前スレで何か悔しいことがあってたまらないから自分で質問して自分で解答して
感謝されてる素晴らしい僕を見せつけたいとそんな感じか
どれだけ承認欲求拗らせるとこうなるんだろう
52(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 23:13:16.61 ID:QiViT9Gr(12/12) AAS
>>50
アドバイスありがとう。
タッチマネージャーを自作が良さげでいいのかな。
うーん、もともと ”このゲームは必ず物理コントローラを接続して下さいキリッ!” っていこうとしてたけど、
流石にそんな物理コントローラ用意するコアな人達は1%もいないと思い、スマホ画面上にボタン表示して自分で
動作テストしたけど、当然とても操作が難しかった。
でも、自分的にはスマホ的なタッチ操作はまだ考えてなくて、あくまでスーパーファミコン的な操作でやりたいと思ってる。
で、ボタンを離す動作の遅延処理を思いついたという流れ。
上に書いたように拡張メソッド自体は動くので、何とかバッファ処理出来ないかなと…
スマホ画面でBダッシュジャンプを実装したいなあ…
53(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 23:43:09.48 ID:yBWGUThF(3/3) AAS
指がaボタンの位置にきたらジャンプでいいのでは?
?b押しっぱなしからスライドa領域
?a領域タッチ
54(1): 名前は開発中のものです。 [sage] 2020/01/13(月) 23:54:48.93 ID:wx103lZP(1) AAS
>>52
実装はとてつもなく簡単だがお前には絶対に理解出来ないから諦めろ
生成したInputActionに登録するコールバックでフラグ立ててコンテキスト見ながらUpdate内でポーリングとか言われても分かんないだろ?
これが超基本的なInputSystemの使い方なのに生の値取って処理しようとしてるレガシーなお前にはまず不可能なんだよ
55: 名前は開発中のものです。 [sage] 2020/01/14(火) 00:08:41.92 ID:TgWjNKx2(1/4) AAS
入力バッファの為のInputSystemでバッファ取る為にサブクラス作るって最高に馬鹿げてるけど、Upフラグキャプチャして0.5秒後に消すだけのことが自分で分からないならぶっちゃけ何言っても伝わらないと思う
IQは20違うと話が通じないって言われてるんだよのび太君
56(1): 名前は開発中のものです。 [] 2020/01/14(火) 01:54:57.74 ID:s+JbO9cF(1/3) AAS
>>45
いいからお前はSelectMany挟んだ時の動作イメージ書けよ。逃げてんじゃねーぞ
57: 名前は開発中のものです。 [sage] 2020/01/14(火) 07:50:43.51 ID:Sje8YI9U(1/3) AAS
>>53
なるほど、でも "ボタン" で実装するのが要件なんだ。
>>54 55
とりあえず、ありがとう。調べてみるわ。
58(2): 名前は開発中のものです。 [sage] 2020/01/14(火) 07:58:18.64 ID:d/PuqDsL(1/5) AAS
>>56
(自分が先に書いて見せればそれで論破が成立するのにそれをしない……つまりはあれか、自身の知らない答えを煽って引き出そうとする伝統のあれか……)
59(2): 名前は開発中のものです。 [] 2020/01/14(火) 10:53:05.74 ID:s+JbO9cF(2/3) AAS
>>58
こっちはIEnumが連続するって話で終わってんだが
LINQ勘違い君はWhere限定の最適化方法や関係ないLINQ使用箇所のIL上げてほらループネストしてないだろドヤっ!とかWhereは要素そのもの返すだとか
間違いや勘違いだらけのこと並べ立てて俺はLINQよく知ってるって勘違いしまくってるんだけどよくアレで他からツッコミ入らないのか不思議でならないんだが
60(1): 名前は開発中のものです。 [sage] 2020/01/14(火) 11:03:25.28 ID:Sje8YI9U(2/3) AAS
Bダッシュジャンプの挙動は UniRX の Observable で実装出来た。
InputSystem.Controls.ButtonControl や、InputSystem.OnScreen.OnScreenButton 辺りで
色と試したけど、スクリプトの中でボタンを押したことにしても、希望の動作にならかかったので、
UniRX で、ダッシュボダンを離しても nフレ後までは最高速ジャンプ出来るように実装した。
あとアドバイスの内容で、ああこの人は "物理ゲームパッド用のゲーム" を開発したことない人だなと分かるようになった。
UnityEngine.InputSystem.Gamepad とかのことね。
でも出来たんでサンキュー!
61: 名前は開発中のものです。 [sage] 2020/01/14(火) 11:42:59.26 ID:Sje8YI9U(3/3) AAS
というか、Unity初心者の自分が言うのもなんだが UniRx 便利だわ。
実務の C#案件では LINQ は自然につかうが、Rx まではあんま必要なかった。
まあ、Unity でも LINQ で処理する必要性があったら使おうと思うけどね。
それとも、Unity では UniRx はOKで、LINQ はダメなの? どして?
62(1): 名前は開発中のものです。 [sage] 2020/01/14(火) 12:56:12.43 ID:GDy6IxVO(1/4) AAS
>>59がLINQに詳しいみたいだから聞いてみたらどうだろう
IEnumとか想像上のIF?持ち出してるあたりあんまり分かってないみたいだけど
63(1): 名前は開発中のものです。 [sage] 2020/01/14(火) 13:02:53.66 ID:FSjVa/a9(1/4) AAS
>>60 おはようございます出来たそうでよかったです、もう必要ないかもしれないけど
ちょっと自分も>>46の要件をやってみました頭の体操になりましたので参考までに
よければ、こんな画面でuiのbuttonコンポーネントに画像付けてみまして
画像リンク
Aボタンの遅延を実装してみました
画像リンク
プログラムではボタンを離してから2秒後まで押下中と判断しています
単純に押下の判定を2つ、ボタン押しているか?フラグが立っているかです
で離した後Invokeでフラグを解除しています
RaycastAllとか勉強になりましたよ
64(1): 名前は開発中のものです。 [] 2020/01/14(火) 13:04:43.50 ID:A84mTdZ6(1/6) AAS
>>62
めんどくさいから省略してるぐらいわかんだろほんとアホなの?
65(1): 名前は開発中のものです。 [sage] 2020/01/14(火) 13:04:50.47 ID:d/PuqDsL(2/5) AAS
>>59
ふーん
で、ソースは?
まさか脳内ソースとか言わないよな
上下前次1-新書関写板覧索設栞歴
あと 937 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s