diff --git a/com.unity.renderstreaming/CHANGELOG.md b/com.unity.renderstreaming/CHANGELOG.md
index 0c8f713df..67678c977 100644
--- a/com.unity.renderstreaming/CHANGELOG.md
+++ b/com.unity.renderstreaming/CHANGELOG.md
@@ -4,6 +4,20 @@ All notable changes to com.unity.renderstreaming package will be documented in t
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [3.1.0-exp.9] - 2024-12-13
+
+### Changed
+- deps: use com.unity.webrtc@3.0.0-pre.8
+- doc: improve the API documentation of VideoCodecInfo
+- doc: improve the API documentation of AudioCodecInfo
+- doc: improve the API documentation of VideoStreamSender
+- doc: improve the API documentation of VideoStreamReceiver
+- doc: improve the API documentation of InputSender
+- doc: improve the API documentation of InputReceiver
+- doc: improve the API documentation of AudioStreamSender
+- doc: improve the API documentation of AudioStreamReceiver
+- doc: improve the API documentation of SignalingManager
+
## [3.1.0-exp.8] - 2023-11-30
### Changed
diff --git a/com.unity.renderstreaming/Runtime/Scripts/AudioCodecInfo.cs b/com.unity.renderstreaming/Runtime/Scripts/AudioCodecInfo.cs
index 680b249e9..662d3b8ca 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/AudioCodecInfo.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/AudioCodecInfo.cs
@@ -5,7 +5,7 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// Represents information about an audio codec, including its MIME type, SDP format parameters, channel count, and sample rate.
///
[Serializable]
public class AudioCodecInfo : IEquatable
@@ -20,27 +20,27 @@ public class AudioCodecInfo : IEquatable
private int m_SampleRate;
///
- ///
+ /// Gets the name of the audio codec.
///
public string name { get { return m_MimeType.GetCodecName(); } }
///
- ///
+ /// Gets the MIME type of the audio codec.
///
public string mimeType { get { return m_MimeType; } }
///
- ///
+ /// Gets the number of audio channels.
///
public int channelCount { get { return m_ChannelCount; } }
///
- ///
+ /// Gets the sample rate of the audio.
///
public int sampleRate { get { return m_SampleRate; } }
///
- ///
+ /// Gets the SDP format parameters line.
///
public string sdpFmtpLine { get { return m_SdpFmtpLine; } }
@@ -50,10 +50,17 @@ static internal AudioCodecInfo Create(RTCRtpCodecCapability caps)
}
///
- ///
+ /// Determines whether the specified is equal to the current .
///
- ///
- ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// The to compare with the current .
+ /// true if the specified is equal to the current ; otherwise, false.
public bool Equals(AudioCodecInfo other)
{
if (other == null)
@@ -65,30 +72,30 @@ public bool Equals(AudioCodecInfo other)
}
///
- ///
+ /// Determines whether the specified object is equal to the current .
///
- ///
- ///
+ /// The object to compare with the current .
+ /// true if the specified object is equal to the current ; otherwise, false.
public override bool Equals(object obj)
{
return obj is AudioCodecInfo ? Equals((AudioCodecInfo)obj) : base.Equals(obj);
}
///
- ///
+ /// Returns a hash code for the .
///
- ///
+ /// A hash code for the current .
public override int GetHashCode()
{
return new { mimeType, sdpFmtpLine, channelCount, sampleRate }.GetHashCode();
}
///
- ///
+ /// Determines whether two specified instances of are equal.
///
- ///
- ///
- ///
+ /// The first to compare.
+ /// The second to compare.
+ /// true if the two instances are equal; otherwise, false.
public static bool operator ==(AudioCodecInfo left, AudioCodecInfo right)
{
if (ReferenceEquals(left, null))
@@ -102,11 +109,11 @@ public override int GetHashCode()
}
///
- ///
+ /// Determines whether two specified instances of are not equal.
///
- ///
- ///
- ///
+ /// The first to compare.
+ /// The second to compare.
+ /// true if the two instances are not equal; otherwise, false.
public static bool operator !=(AudioCodecInfo left, AudioCodecInfo right)
{
return !(left == right);
diff --git a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamReceiver.cs b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamReceiver.cs
index be0f45c3d..2e80fd430 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamReceiver.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamReceiver.cs
@@ -7,8 +7,9 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// AudioStreamReceiver is a component that receives audio streams and plays them through a specified AudioSource.
///
+ ///
[AddComponentMenu("Render Streaming/Audio Stream Receiver")]
public class AudioStreamReceiver : StreamReceiverBase
{
@@ -16,13 +17,13 @@ public class AudioStreamReceiver : StreamReceiverBase
internal const string TargetAudioSourcePropertyName = nameof(m_TargetAudioSource);
///
- ///
+ /// Delegate for handling updates to the received audio source.
///
- ///
+ /// The updated AudioSource.
public delegate void OnUpdateReceiveAudioSourceHandler(AudioSource source);
///
- ///
+ /// Event triggered when the received audio source is updated.
///
public OnUpdateReceiveAudioSourceHandler OnUpdateReceiveAudioSource;
@@ -33,7 +34,7 @@ public class AudioStreamReceiver : StreamReceiverBase
private AudioCodecInfo m_Codec;
///
- ///
+ /// Gets the codec information for the audio stream.
///
public AudioCodecInfo codec
{
@@ -41,7 +42,7 @@ public AudioCodecInfo codec
}
///
- ///
+ /// Gets or sets the target AudioSource where the received audio will be played.
///
public AudioSource targetAudioSource
{
@@ -50,9 +51,15 @@ public AudioSource targetAudioSource
}
///
- ///
+ /// Gets the available audio codecs.
///
- ///
+ ///
+ /// var codecs = AudioStreamReceiver.GetAvailableCodecs();
+ /// foreach (var codec in codecs)
+ /// Debug.Log(codec.name);
+ ///
+ ///
+ /// A list of available codecs.
static public IEnumerable GetAvailableCodecs()
{
var excludeCodecMimeType = new[] { "audio/CN", "audio/telephone-event" };
@@ -61,9 +68,18 @@ static public IEnumerable GetAvailableCodecs()
}
///
- ///
+ /// Sets the codec for the audio stream.
///
- ///
+ ///
+ ///
+ /// x.mimeType.Contains("opus"));
+ /// audioStreamReceiver.SetCodec(codec);
+ /// ]]>
+ ///
+ ///
+ /// The codec information to set.
+ /// Thrown if the transceiver is streaming or the track has ended.
public void SetCodec(AudioCodecInfo codec)
{
m_Codec = codec;
diff --git a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs
index 918fef410..59882ab84 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs
@@ -9,31 +9,33 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// Specifies the source of the audio stream.
///
public enum AudioStreamSource
{
///
- ///
+ /// Use the AudioListener component as the audio source.
///
AudioListener = 0,
///
- ///
+ /// Use the AudioSource component as the audio source.
///
AudioSource = 1,
///
- ///
+ /// Use the microphone as the audio source.
///
Microphone = 2,
///
- ///
+ /// Use only the API to provide audio data.
///
APIOnly = 3
}
///
- /// Attach AudioListerner or AudioSource
+ /// Component for sending audio streams.
///
+ ///
+ ///
[AddComponentMenu("Render Streaming/Audio Stream Sender")]
public class AudioStreamSender : StreamSenderBase
{
@@ -80,7 +82,7 @@ public class AudioStreamSender : StreamSenderBase
private int m_frequency = 48000;
///
- ///
+ /// Gets or sets the source of the audio stream.
///
public AudioStreamSource source
{
@@ -100,7 +102,7 @@ public AudioStreamSource source
}
///
- ///
+ /// Gets the codec used for the audio stream.
///
public AudioCodecInfo codec
{
@@ -108,7 +110,7 @@ public AudioCodecInfo codec
}
///
- ///
+ /// Gets the minimum bitrate for the audio stream.
///
public uint minBitrate
{
@@ -116,7 +118,7 @@ public uint minBitrate
}
///
- ///
+ /// Gets the maximum bitrate for the audio stream.
///
public uint maxBitrate
{
@@ -124,7 +126,7 @@ public uint maxBitrate
}
///
- /// Play or not sending to remote audio in local.
+ /// Gets or sets whether to play the audio locally while sending it to the remote peer.
///
public bool loopback
{
@@ -149,7 +151,7 @@ public bool loopback
}
///
- /// The index of Microphone.devices.
+ /// Gets or sets the index of the microphone device used as the audio source.
///
public int sourceDeviceIndex
{
@@ -169,7 +171,7 @@ public int sourceDeviceIndex
}
///
- ///
+ /// Gets or sets the AudioSource component used as the audio source.
///
public AudioSource audioSource
{
@@ -189,7 +191,7 @@ public AudioSource audioSource
}
///
- ///
+ /// Gets or sets the AudioListener component used as the audio source.
///
public AudioListener audioListener
{
@@ -209,9 +211,15 @@ public AudioListener audioListener
}
///
- ///
+ /// Gets the available video codecs.
///
- ///
+ ///
+ /// var codecs = VideoStreamSender.GetAvailableCodecs();
+ /// foreach (var codec in codecs)
+ /// Debug.Log(codec.name);
+ ///
+ ///
+ /// A list of available codecs.
static public IEnumerable GetAvailableCodecs()
{
var excludeCodecMimeType = new[] { "audio/CN", "audio/telephone-event" };
@@ -220,10 +228,16 @@ static public IEnumerable GetAvailableCodecs()
}
///
- ///
+ /// Sets the bitrate range for the audio stream.
///
- ///
- ///
+ ///
+ ///
+ /// audioStreamSender.SetBitrate(128, 256);
+ ///
+ ///
+ /// The minimum bitrate in kbps. Must be greater than zero.
+ /// The maximum bitrate in kbps. Must be greater than or equal to the minimum bitrate.
+ /// Thrown when the maximum bitrate is less than the minimum bitrate.
public void SetBitrate(uint minBitrate, uint maxBitrate)
{
if (minBitrate > maxBitrate)
@@ -239,9 +253,17 @@ public void SetBitrate(uint minBitrate, uint maxBitrate)
}
///
- ///
+ /// Sets the codec for the audio stream.
///
- ///
+ ///
+ ///
+ /// x.mimeType.Contains("opus"));
+ /// audioStreamSender.SetCodec(codec);
+ /// ]]>
+ ///
+ ///
+ /// The codec information to set.
public void SetCodec(AudioCodecInfo codec)
{
m_Codec = codec;
@@ -300,7 +322,6 @@ internal override WaitForCreateTrack CreateTrack()
return m_sourceImpl.CreateTrack();
}
-
AudioStreamSourceImpl CreateAudioStreamSource()
{
switch (m_Source)
@@ -317,7 +338,6 @@ AudioStreamSourceImpl CreateAudioStreamSource()
throw new InvalidOperationException("");
}
-
private protected override void OnEnable()
{
OnAudioConfigurationChanged(false);
@@ -331,6 +351,28 @@ private protected override void OnDisable()
base.OnDisable();
}
+ ///
+ /// Sets the audio data for the stream.
+ ///
+ ///
+ ///
+ /// (bufferSize, Allocator.Temp);
+ /// for (int i = 0; i < bufferSize; i++)
+ /// {
+ /// audioData[i] = Mathf.Sin(2 * Mathf.PI * frequency * i / sampleRate);
+ /// }
+ /// audioStreamSender.SetData(audioData.AsReadOnly(), 1);
+ /// audioData.Dispose();
+ /// ]]>
+ ///
+ ///
+ /// The native array containing the audio data.
+ /// The number of audio channels.
+ /// Thrown when the source property is not set to AudioStreamSource.APIOnly.
public void SetData(NativeArray.ReadOnly nativeArray, int channels)
{
if (m_Source != AudioStreamSource.APIOnly)
diff --git a/com.unity.renderstreaming/Runtime/Scripts/InputReceiver.cs b/com.unity.renderstreaming/Runtime/Scripts/InputReceiver.cs
index ea48ee529..a95d35957 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/InputReceiver.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/InputReceiver.cs
@@ -24,12 +24,12 @@ public class InputReceiver : InputChannelReceiverBase
internal const string DefaultActionMapPropertyName = nameof(m_DefaultActionMap);
///
- ///
+ /// Event triggered when a device changes.
///
public override event Action onDeviceChange;
///
- ///
+ /// Gets or sets the input action asset associated with the player.
///
public InputActionAsset actions
{
@@ -66,22 +66,22 @@ public InputActionAsset actions
}
///
- ///
+ /// Indicates whether the input is currently active.
///
public bool inputIsActive => m_InputActive;
///
- ///
+ /// Gets or sets the default action map.
///
public InputUser user => m_InputUser;
///
- ///
+ /// Gets or sets the action events associated with the player.
///
public ReadOnlyArray devices => m_InputUser.pairedDevices;
///
- ///
+ /// Gets or sets the current action map.
///
public InputActionMap currentActionMap
{
@@ -95,7 +95,7 @@ public InputActionMap currentActionMap
}
///
- ///
+ /// Gets or sets the default action map.
///
public string defaultActionMap
{
@@ -104,7 +104,7 @@ public string defaultActionMap
}
///
- ///
+ /// Gets or sets the action events associated with the player.
///
public ReadOnlyArray actionEvents
{
@@ -121,9 +121,6 @@ public ReadOnlyArray actionEvents
}
}
- ///
- ///
- ///
protected virtual void OnEnable()
{
m_Enabled = true;
@@ -135,9 +132,6 @@ protected virtual void OnEnable()
ActivateInput();
}
- ///
- ///
- ///
protected virtual void OnDisable()
{
m_Enabled = false;
@@ -149,8 +143,15 @@ protected virtual void OnDisable()
}
///
- ///
+ /// Activates input for the player.
///
+ ///
+ ///
+ ///
+ ///
+ ///
public void ActivateInput()
{
m_InputActive = true;
@@ -164,8 +165,15 @@ public void ActivateInput()
}
///
- ///
+ /// Deactivates input for the player.
///
+ ///
+ ///
+ ///
+ ///
+ ///
public void DeactivateInput()
{
m_CurrentActionMap?.Disable();
@@ -174,9 +182,17 @@ public void DeactivateInput()
}
///
- ///
+ /// Switches the current action map to the one with the given name or ID.
///
- ///
+ /// The name or ID of the action map to switch to.
+ ///
+ ///
+ ///
+ ///
+ ///
+
public void SwitchCurrentActionMap(string mapNameOrId)
{
// Must be enabled.
@@ -205,17 +221,33 @@ public void SwitchCurrentActionMap(string mapNameOrId)
}
///
- ///
+ /// Performs pairing with the specified input device.
///
- ///
+ ///
+ ///
+ /// ();
+ /// playerInput.PerformPairingWithDevice(device);
+ /// ]]>
+ ///
+ ///
+ /// The input device to pair with.
public void PerformPairingWithDevice(InputDevice device)
{
m_InputUser = InputUser.PerformPairingWithDevice(device, m_InputUser);
}
///
- ///
+ /// Performs pairing with all local devices.
///
+ ///
+ ///
+ /// ();
+ /// playerInput.PerformPairingWithAllLocalDevices();
+ /// ]]>
+ ///
+ ///
public void PerformPairingWithAllLocalDevices()
{
foreach (var device in Inputs.devices.Where(_ => !_.remote))
@@ -225,9 +257,17 @@ public void PerformPairingWithAllLocalDevices()
}
///
- ///
+ /// Unpairs the input user with the given device.
///
- ///
+ ///
+ ///
+ /// ();
+ /// playerInput.UnpairDevices(device);
+ /// ]]>
+ ///
+ ///
+ /// The device to unpair.
public void UnpairDevices(InputDevice device)
{
if (!m_InputUser.valid)
@@ -236,9 +276,23 @@ public void UnpairDevices(InputDevice device)
}
///
- ///
+ /// Sets the RTCDataChannel for the sender.
///
- ///
+ ///
+ ///
+ /// ();
+ /// var channel = channels.FirstOrDefault(_ => !_.IsLocal && !_.IsConnected);
+ /// channel?.SetChannel(data);
+ /// }
+ /// ]]>
+ ///
+ ///
+ /// The connection ID.
+ /// The RTCDataChannel to set.
public override void SetChannel(string connectionId, RTCDataChannel channel)
{
if (channel == null)
@@ -257,28 +311,39 @@ public override void SetChannel(string connectionId, RTCDataChannel channel)
}
///
- ///
+ /// Calculates the input region based on the given texture size and region in world coordinates.
///
- /// Texture Size.
- /// Region of the texture in world coordinate system.
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// The region of the texture in world coordinate system.
+ /// The size of the texture.
public void CalculateInputRegion(Vector2Int size, Rect region)
{
receiver.CalculateInputRegion(new Rect(Vector2.zero, size), region);
}
///
- ///
+ /// Enables or disables input position correction.
///
- ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// True to enable input position correction, false to disable.
public void SetEnableInputPositionCorrection(bool enabled)
{
receiver.EnableInputPositionCorrection = enabled;
}
-
- ///
- ///
- ///
protected virtual void OnDestroy()
{
Dispose();
diff --git a/com.unity.renderstreaming/Runtime/Scripts/InputSender.cs b/com.unity.renderstreaming/Runtime/Scripts/InputSender.cs
index c2cdf6e64..5d1a49f29 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/InputSender.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/InputSender.cs
@@ -6,8 +6,9 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// The InputSender component is responsible for sending input data over a data channel in a Unity Render Streaming context.
///
+ ///
[AddComponentMenu("Render Streaming/Input Sender")]
public class InputSender : DataChannelBase
{
@@ -16,9 +17,23 @@ public class InputSender : DataChannelBase
private IDisposable suscriberDisposer;
///
- ///
+ /// Sets the RTCDataChannel for the sender.
///
- ///
+ ///
+ ///
+ /// ();
+ /// var channel = channels.FirstOrDefault(_ => !_.IsLocal && !_.IsConnected);
+ /// channel?.SetChannel(data);
+ /// }
+ /// ]]>
+ ///
+ ///
+ /// The connection ID.
+ /// The RTCDataChannel to set.
public override void SetChannel(string connectionId, RTCDataChannel channel)
{
if (channel == null)
@@ -37,19 +52,34 @@ public override void SetChannel(string connectionId, RTCDataChannel channel)
}
///
- ///
+ /// Calculates the input region based on the given texture size and region in world coordinates.
///
- /// Texture Size.
- /// Region of the texture in world coordinate system.
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// The region of the texture in world coordinate system.
+ /// The size of the texture.
public void CalculateInputResion(Rect region, Vector2Int size)
{
sender.CalculateInputRegion(region, new Rect(Vector2.zero, size));
}
///
- ///
+ /// Enables or disables input position correction.
///
- ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// True to enable input position correction, false to disable.
public void EnableInputPositionCorrection(bool enabled)
{
sender.EnableInputPositionCorrection = enabled;
diff --git a/com.unity.renderstreaming/Runtime/Scripts/SignalingManager.cs b/com.unity.renderstreaming/Runtime/Scripts/SignalingManager.cs
index b9f8a22a1..fec7a5a4a 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/SignalingManager.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/SignalingManager.cs
@@ -13,6 +13,12 @@
namespace Unity.RenderStreaming
{
+ ///
+ /// Manages the signaling process for Unity RenderStreaming.
+ ///
+ ///
+ ///
+ ///
[AddComponentMenu("Render Streaming/Signaling Manager")]
public sealed class SignalingManager : MonoBehaviour
{
@@ -37,13 +43,13 @@ public sealed class SignalingManager : MonoBehaviour
private List handlers = new List();
///
- ///
+ /// Indicates whether the signaling process should automatically start when the Awake method is called.
///
[SerializeField, Tooltip("Automatically started when called Awake method.")]
public bool runOnAwake = true;
///
- ///
+ /// Indicates whether to evaluate command line arguments if launching runtime on the command line.
///
[SerializeField, Tooltip("Evaluate commandline arguments if launching runtime on the command line.")]
public bool evaluateCommandlineArguments = true;
@@ -55,7 +61,7 @@ public sealed class SignalingManager : MonoBehaviour
private bool m_running;
///
- ///
+ /// Gets a value indicating whether the signaling process is running.
///
public bool Running => m_running;
@@ -79,10 +85,20 @@ public bool useDefaultSettings
}
///
- ///
+ /// Sets the signaling settings.
///
- ///
- ///
+ ///
+ ///
+ /// var settings = new WebSocketSignalingSettings("ws://example.com", new[]
+ /// {
+ /// new IceServer (urls: new[] {"stun:stun.l.google.com:19302"})
+ /// });
+ /// signalingManager.SetSignalingSettings(settings);
+ ///
+ ///
+ /// The signaling settings.
+ /// Thrown when the signaling process has already started.
+ /// Thrown when the settings are null.
public void SetSignalingSettings(SignalingSettings settings)
{
if (m_running)
@@ -95,18 +111,33 @@ public void SetSignalingSettings(SignalingSettings settings)
}
///
- ///
+ /// Gets the signaling settings.
///
- ///
+ ///
+ ///
+ /// var settings = signalingManager.GetSignalingSettings();
+ /// if (settings is WebSocketSignalingSettings webSocketSettings)
+ /// {
+ /// Debug.Log($"WebSocket URL: {webSocketSettings.url}");
+ /// }
+ ///
+ ///
+ /// The signaling settings.
public SignalingSettings GetSignalingSettings()
{
return signalingSettings;
}
///
- ///
+ /// Adds a signaling handler.
///
- ///
+ ///
+ ///
+ /// var handler = instance.GetComponent();
+ /// signalingManager.AddSignalingHandler(handler);
+ ///
+ ///
+ /// The signaling handler to add.
public void AddSignalingHandler(SignalingHandlerBase handlerBase)
{
if (handlers.Contains(handlerBase))
@@ -124,9 +155,15 @@ public void AddSignalingHandler(SignalingHandlerBase handlerBase)
}
///
- ///
+ /// Removes a signaling handler.
///
- ///
+ ///
+ ///
+ /// var handler = instance.GetComponent();
+ /// signalingManager.RemoveSignalingHandler(handler);
+ ///
+ ///
+ /// The signaling handler to remove.
public void RemoveSignalingHandler(SignalingHandlerBase handlerBase)
{
handlers.Remove(handlerBase);
@@ -140,10 +177,15 @@ public void RemoveSignalingHandler(SignalingHandlerBase handlerBase)
}
///
- ///
+ /// Runs the signaling process.
///
- ///
- ///
+ /// The signaling instance to use. If null, a new instance will be created.
+ /// The signaling handlers to use. If null, the existing handlers will be used.
+ ///
+ ///
+ /// signalingManager.Run();
+ ///
+ ///
public void Run(
ISignaling signaling = null,
SignalingHandlerBase[] handlers = null)
@@ -152,12 +194,21 @@ public void Run(
}
///
- ///
+ /// Runs the signaling process with the specified RTC configuration.
///
- ///
- ///
- ///
- /// To use this method, Need to depend WebRTC package
+ ///
+ ///
+ /// var rtcConfig = new RTCConfiguration
+ /// {
+ /// iceServers = new[] { new RTCIceServer { urls = new[] { "stun:stun.l.google.com:19302" } } }
+ /// };
+ /// signalingManager.Run(rtcConfig);
+ ///
+ ///
+ /// The RTC configuration.
+ /// The signaling instance to use. If null, a new instance will be created.
+ /// The signaling handlers to use. If null, the existing handlers will be used.
+ /// To use this method, the WebRTC package is required.
public void Run(
RTCConfiguration conf,
ISignaling signaling = null,
@@ -178,12 +229,6 @@ bool IsValidSignalingSettingsObject(SignalingSettingsObject asset)
}
#endif
- ///
- ///
- ///
- ///
- ///
- ///
private void _Run(
RTCConfiguration? conf = null,
ISignaling signaling = null,
@@ -266,8 +311,13 @@ internal static bool EvaluateCommandlineArguments(ref SignalingSettings settings
}
///
- ///
+ /// Stops the signaling process.
///
+ ///
+ ///
+ /// signalingManager.Stop();
+ ///
+ ///
public void Stop()
{
m_instance?.Dispose();
diff --git a/com.unity.renderstreaming/Runtime/Scripts/VideoCodecInfo.cs b/com.unity.renderstreaming/Runtime/Scripts/VideoCodecInfo.cs
index ef07054dd..5f1d7cf9c 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/VideoCodecInfo.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/VideoCodecInfo.cs
@@ -6,7 +6,7 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// Represents information about a video codec, including its MIME type, SDP format parameters.
///
[Serializable]
public class VideoCodecInfo : IEquatable
@@ -21,30 +21,37 @@ public class VideoCodecInfo : IEquatable
readonly Dictionary m_parameters = new Dictionary();
///
- ///
+ /// Gets the name of the video codec.
///
public string name { get { return m_MimeType.GetCodecName(); } }
///
- ///
+ /// Gets the MIME type of the video codec.
///
public string mimeType { get { return m_MimeType; } }
///
- ///
+ /// Gets the codec implementation name.
///
public string codecImplementation { get { return parameters[KeyCodecImplementation]; } }
///
- ///
+ /// Gets the SDP format parameters line.
///
public string sdpFmtpLine { get { return m_SdpFmtpLine; } }
///
- ///
+ /// Determines whether the specified is equal to the current .
///
- ///
- ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// The to compare with the current .
+ /// True if the specified is equal to the current ; otherwise, false.
public bool Equals(VideoCodecInfo other)
{
if (other == null)
@@ -54,30 +61,31 @@ public bool Equals(VideoCodecInfo other)
}
///
- ///
+ /// Determines whether the specified object is equal to the current .
///
- ///
- ///
+ /// The object to compare with the current .
+ /// True if the specified object is equal to the current ; otherwise, false.
public override bool Equals(object obj)
{
return obj is VideoCodecInfo ? Equals((VideoCodecInfo)obj) : base.Equals(obj);
}
///
- ///
+ /// Returns a hash code for the .
+ /// The hash code is based on the MIME type and SDP format parameters line properties.
///
- ///
+ /// A hash code for the current .
public override int GetHashCode()
{
return new { mimeType, sdpFmtpLine }.GetHashCode();
}
///
- ///
+ /// Determines whether two specified instances of are equal.
///
- ///
- ///
- ///
+ /// The first to compare.
+ /// The second to compare.
+ /// True if the two instances are equal; otherwise, false.
public static bool operator ==(VideoCodecInfo left, VideoCodecInfo right)
{
if (ReferenceEquals(left, null))
@@ -91,11 +99,11 @@ public override int GetHashCode()
}
///
- ///
+ /// Determines whether two specified instances of are not equal.
///
- ///
- ///
- ///
+ /// The first to compare.
+ /// The second to compare.
+ /// True if the two instances are not equal; otherwise, false.
public static bool operator !=(VideoCodecInfo left, VideoCodecInfo right)
{
return !(left == right);
@@ -158,37 +166,37 @@ internal VideoCodecInfo(RTCRtpCodecCapability caps)
}
///
- ///
+ /// Represents the profiles for the VP9 video codec.
///
public enum VP9Profile
{
///
- ///
+ /// Profile 0.
///
Profile0 = 0,
///
- ///
+ /// Profile 1.
///
Profile1 = 1,
///
- ///
+ /// Profile 2.
///
Profile2 = 2,
///
- ///
+ /// Profile 3.
///
Profile3 = 3,
}
///
- ///
+ /// Represents information about the VP9 video codec.
///
public class VP9CodecInfo : VideoCodecInfo
{
const string KeyProfileId = "profile-id";
///
- ///
+ /// Gets the profile of the VP9 video codec.
///
public VP9Profile? profile
{
@@ -208,7 +216,7 @@ internal VP9CodecInfo(RTCRtpCodecCapability caps) : base(caps)
}
///
- ///
+ /// Represents the profiles for the H264 video codec.
///
public enum H264Profile
{
@@ -235,14 +243,14 @@ public enum H264Profile
}
///
- ///
+ /// Represents information about the H264 video codec.
///
public class H264CodecInfo : VideoCodecInfo
{
const string KeyProfileLevelId = "profile-level-id";
///
- ///
+ /// Gets the profile of the H264 video codec.
///
public H264Profile profile
{
@@ -250,7 +258,7 @@ public H264Profile profile
}
///
- ///
+ /// Gets the level of the H264 video codec.
///
public int level { get { return Convert.ToInt32(parameters[KeyProfileLevelId], 16) & 0xFF; } }
@@ -260,33 +268,33 @@ internal H264CodecInfo(RTCRtpCodecCapability caps) : base(caps)
}
///
- ///
+ /// Represents the profiles for the AV1 video codec.
///
public enum AV1Profile
{
///
- ///
+ /// Profile 0.
///
Profile0 = 0,
///
- ///
+ /// Profile 1.
///
Profile1 = 1,
///
- ///
+ /// Profile 2.
///
Profile2 = 2,
}
///
- ///
+ /// Represents information about the AV1 video codec.
///
public class AV1CodecInfo : VideoCodecInfo
{
const string KeyProfile = "profile";
///
- ///
+ /// Gets the profile of the AV1 video codec.
///
public AV1Profile profile
{
diff --git a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamReceiver.cs b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamReceiver.cs
index 033756cfe..bb49efa1a 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamReceiver.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamReceiver.cs
@@ -8,22 +8,22 @@
namespace Unity.RenderStreaming
{
///
- ///
+ /// Enum representing the video render mode.
///
public enum VideoRenderMode
{
///
- ///
+ /// Render to a RenderTexture.
///
RenderTexture,
///
- ///
+ /// API only, no rendering.
///
APIOnly,
}
///
- ///
+ /// Component for receiving video streams.
///
[AddComponentMenu("Render Streaming/Video Stream Receiver")]
public class VideoStreamReceiver : StreamReceiverBase
@@ -33,13 +33,13 @@ public class VideoStreamReceiver : StreamReceiverBase
internal const string TargetTexturePropertyName = nameof(m_TargetTexture);
///
- ///
+ /// Delegate for updating the received texture.
///
- ///
+ /// The received texture.
public delegate void OnUpdateReceiveTextureHandler(Texture receiveTexture);
///
- ///
+ /// Event triggered when the received texture is updated.
///
public OnUpdateReceiveTextureHandler OnUpdateReceiveTexture;
@@ -53,7 +53,7 @@ public class VideoStreamReceiver : StreamReceiverBase
private RenderTexture m_TargetTexture;
///
- ///
+ /// Gets the codec information for the video stream.
///
public VideoCodecInfo codec
{
@@ -61,22 +61,22 @@ public VideoCodecInfo codec
}
///
- ///
+ /// The width of the received video stream.
///
public int width => m_texture.width;
///
- ///
+ /// The height of the received video stream.
///
public int height => m_texture.height;
///
- ///
+ /// The texture of the received video stream.
///
public Texture texture => m_texture;
///
- ///
+ /// The target RenderTexture.
///
public RenderTexture targetTexture
{
@@ -90,9 +90,15 @@ public RenderTexture targetTexture
///
- ///
+ /// Gets the available video codecs.
///
- ///
+ ///
+ /// var codecs = VideoStreamSender.GetAvailableCodecs();
+ /// foreach (var codec in codecs)
+ /// Debug.Log(codec.name);
+ ///
+ ///
+ /// A list of available codecs.
public static IEnumerable GetAvailableCodecs()
{
string[] excludeCodecMimeType = { "video/red", "video/ulpfec", "video/rtx", "video/flexfec-03" };
@@ -101,9 +107,18 @@ public static IEnumerable GetAvailableCodecs()
}
///
- ///
+ /// Sets the codec for the video stream.
///
- ///
+ ///
+ ///
+ /// x.mimeType.Contains("VP9"));
+ /// videoStreamReceiver.SetCodec(codec);
+ /// ]]>
+ ///
+ ///
+ /// The codec information to set.
+ /// Thrown if the transceiver is streaming or the track has ended.
public void SetCodec(VideoCodecInfo codec)
{
m_Codec = codec;
diff --git a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs
index e9c75320c..9237cdd76 100644
--- a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs
+++ b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs
@@ -86,29 +86,29 @@ public static RTCError SetBitrate(this RTCRtpSender sender, uint? minBitrate, ui
}
///
- ///
+ /// Specifies the source of the video stream.
///
public enum VideoStreamSource
{
///
- ///
+ /// Use the camera as the video stream source.
///
Camera = 0,
///
- ///
+ /// Use the screen as the video stream source.
///
Screen = 1,
///
- ///
+ /// Use the web camera as the video stream source.
///
WebCamera = 2,
///
- ///
+ /// Use a texture as the video stream source.
///
Texture = 3
}
///
- ///
+ /// Component for sending video streams.
///
[AddComponentMenu("Render Streaming/Video Stream Sender")]
public class VideoStreamSender : StreamSenderBase
@@ -171,7 +171,7 @@ public class VideoStreamSender : StreamSenderBase
private VideoStreamSourceImpl m_sourceImpl = null;
///
- ///
+ /// Gets or sets the source of the video stream.
///
public VideoStreamSource source
{
@@ -191,7 +191,7 @@ public VideoStreamSource source
}
///
- ///
+ /// Gets or sets the camera used as the video stream source.
///
public Camera sourceCamera
{
@@ -211,7 +211,7 @@ public Camera sourceCamera
}
///
- ///
+ /// Gets or sets the texture used as the video stream source.
///
public Texture sourceTexture
{
@@ -251,7 +251,7 @@ public int sourceDeviceIndex
}
///
- ///
+ /// Gets the WebCamTexture used as the video stream source.
///
public WebCamTexture sourceWebCamTexture
{
@@ -267,7 +267,7 @@ public WebCamTexture sourceWebCamTexture
///
- ///
+ /// Gets the frame rate of the video stream.
///
public float frameRate
{
@@ -275,7 +275,7 @@ public float frameRate
}
///
- ///
+ /// Gets the minimum bitrate of the video stream.
///
public uint minBitrate
{
@@ -283,7 +283,7 @@ public uint minBitrate
}
///
- ///
+ /// Gets the maximum bitrate of the video stream.
///
public uint maxBitrate
{
@@ -291,7 +291,7 @@ public uint maxBitrate
}
///
- ///
+ /// The scale factor by which to reduce the video resolution to conserve bandwidth.
///
public float scaleResolutionDown
{
@@ -299,7 +299,7 @@ public float scaleResolutionDown
}
///
- ///
+ /// Gets or sets the width of the frame buffer used for streaming.
///
public uint width
{
@@ -311,7 +311,7 @@ public uint width
}
///
- ///
+ /// Gets or sets the height of the frame buffer used for streaming.
///
public uint height
{
@@ -323,7 +323,7 @@ public uint height
}
///
- ///
+ /// Gets the codec information for the video stream.
///
public VideoCodecInfo codec
{
@@ -331,7 +331,7 @@ public VideoCodecInfo codec
}
///
- ///
+ /// Whether request permission to use any video input sources.
///
public bool autoRequestUserAuthorization
{
@@ -340,9 +340,17 @@ public bool autoRequestUserAuthorization
}
///
- ///
+ /// Sets the codec for the video stream.
///
- ///
+ ///
+ ///
+ /// x.mimeType.Contains("VP9"));
+ /// videoStreamSender.SetCodec(codec);
+ /// ]]>
+ ///
+ ///
+ /// The codec information to set.
public void SetCodec(VideoCodecInfo codec)
{
if (isPlaying)
@@ -364,9 +372,15 @@ public void SetCodec(VideoCodecInfo codec)
}
///
- ///
+ /// Gets the available video codecs.
///
- ///
+ ///
+ /// var codecs = VideoStreamSender.GetAvailableCodecs();
+ /// foreach (var codec in codecs)
+ /// Debug.Log(codec.name);
+ ///
+ ///
+ /// A list of available codecs.
public static IEnumerable GetAvailableCodecs()
{
string[] excludeCodecMimeType = { "video/red", "video/ulpfec", "video/rtx", "video/flexfec-03" };
@@ -375,9 +389,15 @@ public static IEnumerable GetAvailableCodecs()
}
///
- ///
+ /// Sets the frame rate for the video stream.
///
- ///
+ ///
+ ///
+ /// videoStreamSender.SetFrameRate(30.0f);
+ ///
+ ///
+ /// The new frame rate. Must be greater than zero.
+ /// Thrown when the frame rate is less than or equal to zero.
public void SetFrameRate(float frameRate)
{
if (frameRate < 0)
@@ -392,9 +412,16 @@ public void SetFrameRate(float frameRate)
}
///
- ///
+ /// Sets the bitrate range for the video stream.
///
- ///
+ ///
+ ///
+ /// videoStreamSender.SetBitrate(1000, 2500);
+ ///
+ ///
+ /// The minimum bitrate in kbps. Must be greater than zero.
+ /// The maximum bitrate in kbps. Must be greater than or equal to the minimum bitrate.
+ /// Thrown when the maximum bitrate is less than the minimum bitrate.
public void SetBitrate(uint minBitrate, uint maxBitrate)
{
if (minBitrate > maxBitrate)
@@ -410,9 +437,15 @@ public void SetBitrate(uint minBitrate, uint maxBitrate)
}
///
- ///
+ /// Sets the scale factor by which to reduce the video resolution to conserve bandwidth.
///
- /// The parameter must be greater than 1.0f.
+ ///
+ ///
+ /// videoStreamSender.SetScaleResolutionDown(2.0f);
+ ///
+ ///
+ /// The scale factor by which to reduce the resolution. Must be greater than 1.0f.
+ /// Thrown when the scale factor is less than or equal to 1.0f.
public void SetScaleResolutionDown(float scaleFactor)
{
if (scaleFactor < 1.0f)
@@ -429,9 +462,14 @@ public void SetScaleResolutionDown(float scaleFactor)
}
///
- ///
+ /// Sets the size of the frame buffer used for streaming.
///
- ///
+ ///
+ ///
+ /// SetTextureSize(new Vector2Int(1920, 1080));
+ ///
+ ///
+ /// The new size of the texture as a Vector2Int.
public void SetTextureSize(Vector2Int size)
{
m_TextureSize = size;
diff --git a/com.unity.renderstreaming/package.json b/com.unity.renderstreaming/package.json
index 13a8be1e1..6c4a51828 100644
--- a/com.unity.renderstreaming/package.json
+++ b/com.unity.renderstreaming/package.json
@@ -1,11 +1,11 @@
{
"name": "com.unity.renderstreaming",
"displayName": "Unity Render Streaming",
- "version": "3.1.0-exp.8",
+ "version": "3.1.0-exp.9",
"unity": "2020.3",
"description": "This is a package for using Unity Render Streaming technology.",
"dependencies": {
- "com.unity.webrtc": "3.0.0-pre.7",
+ "com.unity.webrtc": "3.0.0-pre.8",
"com.unity.inputsystem": "1.5.1",
"com.unity.ugui": "1.0.0",
"com.unity.modules.screencapture": "1.0.0"
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt
deleted file mode 100644
index 384180a92..000000000
--- a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/
-
-Please visit their website to view the complete set of their emojis and review their licensing terms.
\ No newline at end of file
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta
deleted file mode 100644
index 0d30e6532..000000000
--- a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 381dcb09d5029d14897e55f98031fca5
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json
deleted file mode 100644
index 6c4e50bc8..000000000
--- a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json
+++ /dev/null
@@ -1,156 +0,0 @@
-{"frames": [
-
-{
- "filename": "1f60a.png",
- "frame": {"x":0,"y":0,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f60b.png",
- "frame": {"x":128,"y":0,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f60d.png",
- "frame": {"x":256,"y":0,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f60e.png",
- "frame": {"x":384,"y":0,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f600.png",
- "frame": {"x":0,"y":128,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f601.png",
- "frame": {"x":128,"y":128,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f602.png",
- "frame": {"x":256,"y":128,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f603.png",
- "frame": {"x":384,"y":128,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f604.png",
- "frame": {"x":0,"y":256,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f605.png",
- "frame": {"x":128,"y":256,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f606.png",
- "frame": {"x":256,"y":256,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f609.png",
- "frame": {"x":384,"y":256,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f618.png",
- "frame": {"x":0,"y":384,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "1f923.png",
- "frame": {"x":128,"y":384,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "263a.png",
- "frame": {"x":256,"y":384,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-},
-{
- "filename": "2639.png",
- "frame": {"x":384,"y":384,"w":128,"h":128},
- "rotated": false,
- "trimmed": false,
- "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
- "sourceSize": {"w":128,"h":128},
- "pivot": {"x":0.5,"y":0.5}
-}],
-"meta": {
- "app": "http://www.codeandweb.com/texturepacker",
- "version": "1.0",
- "image": "EmojiOne.png",
- "format": "RGBA8888",
- "size": {"w":512,"h":512},
- "scale": "1",
- "smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$"
-}
-}
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta
deleted file mode 100644
index 762cf15c9..000000000
--- a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 8f05276190cf498a8153f6cbe761d4e6
-timeCreated: 1480316860
-licenseType: Pro
-TextScriptImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png
deleted file mode 100644
index 4adb015b0..000000000
Binary files a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png and /dev/null differ
diff --git a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta b/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta
deleted file mode 100644
index c9fa1a7df..000000000
--- a/com.unity.template.renderstreaming-hd/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta
+++ /dev/null
@@ -1,431 +0,0 @@
-fileFormatVersion: 2
-guid: dffef66376be4fa480fb02b19edbe903
-TextureImporter:
- fileIDToRecycleName:
- 21300000: EmojiOne_0
- 21300002: EmojiOne_1
- 21300004: EmojiOne_2
- 21300006: EmojiOne_3
- 21300008: EmojiOne_4
- 21300010: EmojiOne_6
- 21300012: EmojiOne_7
- 21300014: EmojiOne_8
- 21300016: EmojiOne_9
- 21300018: EmojiOne_10
- 21300020: EmojiOne_11
- 21300022: EmojiOne_12
- 21300024: EmojiOne_13
- 21300026: EmojiOne_5
- 21300028: EmojiOne_14
- externalObjects: {}
- serializedVersion: 5
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: 1
- wrapV: 1
- wrapW: 1
- nPOTScale: 0
- lightmap: 0
- compressionQuality: 50
- spriteMode: 2
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- singleChannelComponent: 0
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - serializedVersion: 2
- buildTarget: DefaultTexturePlatform
- maxTextureSize: 512
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - serializedVersion: 2
- buildTarget: Standalone
- maxTextureSize: 512
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - serializedVersion: 2
- buildTarget: iPhone
- maxTextureSize: 512
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - serializedVersion: 2
- buildTarget: Android
- maxTextureSize: 512
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites:
- - serializedVersion: 2
- name: EmojiOne_0
- rect:
- serializedVersion: 2
- x: 0
- y: 384
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 4bcc36da2108f2c4ba3de5c921d25c3c
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_1
- rect:
- serializedVersion: 2
- x: 128
- y: 384
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: e9eea8093eaeaee4d901c4553f572c22
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_2
- rect:
- serializedVersion: 2
- x: 256
- y: 384
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 49451da35411dcc42a3692e39b0fde70
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_3
- rect:
- serializedVersion: 2
- x: 384
- y: 384
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: f65709664b924904790c850a50ca82bc
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_4
- rect:
- serializedVersion: 2
- x: 0
- y: 256
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 5b92c568a5ec9ad4b9ed90e271f1c9a8
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_6
- rect:
- serializedVersion: 2
- x: 256
- y: 256
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: b10f2b48b7281594bb8a24a6511a35af
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_7
- rect:
- serializedVersion: 2
- x: 384
- y: 256
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 10a600f9329dc2246a897e89f4d283cd
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_8
- rect:
- serializedVersion: 2
- x: 0
- y: 128
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 66cffa363b90ab14787d8a5b90cf4502
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_9
- rect:
- serializedVersion: 2
- x: 128
- y: 128
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 55cf3d409c9b89349b1e1bdc1cc224ad
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_10
- rect:
- serializedVersion: 2
- x: 256
- y: 128
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 2a9e58eaf96feef42bcefa1cf257193f
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_11
- rect:
- serializedVersion: 2
- x: 384
- y: 128
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 2489120affc155840ae6a7be2e93ce19
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_12
- rect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 412349a150598d14da4d7140df5c0286
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_13
- rect:
- serializedVersion: 2
- x: 128
- y: 0
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: a937464b42bb3634782dea34c6becb6c
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_5
- rect:
- serializedVersion: 2
- x: 256
- y: 0
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0, y: 0}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: b0f933b217682124dbfc5e6b89abe3d0
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: EmojiOne_14
- rect:
- serializedVersion: 2
- x: 128
- y: 256
- width: 128
- height: 128
- alignment: 0
- pivot: {x: 0, y: 0}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: f7235c763afe4434e8bb666750a41096
- vertices: []
- indices:
- edges: []
- weights: []
- outline: []
- physicsShape: []
- bones: []
- spriteID: 3e32d8f5477abfc43b19066e8ad5032e
- vertices: []
- indices:
- edges: []
- weights: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant: