This interface defines common functionality for all of the social sharing payloads which NatShare provides. As such, all payloads implement this interface.
/// <summary>/// Add text to the payload./// </summary>/// <param name="text">Plain text to add.</param>void AddText (string text);
Some payloads support adding plain text to be shared.
/// <summary>/// Add an image to the payload from a pixel buffer./// The pixel buffer MUST have an RGBA8888 pixel layout./// </summary>/// <param name="pixelBuffer">Pixel buffer containing image to add.</param>/// <param name="width">Image width.</param>/// <param name="height">Image height.</param>void AddImage<T> (T pixelBuffer, int width, int height) where T : struct;
This method can be used to add images using raw pixel data. It accepts any array that can be interpreted as a pixel buffer with an
RGBA8888 pixel layout. It can be used like so:
// Start a webcam texturevar webcamTexture = new WebCamTexture(...);webcamTexture.Play();// Add the current frame to the payloadvar payload = ...;payload.AddImage(webCamTexture.GetPixels32(), webCamTexture.width, webCamTexture.height);
There is an overload which accepts a
Texture2D, provided for convenience:
/// <summary>/// Add an image to the payload./// </summary>/// <param name="image">Image to add.</param>void AddImage (Texture2D image);
This method can be used to add images to be shared.
/// <summary>/// Add a media file to the payload./// </summary>/// <param name="path">Path to media file to add.</param>void AddMedia (string path);
It is often desirable to share media files which live on the file system. This method allows for doing so. You can share audio files, image files, video files, and more with this method.
/// <summary>/// Commit the payload and return success value./// </summary>Task<bool> Commit ();
Once you are done adding items to the payload, you can use this method to trigger the sharing action associated with the payload. The sharing action is asynchronous, and returns a
bool indicating whether the items were successfully shared. It can be used like so:
// Create a payload and add itemsvar payload = new ...;...// Share and check whether sharing succeededvar success = await payload.Commit();