/// <summary> /// Set the texture on the reference image. /// </summary> /// <param name="library">The <see cref="XRReferenceImageLibrary"/> being extended.</param> /// <param name="index">The reference image index to modify.</param> /// <param name="texture">The texture to set.</param> /// <param name="keepTexture">Whether to store a strong reference to the texture. If <c>true</c>, /// the texture will be available in the Player. Otherwise, <c>XRReferenceImage.texture</c> will be set to <c>null</c>.</param> /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="library"/> is <c>null</c>.</exception> /// <exception cref="System.IndexOutOfRangeException">Thrown if <paramref name="index"/> is not between 0 and <paramref name="library"/><c>.count - 1</c>.</exception> public static void SetTexture(this XRReferenceImageLibrary library, int index, Texture2D texture, bool keepTexture) { ValidateAndThrow(library, index); var referenceImage = library.m_Images[index]; referenceImage.m_SerializedTextureGuid = SerializableGuidUtil.Create(GetGuidForTexture(texture)); referenceImage.m_Texture = keepTexture ? texture : null; library.m_Images[index] = referenceImage; }
/// <summary> /// Creates an empty <c>XRReferenceImage<c/> and adds it to the library. The new /// reference image is inserted at the end of the list of reference images. /// </summary> /// <param name="library">The <see cref="XRReferenceImageLibrary"/> being extended.</param> /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="library"/> is <c>null</c>.</exception> public static void Add(this XRReferenceImageLibrary library) { if (library == null) { throw new ArgumentNullException("library"); } library.m_Images.Add(new XRReferenceImage { m_SerializedGuid = SerializableGuidUtil.Create(Guid.NewGuid()) }); }