Unity++blog.

UnityやC#とかについて学習したことを書いてます

エラー:型'UnityEngine.Vector3'を'UnityEngine.Quaternion'に暗黙的に変換できません

あるオブジェクトの角度を他のオブジェクトの角度に適用しようとすると型'UnityEngine.Vector3'を'UnityEngine.Quaternion'に暗黙的に変換できませんとエラーがでたので調べてたら、Vector3からQuaternionへ(その逆も)変換できたので書いておきます。

 

Varを使ってみるとわかり易かったです。

例:カメラアングルを取得する

 

var _cameraAngle = _mainCamera.transform.rotation;

こうすると_cameraAngleの型は暗黙的にQuaternionに変換されます。

 

var _cameraAngle = _mainCamera.transform.rotation.eulerAngles;

とすると_cameraAngleの型は暗黙的にVector3に変換されました。

 

 

なので、下記のようにQuaternionである_mainCamera.transform.rotationを_mainCamera.transform.rotation.eulerAnglesとしてVector3へ変換して↓

var _cameraAngle = _mainCamera.transform.rotation.eulerAngles;

 

適用先のオブジェクトのtransform.eulerAnglesへ入れて上げたらできました。

_obj.transform.eulerAngles= _cameraAngle;

 

参考にさせて頂いたサイト様です

kan-kikuchi.hatenablog.com

 

上記サイト参考;

//Quaternion Vector3

Vector3 vec3=qua.eulerAngles;

 

//Vector3 Quaternion

Quaternion.Euler qua = Quaternion.Euler(vec3);