Я пишу заявку в единстве. В будущем мне нужно иметь возможность извлекать изображения из Интернета и использовать их в качестве трекеров, поэтому в настоящее время я пишу код, который добавляет изображения из списка в AugmentedImageDatabase во время выполнения.
Однако каждый раз, когда я добавляю изображение, метод AugmentedImageDatabase.AddImage()
возвращает -1. Это означает, что при добавлении изображения произошла ошибка, но не указано, что это за ошибка. Я проверил документы API, но они также не добавляют никакой информации.
Почему мой код не добавляет изображения в AugmentedImageDatabase?
public class DataBaseGenerator : MonoBehaviour {
[SerializeField]
ARCoreSessionConfig session;
[SerializeField]
AugmentedImageDatabase imageDatabase;
[SerializeField]
List<Texture2D> image;
private int ErrorIndex = 0;
// What happens on the first frame
void Start ()
{
CreateDatabase();
}
private void CreateDatabase()
{
int i = 0;
foreach (Texture2D texture in image)
{
string name = "Tracker";
Texture2D rgbTexture = new Texture2D(texture.width, texture.height, TextureFormat.RGBA32, false);
rgbTexture.SetPixels(texture.GetPixels());
rgbTexture.Apply();
ErrorIndex = imageDatabase.AddImage(name, rgbTexture, 0);
GameUtility.ShowToastMessage(ErrorIndex.ToString());
Debug.Log(name + ": " + ErrorIndex);
i++;
}
session.AugmentedImageDatabase = imageDatabase;
}
}
Все изображения в списке были сохранены как спрайты.
Все переменные с тегом [SerializeField]
определены в редакторе единиц.