実現したいこと
Unityでゲーム制作をしており、敵がプレイヤーを攻撃する際、プレイヤーの視点を敵にゆっくり向ける動作を作成したいと思っています。
<大まかな流れ>
1.敵の視界にプレイヤーが入る
2.敵がプレイヤーを追いかける
3.敵の攻撃範囲に入った
4.プレイヤーを敵の方向にゆっくり向かせる
発生している問題・分からないこと
上記「4.」を実現するため、まずは敵を向くために必要な角度を求めたいのですが、「Vector3.Angle」だと(0度~180度)の範囲で、負数が図れずにうまく敵の向きに焦点が合いません。(角度は常に右回りで加算される。)
なお、まずは敵とプレイヤーの高さは一定として実装してますが、ゆくゆくは垂直方向も実装していきたいです。
該当のソースコード
C#
1 private CinemachineVirtualCamera camera; 2 private CinemachinePOV cameraPOV; 3 private GameObject Player; 4 private GameObject Enemy; 5 6 …略 7 8 var aim = Enemy.transform.position - Player.transform.position; // 敵への向きベクトル計算 9 var angle = Vector3.Angle(aim, Player.transform.forward); //常に正の値 10 cameraPOV.m_HorizontalAxis.Value += angle; // cinemachineの水平方向に値を加算 11
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
様々なWebサイトを閲覧して試しましたが、負数の算出方法がうまく求められずにいます。
また、そもそもこの手の攻撃演出において、実装方法が異なる場合はご指摘いただけますと幸いです。
補足
特になし
回答1件
あなたの回答
tips
プレビュー