質問: new Vector3(Mathf.Cos(angleDir), Mathf.Sin(angleDir), 0.0f); // 自身の向きに移動 transform.position += dir * speed * Time.deltaTime; } ``` 実行してみたところ、x軸のプラス方向に進んでいきました。なぜそのような動きになるんですか? そして、初期の向きをy軸のプラス方向にしたい場合どうすればよいでしょうか? 御教授願いますm(__)m
回答: なぜ+x方向に動くかというと、 xy平面上で0度の向きを大抵の人は+x方向だと認識し (sin cosの例のぐるぐる回す図を思い浮かべてもらえば) このコードの作者が画像が回転してない状態の向きを0度と設定したからです +y方向を画像の回転してない状態の向きとしたいならば90度回せばいいので cos(θ + 90°) = -sin(θ) sin(θ + 90°) = cos(θ) より ``` Vector3 dir = new Vector3(- Mathf.Sin(angleDir), Mathf.Cos(angleDir), 0.0f) ```