[SampleGames01のガンゲーム3(gun03)]発射台をマウスポインタの方へ向かせる処理について | Unity Forum | Tech Stadium Forum

[SampleGames01のガンゲー...
 
通知
すべてクリア

[SampleGames01のガンゲーム3(gun03)]発射台をマウスポインタの方へ向かせる処理について  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1325
17/03/2021 11:14 am  
MouseCheckScriptのGun(発射台)をマウスポインタの方を向かせる処理で
Vector3	vSrc	= mpFirePrefab.transform.localPosition;
Vector3 vDst = mvMousePoint;
mvArrow = vDst-vSrc;
mfAngX = Vector2.Angle(new Vector2(1,0),new Vector2(mvArrow.z,mvArrow.y)); // View RightSide to LeftSide
if(mvArrow.y>0){ mfAngX*= -1; }
mfAngY = Vector2.Angle(new Vector2(0,1),new Vector2(mvArrow.x,mvArrow.z)); // View Top to Bottom
if(mvArrow.x<0){ mfAngY*= -1; }
if(mvArrow.y>0){ mfAngX*= -1;}
の部分が何時間考えてもしっくりこなく、困っています。
 
もし、マウスカーソルがゲーム画面の右上にある場合、
mvArrowは原点から(x,y,z)=(正、正、正)のベクトルとなり、
mfAngXも正の値になると思います。
この時、mvArrow.yは正なので、mfAngX*= -1;の処理に入ると思いますが、
そうすると、
mpFirePrefab.transform.localEulerAngles = new Vector3(mfAngX,mfAngY,0);
でGun(発射台)の角度が(負、正、0)となり左を向いてしまうのではと考えてわからなくなっております。
上記の考えのどこの部分で間違ってしまっているのでしょうか?

引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1296
17/03/2021 11:15 am  

角度の認識が間違っているかもしれません。
実際にGunオブジェクトのRotationを動かしてみるとわかりますが、Rotation.xをプラスにすると下を向き、Rotation.xをマイナスにすると上を向きます。
次に、Rotation.yをプラスにすると右を向き、Rotation.yをマイナスにすると左を向きます。
右上を向くためには(上、右、正面)を向かないといけないため、(負、正、0)にしないといけないわけですね。


返信引用
共有:
タイトルとURLをコピーしました