[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
18(2): 2020/01/13(月)08:38 ID:QiViT9Gr(1/12) AAS
Quaternion が難しすぎて滑らか回転の独自実装は無理だった…
ので Update() の中で Lerp を使うことにしたけど、
Lerp の終了判定はどうするの?
※speedは適当
// Z軸正方向
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, 0), speed * Time.deltaTime);
// Z軸負方向
省15
20: 2020/01/13(月)11:04 ID:QiViT9Gr(2/12) AAS
>>19
終了条件は Quaternion Lerp (Quaternion from, Quaternion to, float t);
from が to に達した時が終了条件。
Z軸正・負方向、X軸正・負方向の4方向で頼む。
初心者サイトではたいてい "解説された軸の条件" だけでは動くが、実践ではまるで使えない。
単純な話だよ、"プレイヤーを東西南北の方向に滑らかに正対させる"
そして、正対する動作が完了してから、次の動作を開始させたい。
省1
25: 2020/01/13(月)12:15 ID:QiViT9Gr(3/12) AAS
>>21
素晴らしい! 教えてもらった方法で自分がやりたいことが完全に出来た!
4個処理を書いてたのは、プレイヤーがブロックのどの方向に接触したかで、
処理を分岐させる為で、同時に処理するわけではなかった。申し訳ない。
いや、マジでありがとう。本当に理解している人から教えてもらえて、すごく助かった。
32: 2020/01/13(月)16:37 ID:QiViT9Gr(4/12) AAS
そもそもの質問がターゲットを追うじゃなくて、
"プレイヤーを東西南北の方向に滑らかに正対させる"
だよ。
で、>>21 の方法で求める処理が実装出来た、サンキュー!
33: 2020/01/13(月)17:04 ID:QiViT9Gr(5/12) AAS
>>26
は質問の意味が理解できなかったんだね。スマンスマン。
"プレイヤーを東西南北の方向に滑らかに正対させる"
なので、Lerp が正解だ、RotateTowards では希望の動作にならない。
しかし皆ありがとう。理解するのにとても助けになった。
37: 2020/01/13(月)18:42 ID:QiViT9Gr(6/12) AAS
>>36
ん? それでは動かないぞ。今試した。
>>21 の方法なら動いたけどな、確かに>>21の言う通り浮動小数点を理解出来てないっぽいね。
自分は Unity初心者で、初心者スレで訪ねてるんだから、>>21 のように、
わざわざコードを自分で書いて、動くか試してから教えてくれる人に本当に感謝したい。
まあ、間違って動かないコードもそれなりに参考になるからサンキュー!
39: 2020/01/13(月)18:59 ID:QiViT9Gr(7/12) AAS
まず >>26 で ID:auL79zSW が
"現在位置からターゲットに向ける用途的にはLerpでなくTowards使うんだぜ" と言ってるのが、>>15 からの質問の文脈を無視してるね。
で、>>27 で ID:Rcgjsxsv が
”ターゲットあるならLookat の方が全然いいんだぜ” と言っているのは >>26 でターゲットと出てきたからだ。人の話を聞いてそれに反応してるんだよね。
でも、ドヤ顔して教えてくれて全然かまわないんだ。Unity初心者でも参考になる情報とそうではない情報の区別はつくから。
というか、自分の質問で争いになって申し訳ない気持ちだ。皆さんどうもありがとう。
42: 2020/01/13(月)20:15 ID:QiViT9Gr(8/12) AAS
質問スレなんで、質問に対する解決策の提案が出来なければ、誰にも感謝されないよ。
仮に、提案が間違っていても問題ない。一緒に考えてくれることがとてもありがたい。
教えてくれて本当にありがとう。
46(2): 2020/01/13(月)21:32 ID:QiViT9Gr(9/12) AAS
質問いいかな?
マリオ64+初代トゥームレイダーみたいな3Dアクション作ってるんだけど、
スマホ画面のバーチャルボタンでの二つボタン同時押しがきつい。
例えば、Bダッシュジャンプ(※B押しながらAでジャンプ)とかが出来ない。
そこで物理コントローラでの操作はそのままで、例えばスマホ画面の
バーチャルコントローラだけ、Bボタンを "離す入力" を遅延させることは出来ないかな?
例えばスマホではBボタンを離しても、0.5秒は押したままで判定されて、その隙にAボタンを押すみたいな。
省4
48: 2020/01/13(月)22:06 ID:QiViT9Gr(10/12) AAS
>>47
いえいえ、いつもありがとう。
スクリプトでは例えば以下のように書いてるけど(※例えばYボタン)
if (yButton.wasReleasedThisFrame) {
// 処理
}
物理コントローラー接続時とスクリプトを変えたくないとしたら、
省4
49: 2020/01/13(月)22:39 ID:QiViT9Gr(11/12) AAS
とりあえず進捗
以下のようなクラスの継承では動かなかった。
public class BufferButtonControl : ButtonControl {
// 処理を書く予定だった
}
無理やりキャストして ButtonControl 型の変数に突っ込もうとしたが、Unity で実行時エラーが出た。
yButton = (BufferButtonControl ) Gamepad.current.yButton;
省7
52(1): 2020/01/13(月)23:13 ID:QiViT9Gr(12/12) AAS
>>50
アドバイスありがとう。
タッチマネージャーを自作が良さげでいいのかな。
うーん、もともと ”このゲームは必ず物理コントローラを接続して下さいキリッ!” っていこうとしてたけど、
流石にそんな物理コントローラ用意するコアな人達は1%もいないと思い、スマホ画面上にボタン表示して自分で
動作テストしたけど、当然とても操作が難しかった。
でも、自分的にはスマホ的なタッチ操作はまだ考えてなくて、あくまでスーパーファミコン的な操作でやりたいと思ってる。
省3
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.732s*