Как назначить разные префабы разным изображениям?
прямо сейчас у меня есть все мои префабы, загружаемые друг на друга, но как мне получить их, чтобы каждый префаб загружался только один раз поверх одного изображения, чтобы у каждого изображения был свой префаб?
Я изменил пример кода (углы рамки) для загрузки в свой собственный префаб и использовал словарь для сопряжения префабов с изображениями из базы данных, но при запуске программы он устанавливает все префабы в одном месте, а не Помещая один префраб на каждое изображение, он помещает все префабы на каждое изображение - вот код, который я использовал:
public GameObject obj1, obj2, obj3, obj4;
Dictionary<int, GameObject> imagePrefabPairs;
public AugmentedImage Image;
void Start()
{
instantiateDictionary();
}
// TODO: make initialisation dynamic, to match the size of the db.
public void instantiateDictionary()
{
imagePrefabPairs = new Dictionary<int, GameObject>
{
{ 0, obj1 },
{ 1, obj2 },
{ 2, obj3 },
{ 3, obj4 }
};
}
public void Update()
{
if (Image == null || Image.TrackingState != TrackingState.Tracking)
{
obj1.SetActive(false);
obj2.SetActive(false);
obj3.SetActive(false);
obj4.SetActive(false);
return;
}
Pose _centerPose = Image.CenterPose;
imagePrefabPairs[Image.DatabaseIndex].transform.localPosition = _centerPose.position;
imagePrefabPairs[Image.DatabaseIndex].transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
imagePrefabPairs[Image.DatabaseIndex].SetActive(true);
}
Я полагаю, что мне нужен какой-то оператор if, чтобы спросить, загружен ли один префаб, а затем просто выбрать загрузку следующего и сделать так, чтобы они создавали по одному, но я не уверен, как это сделать. или если есть более прямой способ сделать это ...?