[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart9 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
687
(3): 名前は開発中のものです。 [] 2023/02/26(日) 19:11:55.29 ID:PPXQyhF8(1) AAS
var before= Quaternion.AngleAxis(0.1370561f, new Vector3(0.12f, 0.06f, -0.98f));
before.ToAngleAxis(out var beforeAngle, out var beforeAxis);
var after = Quaternion.AngleAxis(beforeAngle * 0.99f, beforeAxis);
after.ToAngleAxis(out var afterAngle, out var afterAxis);

Debug.Log($"before:{beforeAngle} : after:{afterAngle}");

before:0.1370561 : after:0.1370561
角度を1%ずつ小さくする処理を作りたいんですが、これってなんでbeforeとafterで同じ値が返ってくるんでしょうか?
689
(1): 名前は開発中のものです。 [さげ] 2023/02/26(日) 22:24:57.96 ID:SHuATit6(2/2) AAS
>>687
お前面白い
優勝
697
(1): 名前は開発中のものです。 [] 2023/02/28(火) 11:40:14.02 ID:kwozJVo5(1/3) AAS
>>687 これってやっぱり手順が間違ってるの?
700: 名前は開発中のものです。 [] 2023/02/28(火) 14:48:30.16 ID:kwozJVo5(2/3) AAS
>>699
ごめんあんまり上手く文章を書けてなかった

やりたいのは「あるQuaternionから回転量が1%少ないQuaternionを作ること」で、
そのQuaternionを毎フレームTransformに与えることで
例えばベイブレードが時間とともに徐々に回転力が落ちるような表現をしたい

でも >>687 のコードだと回転量がある値(0.1370561f)から小さくならないから、どこが間違っているのか知りたい

質問を投稿してからもっと試してみたんだけど、
Quaternion.AngleAxis(0.1370561f, new Vector3(0.12f, 0.06f, -0.98f)).ToAngleAxis(var out beforeAngle, var out _);
Quaternion.AngleAxis(0.1370561f * 0.99f, new Vector3(0.12f, 0.06f, -0.98f)).ToAngleAxis(var out afterAngle, var out _);
Debug.Log($"{beforeAngle} == {afterAngle}");
で差が発生しない

ToAngleAxisでfloatの切り捨てが発生しているのかもしれない?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.041s