nxg_stepup
@nxg_stepup

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Unity ARcoreで認識した画像の位置から少しずらしてオブジェクトを表示させる方法を教えてください

Q&A

Closed

解決したいこと

UnityでARcoreを使ってAndroidのARアプリを作っています。
ARcoreで認識した画像の位置から少しずらした位置にオブジェクトを表示させたいです。
下記のソースコードをつけ足して実行してみたところ、オブジェクトの位置が変わらないどころか、追加する前まで表示されていたオブジェクトまでもが表示されなくなりました。
特にエラーが出ているわけでもなく原因がわかりません。

追加したソースコード

        Vector3 pos = imageMarkerTransform.transform.position;
        pos.y += 1.0f;
        imageMarkerTransform.transform.position = pos;

関数全体のソースコード

    private void ActivateARObject(ARTrackedImage trackedImage)
    {
        //認識した画像マーカーの名前を使って辞書から任意のオブジェクトを引っ張り出す
        var arObject = _markerNameAndPrefabDictionary[trackedImage.referenceImage.name];
        var imageMarkerTransform = trackedImage.transform;

        //位置合わせ
        Vector3 pos = imageMarkerTransform.transform.position;
        pos.y += 1.0f;
        imageMarkerTransform.transform.position = pos;

        var markerFrontRotation = imageMarkerTransform.rotation * Quaternion.Euler(90f, 0f, 0f);
        arObject.transform.SetPositionAndRotation(imageMarkerTransform.transform.position, markerFrontRotation);
        arObject.transform.SetParent(imageMarkerTransform);

        //トラッキングの状態に応じてARオブジェクトの表示を切り替え
        arObject.SetActive(trackedImage.trackingState == TrackingState.Tracking);
    }

わかる方がいらっしゃいましたら、解決方法を教えてください。

0

1Answer

変位が大きすぎて、画面外に飛んでしまった可能性はないでしょうか?
既に、数値を変えて試されていたのでしたら申し訳ありません。

0Like

Comments

  1. @nxg_stepup

    Questioner

    数値を小さくしてみたら無事にオブジェクトを確認できました。
    ありがとうございました。

Your answer might help someone💌