こういう処理を書いていた。
public GameObject Player;
private void FixedUpdate()
{
Vector3 tmpTransform = Player.transform.position;
UpadateCameraLook(tmpTransform);
}
public void UpadateCameraLook(Transform player){
var cameraPos = player.position;
}
カメラでプレイヤーを追いかける処理だ。
UpdateCameraLookという自作関数に、プレイヤーオブジェクトのトランスフォーム情報を代入させる。
だが、エラーが出た。
cannot convert from ‘UnityEngine.Vector3’ to ‘UnityEngine.Transform’
だそうだ。
ここで、ちょっとコードを書き換えてこうしてみた。
public GameObject Player;
private void FixedUpdate()
{
UpadateCameraLook(Player.transform);
}
public void UpadateCameraLook(Transform player){
var cameraPos = player.position;
}
具体的には、
Vector3 tmpTransform = Player.transform.position; UpadateCameraLook(tmpTransform);
という風にVector3を介していたのを、
UpadateCameraLook(Player.transform);
という形に直結した。
これでエラーが消えた。
私はUnityのプロでも専門家でも無いので理由は知らない。
Transformを持ってきて使うときは、一旦適当なVector3型変数に代入すれば問題なかったはずなんだがなあ・・・
コメント