■ 使用環境
Windows10
Unity 2019.4.22f
VisualStudio2017
■ 内容
ターゲット(キャラ)を注視点にカメラを回転させる処理を書いている中で
何かキー等(今回はパッドのR3)を押した時にカメラが向いている方(前方)に
キャラを向かせたい処理を実装しようとしているのですが上手くいかず
教えて頂きたく。
■ コード
>> このスクリプトを Main Camera にアタッチして使用しています
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ※一部省略※ public class CameraScript : MonoBehaviour { private GameObject m_Chara; private bool inputPadL = false; private bool inputPadR = false; private bool inputPadR3 = false; void Start() { m_Chara = GameObject.Find("Chara"); } // Update void Update() { inputPadL = Input.GetButton("Pad_L"); inputPadR = Input.GetButton("Pad_R"); inputPadR3 = Input.GetButton("Pad_R3"); } void LateUpdate() { // キャラを注視点にカメラの回転操作 if (inputPadL){ transform.RotateAround(m_Chara.transform.position, Vector3.up, -1.0f); }else if(inputPadR){ transform.RotateAround(m_Chara.transform.position, Vector3.up, 1.0f); } // カメラの角度をターゲットの方向に向かせる if(inputPadR3){ transform.LookAt(m_Chara.transform.forward, Vector3.up); } } }
上記処理だとカメラを自由回転させて例えばキャラを横(左右)から見ている状態でRを押すとキャラがカメラに対して
背を向ける状態になります。
ただ、m_Chara.transform.forwardをそのまま使っているので当たり前なんですがカメラ全ての角度が反映され
例えばX軸に値が入っていてカメラが斜めから見ている状態だとキャラも少し傾いて表示されます。
単純にm_Chara.transform.forward.yのみ使えば解決するかと思ったのですが
var vector = new Vector3(0.0f, m_CharaCamera.transform.forward.y, 0.0f); this.transform.LookAt(vector, Vector3.up);
この方法だと上手くいきませんでした。
これを解決したいのですが方法がわからず詰まっています。
宜しくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/06 08:36
2021/07/06 14:28