質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

802閲覧

マーカーごとに異なる画像、プレハブを表示したい。

pofinpouty

総合スコア20

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/08/31 03:36

表題について同じような質問をされている方がおりましたので、BAになっていたhttps://www.youtube.com/watch?v=I9j3MD7gS5Y
の動画を参考に作成してみたのですが、
keynotfoundexception:と表示されてしまいます。

下記がそのコードなのですが

c#

1 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.XR; 6using UnityEngine.XR.ARFoundation; 7 8[RequireComponent(typeof(ARTrackedImageManager))] 9public class ImageTracking : MonoBehaviour 10{ 11 12 [SerializeField] 13 private GameObject[] placeablePrefabs; 14 15 private Dictionary<string, GameObject> spawnedPrefabs = new Dictionary<string, GameObject>(); 16 private ARTrackedImageManager trackedImageManager; 17 18 private void Awake() 19 { 20 trackedImageManager = FindObjectOfType<ARTrackedImageManager>(); 21 22 foreach (GameObject prefab in placeablePrefabs) 23 { 24 GameObject newPrefab = Instantiate(prefab, Vector3.zero, Quaternion.identity); 25 newPrefab.name = prefab.name; 26 newPrefab.SetActive(false); 27 spawnedPrefabs.Add(prefab.name, newPrefab); 28 } 29 } 30 31 private void OnEnable() 32 { 33 trackedImageManager.trackedImagesChanged += ImageChanged; 34 } 35 36 private void OnDisable() 37 { 38 trackedImageManager.trackedImagesChanged -= ImageChanged; 39 } 40 41 private void ImageChanged(ARTrackedImagesChangedEventArgs eventArgs) 42 { 43 foreach (ARTrackedImage trackedImage in eventArgs.added) 44 { 45 UpdateImage(trackedImage); 46 } 47 foreach (ARTrackedImage trackedImage in eventArgs.updated) 48 { 49 UpdateImage(trackedImage); 50 } 51 foreach (ARTrackedImage trackedImage in eventArgs.removed) 52 { 53 spawnedPrefabs[trackedImage.name].SetActive(false); 54 } 55 } 56 57 private void UpdateImage(ARTrackedImage trackedImage) 58 { 59 string name = trackedImage.referenceImage.name; 60 Vector3 position = trackedImage.transform.position; 61 62 //ここでKeyNotFoundException: The given key was not present in the dictionary. 63 //「指定されたキーが辞書に存在しませんでした」と表示される 64 GameObject prefab = spawnedPrefabs[name]; 65 prefab.transform.position = position; 66 prefab.SetActive(true); 67 68 foreach (GameObject go in spawnedPrefabs.Values) 69 { 70 if (go.name != name) 71 { 72 go.SetActive(false); 73 } 74 } 75 } 76} 77 78

表示したい画像の名前が取れてないのかと思いログで確認したのですが、ちゃんと取れていました。
動画の方との違いとしましては下記の2点です。
①マーカーを置いている箇所を動画の方はAssets〉Models?にしているが、私はAR foundationのフレームワークを使用しているのでAssets〉Scenes〉ImageTracking〉Prefabsにしている

②表示したい画像を動画の方は
Assets〉prefab?に置いているが私は
Assets〉Scenes〉ImageTracking〉Imagesに置いている
表示したい画像とRefarenceimagelibraryは同じ階層にあるので間違ってはいないと思っているのですが、何か違っているところがありましたら教えていただきたいです。

開発環境
・Unity2020.3.11f1
・Xcode12.5
・iPhoneSE(OS14.6)
・ARFoundation 4.2.0-pre.9

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問