[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart1 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart1 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
539: 名前は開発中のものです。 [] 2020/07/20(月) 16:02:09 ID:hNMBd3gW >>521 コンピュータが数学の関数をどのように計算して値を返しているのか、考えたこともありませんでした。 調べてみたところ、三角関数についてはマクローリン展開された式を第何項かまで計算しているようです。 (三角関数のマクローリン展開は https://ja.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0#%E7%B4%9A%E6%95%B0%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9A%E7%BE%A9 ) また、三角関数の引数は時間ではなく角度です。 時間を引数にすると、時間の経過によって返り値が変化するというだけです。 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/539
544: 名前は開発中のものです。 [] 2020/07/20(月) 17:58:01 ID:hNMBd3gW >>421 です。解決しましたので報告します。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class BoxMove : MonoBehaviour { //ハンドルの GameObject を指定させる public GameObject Handle; //ハンドルの角度と回転軸 private float HandleAngle; private Vector3 HandleAxis; void Update() { //ハンドルの角度と回転軸を取得 Handle.transform.localRotation.ToAngleAxis(out HandleAngle, out HandleAxis); //偶数周目では回転軸の向きが反転するので、それを検知して角度を修正する if(HandleAxis.x < 0) { HandleAngle = 360 - HandleAngle; } //ハンドルの角度に応じて箱を移動させる this.transform.localPosition = new Vector3(0, 0, HandleAngle); } } http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/544
545: 名前は開発中のものです。 [] 2020/07/20(月) 17:58:30 ID:hNMBd3gW >>544 続き Debug.Log で HandleAngle と HandleAxis を同時に表示させたら気付きました。 ハンドルを回転させていくと、360°を越えるときに ... HandleAngle = 358, HandleAxis = (1, 0, 0) HandleAngle = 359, HandleAxis = (1, 0, 0) HandleAngle = 359, HandleAxis = (-1, 0, 0) HandleAngle = 358, HandleAxis = (-1, 0, 0) ... のように、HandleAxis の向きが反転していました。なので、HandleAxis が反転したとき(HandleAxis.x が負のとき)は逆回転になっていると解釈して、回転角度は360から HandleAngle を引いたものとしました。 これで所望の挙動が得られました。皆さんのご参考になれば幸いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/545
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s