cannot convert from ‘UnityEngine.Vector3’ to ‘UnityEngine.Transform’が出たときの対処。

プログラミング・ゲーム

こういう処理を書いていた。

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型変数に代入すれば問題なかったはずなんだがなあ・・・

コメント

タイトルとURLをコピーしました