├── .github ├── ISSUE_TEMPLATE │ ├── bug-template.md │ └── feature_request.md └── workflows │ └── codeql-analysis.yml ├── .gitignore ├── .vscode └── settings.json ├── .vsconfig ├── Agora.csproj ├── Agora.sln ├── Agora_Unity_WebGL.csproj ├── Agora_Unity_WebGL.sln ├── Assembly-CSharp.csproj ├── Assets ├── API-Example.meta ├── API-Example │ ├── Demo.meta │ ├── Demo │ │ ├── AudioVideoStateControl.cs │ │ ├── AudioVideoStateControl.cs.meta │ │ ├── ButtonHandler.cs │ │ ├── ButtonHandler.cs.meta │ │ ├── SceneHelloVideo.unity │ │ ├── SceneHelloVideo.unity.meta │ │ ├── SceneHome.unity │ │ ├── SceneHome.unity.meta │ │ ├── TestHelloUnityVideo.cs │ │ ├── TestHelloUnityVideo.cs.meta │ │ ├── TestHome.cs │ │ ├── TestHome.cs.meta │ │ ├── UIElementDragger.cs │ │ ├── UIElementDragger.cs.meta │ │ ├── agoraDemoUnityWeb.png │ │ └── agoraDemoUnityWeb.png.meta │ ├── Editor.meta │ ├── Editor │ │ ├── SceneWindow.cs │ │ ├── SceneWindow.cs.meta │ │ ├── Welcome.cs │ │ └── Welcome.cs.meta │ ├── Home Menu.meta │ ├── Home Menu │ │ ├── Drag.cs │ │ ├── Drag.cs.meta │ │ ├── RootMenu.cs │ │ ├── RootMenu.cs.meta │ │ ├── RootMenuControl.cs │ │ ├── RootMenuControl.cs.meta │ │ ├── RootMenuControl.prefab │ │ ├── RootMenuControl.prefab.meta │ │ ├── RootMenuPanel.cs │ │ ├── RootMenuPanel.cs.meta │ │ ├── RootMenuPanel.prefab │ │ ├── RootMenuPanel.prefab.meta │ │ ├── SceneUIGroup.prefab │ │ └── SceneUIGroup.prefab.meta │ ├── HomeMenu.unity │ ├── HomeMenu.unity.meta │ ├── SpatialAudioNPCDemo.meta │ ├── SpatialAudioNPCDemo │ │ ├── AIWaypointMovement.cs │ │ ├── AIWaypointMovement.cs.meta │ │ ├── Image.controller │ │ ├── Image.controller.meta │ │ ├── NPCInfo.cs │ │ ├── NPCInfo.cs.meta │ │ ├── NPCInfoWindow.cs │ │ ├── NPCInfoWindow.cs.meta │ │ ├── NPCSettings.cs │ │ ├── NPCSettings.cs.meta │ │ ├── NewSpatialAudioDemo.unity │ │ ├── NewSpatialAudioDemo.unity.meta │ │ ├── SpatialAudioAssets.meta │ │ ├── SpatialAudioAssets │ │ │ ├── 1.png │ │ │ ├── 1.png.meta │ │ │ ├── 2.png │ │ │ ├── 2.png.meta │ │ │ ├── 3.png │ │ │ ├── 3.png.meta │ │ │ ├── 4.png │ │ │ ├── 4.png.meta │ │ │ ├── SpatialAudioUIButtonDisabled.anim │ │ │ ├── SpatialAudioUIButtonDisabled.anim.meta │ │ │ ├── _1.gif │ │ │ ├── _1.gif.meta │ │ │ ├── _2_1.gif │ │ │ ├── _2_1.gif.meta │ │ │ ├── __1.gif │ │ │ ├── __1.gif.meta │ │ │ ├── __2.gif │ │ │ ├── __2.gif.meta │ │ │ ├── __3.gif │ │ │ ├── __3.gif.meta │ │ │ ├── alert.png │ │ │ ├── alert.png.meta │ │ │ ├── arrows.png │ │ │ ├── arrows.png.meta │ │ │ ├── arrows@2x.png │ │ │ ├── arrows@2x.png.meta │ │ │ ├── audio.png │ │ │ ├── audio.png.meta │ │ │ ├── audio@2x(1).png │ │ │ ├── audio@2x(1).png.meta │ │ │ ├── back.png │ │ │ ├── back.png.meta │ │ │ ├── dice@2x.png │ │ │ ├── dice@2x.png.meta │ │ │ ├── down.png │ │ │ ├── down.png.meta │ │ │ ├── logo.png │ │ │ ├── logo.png.meta │ │ │ ├── map.png │ │ │ ├── map.png.meta │ │ │ ├── person.png │ │ │ ├── person.png.meta │ │ │ ├── pin@2x(1).png │ │ │ ├── pin@2x(1).png.meta │ │ │ ├── pin@2x.png │ │ │ ├── pin@2x.png.meta │ │ │ ├── question.png │ │ │ ├── question.png.meta │ │ │ ├── resources.meta │ │ │ ├── resources │ │ │ │ ├── Bgm.meta │ │ │ │ ├── Bgm │ │ │ │ │ ├── BGM.mp3 │ │ │ │ │ └── BGM.mp3.meta │ │ │ │ ├── Live.meta │ │ │ │ ├── Live │ │ │ │ │ ├── live.mp3 │ │ │ │ │ └── live.mp3.meta │ │ │ │ ├── Music.meta │ │ │ │ └── Music │ │ │ │ │ ├── music.mp3 │ │ │ │ │ └── music.mp3.meta │ │ │ ├── set_hover@2x.png │ │ │ ├── set_hover@2x.png.meta │ │ │ ├── set_normal@2x.png │ │ │ ├── set_normal@2x.png.meta │ │ │ ├── three pyramid@2x.png │ │ │ ├── three pyramid@2x.png.meta │ │ │ ├── up.png │ │ │ └── up.png.meta │ │ ├── SpatialAudioAvatar.cs │ │ ├── SpatialAudioAvatar.cs.meta │ │ ├── SpatialAudioDemoCamera.cs │ │ ├── SpatialAudioDemoCamera.cs.meta │ │ ├── SpatialAudioDemoManager.cs │ │ ├── SpatialAudioDemoManager.cs.meta │ │ ├── SpatialAudioUIButton.anim │ │ ├── SpatialAudioUIButton.anim.meta │ │ ├── SpriteLayerHandler.cs │ │ └── SpriteLayerHandler.cs.meta │ ├── _AppIDInfo.meta │ ├── _AppIDInfo │ │ ├── AppIDInfo.asset │ │ ├── AppIDInfo.asset.meta │ │ ├── AppInfoObject.cs │ │ └── AppInfoObject.cs.meta │ ├── agoraDemoUnityWeb.png │ ├── agoraDemoUnityWeb.png.meta │ ├── datastream-sample.meta │ ├── datastream-sample │ │ ├── DataStreamScene.unity │ │ ├── DataStreamScene.unity.meta │ │ ├── TestDataStream.cs │ │ └── TestDataStream.cs.meta │ ├── device-manager.meta │ ├── device-manager │ │ ├── AgoraDeviceManager.cs │ │ ├── AgoraDeviceManager.cs.meta │ │ ├── DeviceManager.unity │ │ └── DeviceManager.unity.meta │ ├── encryption.meta │ ├── encryption │ │ ├── EncryptionSample.cs │ │ ├── EncryptionSample.cs.meta │ │ ├── EncryptionScene.unity │ │ └── EncryptionScene.unity.meta │ ├── geo-area-sample.meta │ ├── geo-area-sample │ │ ├── GeoArea.unity │ │ ├── GeoArea.unity.meta │ │ ├── HelloVideoAgora2.cs │ │ └── HelloVideoAgora2.cs.meta │ ├── multi-channel.meta │ ├── multi-channel │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── ChannelPanel.prefab │ │ │ └── ChannelPanel.prefab.meta │ │ ├── Scenes.meta │ │ ├── Scenes │ │ │ ├── MultipleChannelDemoNew.unity │ │ │ ├── MultipleChannelDemoNew.unity.meta │ │ │ ├── MultipleChannelDemoNewSettings.lighting │ │ │ └── MultipleChannelDemoNewSettings.lighting.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── AgoraChannelPanel.cs │ │ │ ├── AgoraChannelPanel.cs.meta │ │ │ ├── AgoraChannelPanelNew.cs │ │ │ ├── AgoraChannelPanelNew.cs.meta │ │ │ ├── MultiChannelSceneCtrl.cs │ │ │ └── MultiChannelSceneCtrl.cs.meta │ ├── push-video-frame.meta │ ├── push-video-frame │ │ ├── AgoraScreenShare.cs │ │ ├── AgoraScreenShare.cs.meta │ │ ├── MainSceneSettings.lighting │ │ ├── MainSceneSettings.lighting.meta │ │ ├── PushVideoFrame.unity │ │ └── PushVideoFrame.unity.meta │ ├── rtmp-streaming.meta │ ├── rtmp-streaming │ │ ├── MainScene.unity │ │ ├── MainScene.unity.meta │ │ ├── MainSceneSettings.lighting │ │ ├── MainSceneSettings.lighting.meta │ │ ├── RtmpStreaming.cs │ │ └── RtmpStreaming.cs.meta │ ├── screen-sharing.meta │ ├── screen-sharing │ │ ├── AgoraScreenSharingClientManager.cs │ │ ├── AgoraScreenSharingClientManager.cs.meta │ │ ├── ClientManagerTest.unity │ │ ├── ClientManagerTest.unity.meta │ │ ├── ClientManagerTestSettings.lighting │ │ └── ClientManagerTestSettings.lighting.meta │ ├── spatial-audio-effect.meta │ ├── spatial-audio-effect │ │ ├── SpatialAudioForClientManager.cs │ │ ├── SpatialAudioForClientManager.cs.meta │ │ ├── SpatialAudioScene.unity │ │ └── SpatialAudioScene.unity.meta │ ├── spatial-audio-positional.meta │ ├── spatial-audio-positional │ │ ├── SpatialAudioPosition.cs │ │ ├── SpatialAudioPosition.cs.meta │ │ ├── SpatialAudioPosition.unity │ │ └── SpatialAudioPosition.unity.meta │ ├── token-usage.meta │ ├── token-usage │ │ ├── ClientManagerTokenUse.cs │ │ ├── ClientManagerTokenUse.cs.meta │ │ ├── MainSceneNewSettings.lighting │ │ ├── MainSceneNewSettings.lighting.meta │ │ ├── TokenUse.unity │ │ └── TokenUse.unity.meta │ ├── tools.meta │ ├── tools │ │ ├── Logger.cs │ │ ├── Logger.cs.meta │ │ ├── PermissionHelper.cs │ │ ├── PermissionHelper.cs.meta │ │ ├── ToggleStateButton.cs │ │ ├── ToggleStateButton.cs.meta │ │ ├── TokenClient.cs │ │ ├── TokenClient.cs.meta │ │ ├── TokenClient.prefab │ │ ├── TokenClient.prefab.meta │ │ ├── TokenRequestHelper.cs │ │ ├── TokenRequestHelper.cs.meta │ │ ├── UIElementDragger.cs │ │ └── UIElementDragger.cs.meta │ ├── user-audioframe-audiosource.meta │ ├── user-audioframe-audiosource │ │ ├── AudioFrameScene.unity │ │ ├── AudioFrameScene.unity.meta │ │ ├── IUserAudioFrameDelegate.cs │ │ ├── IUserAudioFrameDelegate.cs.meta │ │ ├── RingBuffer.cs │ │ ├── RingBuffer.cs.meta │ │ ├── UserAudioFrame2SourceSample.cs │ │ ├── UserAudioFrame2SourceSample.cs.meta │ │ ├── UserAudioFrameHandler.cs │ │ └── UserAudioFrameHandler.cs.meta │ ├── video-encoder-configuration.meta │ ├── video-encoder-configuration │ │ ├── VideoEncodeSize.unity │ │ ├── VideoEncodeSize.unity.meta │ │ ├── video_encoder_configuration.cs │ │ └── video_encoder_configuration.cs.meta │ ├── virtual-background.meta │ └── virtual-background │ │ ├── ClientManagerTestSettings.lighting │ │ ├── ClientManagerTestSettings.lighting.meta │ │ ├── VirtualBackground.unity │ │ ├── VirtualBackground.unity.meta │ │ ├── VirtualBackgroundClientDemo.cs │ │ └── VirtualBackgroundClientDemo.cs.meta ├── AgoraEngine.meta ├── AgoraEngine │ ├── Agora Webgl Build And Run.pdf │ ├── Agora Webgl Build And Run.pdf.meta │ ├── Editor.meta │ ├── Editor │ │ ├── BL_BuildPostProcess.cs │ │ └── BL_BuildPostProcess.cs.meta │ ├── Plugins.meta │ ├── Plugins │ │ └── WebGL │ │ │ ├── AgoraWebGLSDK.jslib │ │ │ └── AgoraWebGLSDK.jslib.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── AgoraEventHandler.prefab │ │ └── AgoraEventHandler.prefab.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── AgoraGamingSDK.meta │ │ ├── AgoraGamingSDK │ │ │ ├── AgoraBase.cs │ │ │ ├── AgoraBase.cs.meta │ │ │ ├── AgoraCallback.cs │ │ │ ├── AgoraCallback.cs.meta │ │ │ ├── AgoraChannel.cs │ │ │ ├── AgoraChannel.cs.meta │ │ │ ├── AgoraChannelCallback.cs │ │ │ ├── AgoraChannelCallback.cs.meta │ │ │ ├── AgoraGameObject.cs │ │ │ ├── AgoraGameObject.cs.meta │ │ │ ├── AgoraGamingRtcEngine.cs │ │ │ ├── AgoraGamingRtcEngine.cs.meta │ │ │ ├── AudioEffectManager.cs │ │ │ ├── AudioEffectManager.cs.meta │ │ │ ├── PLACEHOLDER │ │ │ ├── PLACEHOLDER.meta │ │ │ ├── deviceManager.meta │ │ │ ├── deviceManager │ │ │ │ ├── AudioPlaybackDeviceManager.cs │ │ │ │ ├── AudioPlaybackDeviceManager.cs.meta │ │ │ │ ├── AudioRecordingDeviceManager.cs │ │ │ │ ├── AudioRecordingDeviceManager.cs.meta │ │ │ │ ├── MediaRecorder.cs │ │ │ │ ├── MediaRecorder.cs.meta │ │ │ │ ├── ScreenCaptureManager.cs │ │ │ │ ├── ScreenCaptureManager.cs.meta │ │ │ │ ├── VideoDeviceManager.cs │ │ │ │ └── VideoDeviceManager.cs.meta │ │ │ ├── mainpage.md │ │ │ ├── mainpage.md.meta │ │ │ ├── native.meta │ │ │ ├── native │ │ │ │ ├── IAgoraGamingRtcEngineNative.cs │ │ │ │ └── IAgoraGamingRtcEngineNative.cs.meta │ │ │ ├── observer.meta │ │ │ ├── observer │ │ │ │ ├── MetaDataObserver.cs │ │ │ │ ├── MetaDataObserver.cs.meta │ │ │ │ ├── PacketObserver.cs │ │ │ │ └── PacketObserver.cs.meta │ │ │ ├── rawData.meta │ │ │ ├── rawData │ │ │ │ ├── AudioRawDataManager.cs │ │ │ │ ├── AudioRawDataManager.cs.meta │ │ │ │ ├── VideoRawDataManager.cs │ │ │ │ └── VideoRawDataManager.cs.meta │ │ │ ├── spatialAudio.meta │ │ │ ├── spatialAudio │ │ │ │ ├── LocalSpatialAudioEngine.cs │ │ │ │ └── LocalSpatialAudioEngine.cs.meta │ │ │ ├── tools.meta │ │ │ ├── tools │ │ │ │ ├── AgoraCallbackObject.cs │ │ │ │ ├── AgoraCallbackObject.cs.meta │ │ │ │ ├── AgoraCallbackQueue.cs │ │ │ │ ├── AgoraCallbackQueue.cs.meta │ │ │ │ ├── AgoraLog.cs │ │ │ │ └── AgoraLog.cs.meta │ │ │ ├── videoRender.meta │ │ │ └── videoRender │ │ │ │ ├── VideoRender.cs │ │ │ │ ├── VideoRender.cs.meta │ │ │ │ ├── VideoSurface.cs │ │ │ │ └── VideoSurface.cs.meta │ │ ├── AgoraTools.meta │ │ ├── AgoraTools │ │ │ ├── prep_codesign.sh │ │ │ ├── prep_codesign.sh.meta │ │ │ ├── signcode.sh │ │ │ └── signcode.sh.meta │ │ ├── AgoraWebGLEventHandler.cs │ │ ├── AgoraWebGLEventHandler.cs.meta │ │ ├── InSurfaceRenderer.cs │ │ ├── InSurfaceRenderer.cs.meta │ │ ├── WebglPreBuildProcessing.meta │ │ └── WebglPreBuildProcessing │ │ │ ├── WebglPreBuildProcessing.cs │ │ │ └── WebglPreBuildProcessing.cs.meta │ ├── Utils.meta │ └── Utils │ │ ├── AgoraUIUtils.cs │ │ └── AgoraUIUtils.cs.meta ├── FunctionalTest.meta ├── FunctionalTest │ ├── DevDemo.meta │ ├── DevDemo │ │ ├── Api_TestHelper.cs │ │ ├── Api_TestHelper.cs.meta │ │ ├── ButtonHandler.cs │ │ ├── ButtonHandler.cs.meta │ │ ├── GlobalDebug.cs │ │ ├── GlobalDebug.cs.meta │ │ ├── MultiChannel.meta │ │ ├── MultiChannel.unity │ │ ├── MultiChannel.unity.meta │ │ ├── MultiChannel │ │ │ ├── MC_Main.cs │ │ │ └── MC_Main.cs.meta │ │ ├── SceneFuncTests.unity │ │ ├── SceneFuncTests.unity.meta │ │ ├── SceneHome2.unity │ │ ├── SceneHome2.unity.meta │ │ ├── Test.meta │ │ ├── Test │ │ │ ├── AMT_Item.cs │ │ │ ├── AMT_Item.cs.meta │ │ │ ├── DVC_ShareAudio.cs │ │ │ ├── DVC_ShareAudio.cs.meta │ │ │ ├── DVC_ShareScreen.cs │ │ │ ├── DVC_ShareScreen.cs.meta │ │ │ ├── FetchErrorDescription.cs │ │ │ ├── FetchErrorDescription.cs.meta │ │ │ ├── FrameHandlers.cs │ │ │ ├── FrameHandlers.cs.meta │ │ │ ├── Test_ADM.cs │ │ │ ├── Test_ADM.cs.meta │ │ │ ├── Test_AudioEffects.cs │ │ │ ├── Test_AudioEffects.cs.meta │ │ │ ├── Test_AudioMixing.cs │ │ │ ├── Test_AudioMixing.cs.meta │ │ │ ├── Test_Misc.cs │ │ │ ├── Test_Misc.cs.meta │ │ │ ├── Test_MuteStreams.cs │ │ │ ├── Test_MuteStreams.cs.meta │ │ │ ├── Test_OldScreenShare.cs │ │ │ ├── Test_OldScreenShare.cs.meta │ │ │ ├── Test_PlaybackDeviceManager.cs │ │ │ ├── Test_PlaybackDeviceManager.cs.meta │ │ │ ├── Test_RecordingDeviceManager.cs │ │ │ ├── Test_RecordingDeviceManager.cs.meta │ │ │ ├── Test_VideoDeviceManager.cs │ │ │ ├── Test_VideoDeviceManager.cs.meta │ │ │ ├── Test_Watermark.cs │ │ │ └── Test_Watermark.cs.meta │ │ ├── TestFinder.cs │ │ ├── TestFinder.cs.meta │ │ ├── TestHelloUnityVideo.cs │ │ ├── TestHelloUnityVideo.cs.meta │ │ ├── TestHome.cs │ │ ├── TestHome.cs.meta │ │ ├── TestInits.cs │ │ ├── TestInits.cs.meta │ │ ├── TestUI.cs │ │ ├── TestUI.cs.meta │ │ ├── Web.meta │ │ └── Web │ │ │ ├── ImplTester.cs │ │ │ ├── ImplTester.cs.meta │ │ │ ├── ImplTesterBeforeJoin.cs │ │ │ ├── ImplTesterBeforeJoin.cs.meta │ │ │ ├── TestApiImplementor.cs │ │ │ └── TestApiImplementor.cs.meta │ ├── JoinMultipleChannel.meta │ ├── JoinMultipleChannel │ │ ├── AgoraMultiChannel.cs │ │ ├── AgoraMultiChannel.cs.meta │ │ ├── MainScene.unity │ │ └── MainScene.unity.meta │ ├── NewScreenShareMChannel.meta │ ├── NewScreenShareMChannel │ │ ├── AgoraMultiChannel2.cs │ │ ├── AgoraMultiChannel2.cs.meta │ │ ├── MainSceneNew.unity │ │ └── MainSceneNew.unity.meta │ ├── Respawn.meta │ ├── Respawn │ │ ├── RespawnScene.unity │ │ ├── RespawnScene.unity.meta │ │ ├── TestVideoRespawn.cs │ │ └── TestVideoRespawn.cs.meta │ ├── SpatialAudioForMultichannel.meta │ ├── SpatialAudioForMultichannel │ │ ├── SpatialAudioScene.unity │ │ ├── SpatialAudioScene.unity.meta │ │ ├── SpatialAudioSceneSettings.lighting │ │ ├── SpatialAudioSceneSettings.lighting.meta │ │ ├── SpatialAudioforMultichannel.cs │ │ └── SpatialAudioforMultichannel.cs.meta │ ├── VirtualBackgroundMultichannel.meta │ ├── VirtualBackgroundMultichannel │ │ ├── MultichannelTest.unity │ │ ├── MultichannelTest.unity.meta │ │ ├── MultichannelTestSettings.lighting │ │ ├── MultichannelTestSettings.lighting.meta │ │ ├── VirtualBackgroundMultichannelDemo.cs │ │ └── VirtualBackgroundMultichannelDemo.cs.meta │ ├── VoiceChannel.meta │ └── VoiceChannel │ │ ├── AgoraVoiceChannel.cs │ │ ├── AgoraVoiceChannel.cs.meta │ │ ├── MainSceneNew.unity │ │ └── MainSceneNew.unity.meta ├── WebGLSupport.meta ├── WebGLSupport │ ├── WebGLInput.meta │ ├── WebGLInput │ │ ├── Detail.meta │ │ ├── Detail │ │ │ ├── RebuildChecker.cs │ │ │ └── RebuildChecker.cs.meta │ │ ├── Mobile.meta │ │ ├── Mobile │ │ │ ├── WebGLInputMobile.cs │ │ │ ├── WebGLInputMobile.cs.meta │ │ │ ├── WebGLInputMobile.jslib │ │ │ └── WebGLInputMobile.jslib.meta │ │ ├── WebGLInput.cs │ │ ├── WebGLInput.cs.meta │ │ ├── WebGLInput.jslib │ │ ├── WebGLInput.jslib.meta │ │ ├── Wrapper.meta │ │ └── Wrapper │ │ │ ├── IInputField.cs │ │ │ ├── IInputField.cs.meta │ │ │ ├── WrappedInputField.cs │ │ │ ├── WrappedInputField.cs.meta │ │ │ ├── WrappedTMPInputField.cs │ │ │ └── WrappedTMPInputField.cs.meta │ ├── WebGLWindow.meta │ └── WebGLWindow │ │ ├── WebGLWindow.cs │ │ ├── WebGLWindow.cs.meta │ │ ├── WebGLWindow.jslib │ │ └── WebGLWindow.jslib.meta ├── WebGLTemplates.meta └── WebGLTemplates │ ├── AgoraTemplate.meta │ ├── AgoraTemplate │ ├── AgoraRTC_N.js │ ├── AgoraRTC_N.js.meta │ ├── AgoraWebSDK.meta │ ├── AgoraWebSDK │ │ ├── agorartcenginev2.js │ │ ├── agorartcenginev2.js.meta │ │ ├── assets.meta │ │ ├── assets │ │ │ ├── agora-wasm.wasm │ │ │ ├── agora-wasm.wasm.meta │ │ │ ├── audio.meta │ │ │ ├── audio │ │ │ │ ├── Sample_GoG_Theme.mp3 │ │ │ │ └── Sample_GoG_Theme.mp3.meta │ │ │ ├── common.css │ │ │ ├── common.css.meta │ │ │ ├── images.meta │ │ │ ├── images │ │ │ │ ├── bedroom.jpg │ │ │ │ └── bedroom.jpg.meta │ │ │ ├── videos.meta │ │ │ └── videos │ │ │ │ ├── jellyfish.mp4 │ │ │ │ └── jellyfish.mp4.meta │ │ ├── libs.meta │ │ ├── libs │ │ │ ├── agora-extension-virtual-background.js │ │ │ ├── agora-extension-virtual-background.js.meta │ │ │ ├── agorachannel.js │ │ │ ├── agorachannel.js.meta │ │ │ ├── agorautils.js │ │ │ ├── agorautils.js.meta │ │ │ ├── audioeffects.js │ │ │ ├── audioeffects.js.meta │ │ │ ├── audiomixing.js │ │ │ ├── audiomixing.js.meta │ │ │ ├── audiosystem.js │ │ │ ├── audiosystem.js.meta │ │ │ ├── clientmanager.js │ │ │ ├── clientmanager.js.meta │ │ │ ├── customvideo.js │ │ │ ├── customvideo.js.meta │ │ │ ├── databuilder.js │ │ │ ├── databuilder.js.meta │ │ │ ├── engineglobals.js │ │ │ ├── engineglobals.js.meta │ │ │ ├── eventmanager.js │ │ │ ├── eventmanager.js.meta │ │ │ ├── index.esm.js │ │ │ ├── index.esm.js.meta │ │ │ ├── multichannel.js │ │ │ ├── multichannel.js.meta │ │ │ ├── resources.meta │ │ │ ├── resources │ │ │ │ ├── 2.mp3 │ │ │ │ ├── 2.mp3.meta │ │ │ │ ├── 3.mp3 │ │ │ │ ├── 3.mp3.meta │ │ │ │ ├── DemoResources.meta │ │ │ │ └── DemoResources │ │ │ │ │ ├── Bgm.meta │ │ │ │ │ ├── Bgm │ │ │ │ │ ├── BGM.mp3 │ │ │ │ │ └── BGM.mp3.meta │ │ │ │ │ ├── Live.meta │ │ │ │ │ ├── Live │ │ │ │ │ ├── live.mp3 │ │ │ │ │ └── live.mp3.meta │ │ │ │ │ ├── Music.meta │ │ │ │ │ ├── Music │ │ │ │ │ ├── music.mp3 │ │ │ │ │ └── music.mp3.meta │ │ │ │ │ ├── paul.meta │ │ │ │ │ └── paul │ │ │ │ │ ├── ToddEmbleyDemo.mp3 │ │ │ │ │ └── ToddEmbleyDemo.mp3.meta │ │ │ ├── spatial-audio-main.js │ │ │ ├── spatial-audio-main.js.meta │ │ │ ├── spatial.meta │ │ │ ├── spatial │ │ │ │ ├── audio_spatializer.wasm │ │ │ │ ├── audio_spatializer.wasm.meta │ │ │ │ ├── spatial-audio-worker.js │ │ │ │ └── spatial-audio-worker.js.meta │ │ │ ├── testing.js │ │ │ ├── testing.js.meta │ │ │ ├── virtualbackground.js │ │ │ ├── virtualbackground.js.meta │ │ │ ├── watermark.js │ │ │ ├── watermark.js.meta │ │ │ ├── wglwrapper.js │ │ │ └── wglwrapper.js.meta │ │ ├── style.css │ │ ├── style.css.meta │ │ └── vendor.meta │ ├── index.css │ ├── index.css.meta │ ├── index.html │ ├── index.html.meta │ ├── thumbnail.png │ └── thumbnail.png.meta │ ├── AgoraTemplate2020.meta │ └── AgoraTemplate2020 │ ├── AgoraRTC_N.js │ ├── AgoraRTC_N.js.meta │ ├── AgoraWebSDK │ ├── AgoraWebSDK.meta │ ├── TemplateData.meta │ ├── TemplateData │ ├── favicon.ico │ ├── favicon.ico.meta │ ├── fullscreen-button.png │ ├── fullscreen-button.png.meta │ ├── progress-bar-empty-dark.png │ ├── progress-bar-empty-dark.png.meta │ ├── progress-bar-empty-light.png │ ├── progress-bar-empty-light.png.meta │ ├── progress-bar-full-dark.png │ ├── progress-bar-full-dark.png.meta │ ├── progress-bar-full-light.png │ ├── progress-bar-full-light.png.meta │ ├── style.css │ ├── style.css.meta │ ├── unity-logo-dark.png │ ├── unity-logo-dark.png.meta │ ├── unity-logo-light.png │ ├── unity-logo-light.png.meta │ ├── webgl-logo.png │ └── webgl-logo.png.meta │ ├── index.html │ ├── index.html.meta │ ├── thumbnail.png │ └── thumbnail.png.meta ├── LICENSE ├── ProjectSettings ├── EditorBuildSettings.asset └── ProjectSettings.asset ├── README.md ├── README.zh.md └── UserSettings ├── EditorUserSettings.asset └── Layouts └── default-2021.dwlt /.github/ISSUE_TEMPLATE/bug-template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug template 3 | about: Use this template to report bugs / issues 4 | title: "[BUG]" 5 | labels: bug 6 | assignees: icywind 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Use this template to suggest an idea for this project 4 | title: "[Feature]" 5 | labels: enhancement 6 | assignees: icywind 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | .DS_Store 6 | Thumbs.db 7 | # Never ignore Asset meta data 8 | !/[Aa]ssets/**/*.meta 9 | 10 | #/Assets/AgoraEngine/ 11 | /[Ll]ibrary/ 12 | /[Tt]emp/ 13 | /[Oo]bj/ 14 | /[Bb]uild/ 15 | /[Bb]uilds/ 16 | /[Ll]ogs/ 17 | /[Mm]emoryCaptures/ 18 | /Assets/AgoraEngine/Plugins/* 19 | !/Assets/AgoraEngine/Plugins/WebGL 20 | #/Assets/Plugins/*/*[Aa]gora*.* 21 | #/Assets/Plugins/*/*[Aa]gora*.*/ 22 | #/Assets/Plugins/*/*[Aa]gora*.*.* 23 | /Assets/Scenes 24 | /Assets/Scenes.* 25 | /Packages/ 26 | /ProjectSettings/* 27 | !/ProjectSettings/EditorBuildSettings.asset 28 | !/ProjectSettings/ProjectSettings.asset 29 | 30 | 31 | *.app 32 | 33 | # Uncomment this line if you wish to ignore the asset store tools plugin 34 | # /[Aa]ssets/AssetStoreTools* 35 | 36 | # Autogenerated Jetbrains Rider plugin 37 | [Aa]ssets/Plugins/Editor/JetBrains* 38 | 39 | # Visual Studio cache directory 40 | .vs/ 41 | 42 | # Gradle cache directory 43 | .gradle/ 44 | 45 | # idea/ 46 | .idea/ 47 | 48 | # Autogenerated VS/MD/Consulo solution and project files 49 | ExportedObj/ 50 | .consulo/ 51 | #*.csproj 52 | *.unityproj 53 | #*.sln 54 | *.suo 55 | *.tmp 56 | *.swp 57 | *.user 58 | *.userprefs 59 | *.pidb 60 | *.booproj 61 | *.svd 62 | *.pdb 63 | *.mdb 64 | *.opendb 65 | *.VC.db 66 | 67 | # Unity3D generated meta files 68 | *.pidb.meta 69 | *.pdb.meta 70 | *.mdb.meta 71 | 72 | # Unity3D generated file on crash reports 73 | sysinfo.txt 74 | 75 | # Builds 76 | *.apk 77 | *.unitypackage 78 | 79 | # Crashlytics generated file 80 | crashlytics-build.properties 81 | 82 | # Plugin files 83 | Assets/Plugins 84 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitignore":true, 7 | "**/.gitmodules":true, 8 | "**/*.booproj":true, 9 | "**/*.pidb":true, 10 | "**/*.suo":true, 11 | "**/*.user":true, 12 | "**/*.userprefs":true, 13 | "**/*.unityproj":true, 14 | "**/*.dll":true, 15 | "**/*.exe":true, 16 | "**/*.pdf":true, 17 | "**/*.mid":true, 18 | "**/*.midi":true, 19 | "**/*.wav":true, 20 | "**/*.gif":true, 21 | "**/*.ico":true, 22 | "**/*.jpg":true, 23 | "**/*.jpeg":true, 24 | "**/*.png":true, 25 | "**/*.psd":true, 26 | "**/*.tga":true, 27 | "**/*.tif":true, 28 | "**/*.tiff":true, 29 | "**/*.3ds":true, 30 | "**/*.3DS":true, 31 | "**/*.fbx":true, 32 | "**/*.FBX":true, 33 | "**/*.lxo":true, 34 | "**/*.LXO":true, 35 | "**/*.ma":true, 36 | "**/*.MA":true, 37 | "**/*.obj":true, 38 | "**/*.OBJ":true, 39 | "**/*.asset":true, 40 | "**/*.cubemap":true, 41 | "**/*.flare":true, 42 | "**/*.mat":true, 43 | "**/*.meta":true, 44 | "**/*.prefab":true, 45 | "**/*.unity":true, 46 | "build/":true, 47 | "Build/":true, 48 | "Library/":true, 49 | "library/":true, 50 | "obj/":true, 51 | "Obj/":true, 52 | "ProjectSettings/":true, 53 | "temp/":true, 54 | "Temp/":true 55 | } 56 | } -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Agora.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Agora", "Agora.csproj", "{E3FC28CC-B051-1751-20A1-EC25AFF313F4}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {E3FC28CC-B051-1751-20A1-EC25AFF313F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {E3FC28CC-B051-1751-20A1-EC25AFF313F4}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {E3FC28CC-B051-1751-20A1-EC25AFF313F4}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {E3FC28CC-B051-1751-20A1-EC25AFF313F4}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /Agora_Unity_WebGL.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{885A3DAA-1E51-87A4-E4C6-DD4176626251}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{2D047345-BB11-A0E4-F155-37D0037590C6}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {885A3DAA-1E51-87A4-E4C6-DD4176626251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {885A3DAA-1E51-87A4-E4C6-DD4176626251}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {885A3DAA-1E51-87A4-E4C6-DD4176626251}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {885A3DAA-1E51-87A4-E4C6-DD4176626251}.Release|Any CPU.Build.0 = Release|Any CPU 18 | {2D047345-BB11-A0E4-F155-37D0037590C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {2D047345-BB11-A0E4-F155-37D0037590C6}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {2D047345-BB11-A0E4-F155-37D0037590C6}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {2D047345-BB11-A0E4-F155-37D0037590C6}.Release|Any CPU.Build.0 = Release|Any CPU 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /Assets/API-Example.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3a304df56c614d54afe0f6d3ff7919c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b16622ab9488bd4c965f99fe877132f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/AudioVideoStateControl.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | public class AudioVideoStates 5 | { 6 | public bool subAudio; 7 | public bool subVideo; 8 | public bool pubAudio; 9 | public bool pubVideo; 10 | } 11 | 12 | public class AudioVideoStateControl : MonoBehaviour 13 | { 14 | public Toggle toggleSubAudio; 15 | public Toggle toggleSubVideo; 16 | public Toggle togglePubAudio; 17 | public Toggle togglePubVideo; 18 | } 19 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/AudioVideoStateControl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca8e075111e944e17aea16e9e054133d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/ButtonHandler.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | public class ButtonHandler : MonoBehaviour 5 | { 6 | 7 | /// 8 | /// React to a button click event. Used in the UI Button action definition. 9 | /// 10 | /// 11 | public void onButtonClicked(Button button) 12 | { 13 | // which GameObject? 14 | GameObject go = GameObject.Find("GameController"); 15 | if (go != null) 16 | { 17 | TestHome gameController = go.GetComponent(); 18 | if (gameController == null) 19 | { 20 | Debug.LogError("Missing game controller..."); 21 | return; 22 | } 23 | if (button.name == "JoinButton") 24 | { 25 | gameController.onJoinButtonClicked(true); 26 | } 27 | else if (button.name == "JoinButton2") 28 | { 29 | gameController.onJoinButtonClicked(false); 30 | } 31 | else if (button.name == "LeaveButton") 32 | { 33 | gameController.onLeaveButtonClicked(); 34 | } 35 | else if (button.name == "JoinButton4") 36 | { 37 | gameController.onJoinAudience(); 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/ButtonHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fa7611fdea6e4647b30307169284680 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/SceneHelloVideo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a4d72265ca2c1b4393e31ef58d0988d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/SceneHome.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04457f7085d109e45b51dd81bae1a412 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/TestHelloUnityVideo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a94a4cec58b09a4bba50f8be5da050c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/TestHome.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7d379303221dd7459c4b31d1b17fe18 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/UIElementDragger.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace agora_utilities 5 | { 6 | public class UIElementDragger : EventTrigger 7 | { 8 | float lastClick = 0f; 9 | float interval = 0.4f; 10 | public override void OnPointerClick(PointerEventData eventData) 11 | { 12 | if ((lastClick + interval) > Time.time) 13 | { //is a double click 14 | 15 | transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z); 16 | } 17 | else 18 | {//is a single click 19 | lastClick = Time.time; 20 | } 21 | } 22 | 23 | public override void OnDrag(PointerEventData eventData) 24 | { 25 | transform.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y); 26 | base.OnDrag(eventData); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /Assets/API-Example/Demo/UIElementDragger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22f70ee313c9227409d938bbb5316ef9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Demo/agoraDemoUnityWeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/Demo/agoraDemoUnityWeb.png -------------------------------------------------------------------------------- /Assets/API-Example/Demo/agoraDemoUnityWeb.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d155acdd06a2241b28c4ec528c54ddf3 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 4 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | resizeAlgorithm: 0 61 | textureFormat: -1 62 | textureCompression: 1 63 | compressionQuality: 50 64 | crunchedCompression: 0 65 | allowsAlphaSplitting: 0 66 | overridden: 0 67 | androidETC2FallbackOverride: 0 68 | spriteSheet: 69 | serializedVersion: 2 70 | sprites: [] 71 | outline: [] 72 | physicsShape: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Assets/API-Example/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57929709d82224bd6acade43763abef8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/Editor/SceneWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | namespace Agora_RTC_Plugin.API_Example.Editor 5 | { 6 | public class SceneEditorWindow : EditorWindow 7 | { 8 | List m_SceneAssets = new List(); 9 | 10 | // Add menu item named "Example Window" to the Window menu 11 | [MenuItem("Agora/Build/List Scenes", false, 1)] 12 | public static void ShowWindow() 13 | { 14 | //Show existing window instance. If one doesn't exist, make one. 15 | EditorWindow.GetWindow(typeof(SceneEditorWindow)); 16 | } 17 | 18 | void OnGUI() 19 | { 20 | GUILayout.Space(8); 21 | if (GUILayout.Button("Search and Add Scene files")) 22 | { 23 | List editorBuildSettingsScenes = new List(); 24 | foreach (var file in System.IO.Directory.EnumerateFiles(".", "*.unity", System.IO.SearchOption.AllDirectories)) 25 | { 26 | string scenePath = file.Remove(0, 2); 27 | UnityEngine.Debug.Log(scenePath); 28 | if (!scenePath.Contains("FunctionalTest")) 29 | { 30 | editorBuildSettingsScenes.Add(new EditorBuildSettingsScene(scenePath, true)); 31 | } 32 | } 33 | EditorBuildSettings.scenes = editorBuildSettingsScenes.ToArray(); 34 | } 35 | 36 | GUILayout.Space(8); 37 | if (GUILayout.Button("Clear Scene files")) 38 | { 39 | EditorBuildSettings.scenes = null; 40 | } 41 | } 42 | 43 | 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/API-Example/Editor/SceneWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 595dc33222672413da78131934127b62 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Editor/Welcome.cs: -------------------------------------------------------------------------------- 1 | // Shows either a welcome message, only once per session. 2 | //#if UNITY_EDITOR 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace agora_gaming_rtc 7 | { 8 | static class Welcome 9 | { 10 | [InitializeOnLoadMethod] 11 | static void OnInitializeOnLoad() 12 | { 13 | // InitializeOnLoad is called on start and after each rebuild, 14 | // but we only want to show this once per editor session. 15 | if (!SessionState.GetBool("AGORA_WELCOME", false)) 16 | { 17 | SessionState.SetBool("AGORA_WELCOME", true); 18 | Debug.Log("Agora IO | webgl.agoraguru.net | See Wiki On GibHub"); 19 | } 20 | } 21 | } 22 | } 23 | //#endif 24 | -------------------------------------------------------------------------------- /Assets/API-Example/Editor/Welcome.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 892f81106d1834360b2301a0e157e7cd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19ea57903dcbf416d88c93b810c75e4f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/Drag.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.EventSystems; 6 | using UnityEngine.SceneManagement; 7 | 8 | public class Drag : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler 9 | { 10 | public Image thisImage; 11 | 12 | // Start is called before the first frame update 13 | void Start() 14 | { 15 | thisImage = GetComponent(); 16 | } 17 | 18 | public void OnBeginDrag(PointerEventData eventData) 19 | { 20 | thisImage.raycastTarget = false; 21 | } 22 | 23 | public void OnDrag(PointerEventData eventData) 24 | { 25 | transform.position = eventData.position; 26 | } 27 | 28 | public void OnEndDrag(PointerEventData eventData) 29 | { 30 | thisImage.raycastTarget = true; 31 | } 32 | 33 | // Update is called once per frame 34 | void Update() 35 | { 36 | 37 | } 38 | public void backToMenu() 39 | { 40 | SceneManager.LoadScene("RootMenuScene"); 41 | } 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/Drag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e88e4f816bc5f4cce9a423c567a33b8e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1fb4013b9a4d844748bc9f7c6c36386f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuControl.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.SceneManagement; 5 | using UnityEngine.UI; 6 | 7 | public class RootMenuControl : MonoBehaviour 8 | { 9 | public static bool rootMenuOn; 10 | public GameObject controlPrefab; 11 | public static RootMenuControl instance; 12 | public string channel; 13 | public delegate void exitMenuFunction(); 14 | public exitMenuFunction exit; 15 | 16 | // Start is called before the first frame update 17 | void Start() 18 | { 19 | // Ensure singleton 20 | if (instance) 21 | { 22 | Destroy(gameObject); 23 | } 24 | else 25 | { 26 | instance = this; 27 | } 28 | 29 | DontDestroyOnLoad(gameObject); 30 | SceneManager.sceneLoaded += OnSceneLoaded; 31 | } 32 | 33 | private void OnDestroy() 34 | { 35 | SceneManager.sceneLoaded -= OnSceneLoaded; 36 | } 37 | 38 | void OnSceneLoaded(Scene scene, LoadSceneMode mode) 39 | { 40 | GameObject prefab; 41 | if (scene.name != "HomeMenu" && !GameObject.Find("RootMenuControl")) 42 | { 43 | prefab = (GameObject)Instantiate(controlPrefab, FindObjectOfType().transform); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuControl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7be04829979eb4054b070b48a982f16d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuControl.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ea7baf6ef22c4b9ea2d2d7cba99371b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuPanel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.SceneManagement; 5 | using agora_gaming_rtc; 6 | 7 | public class RootMenuPanel : MonoBehaviour 8 | { 9 | 10 | public GameObject panel, hideButton; 11 | // Start is called before the first frame update 12 | void Start() 13 | { 14 | 15 | } 16 | 17 | // Update is called once per frame 18 | void Update() 19 | { 20 | 21 | } 22 | 23 | public void goBackToMenu() 24 | { 25 | IRtcEngine.Destroy(); 26 | SceneManager.LoadScene("HomeMenu"); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 107dc395f95384a8aa4b0741b47cb575 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/RootMenuPanel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62bd73ce26c63412ab2fd84798735a06 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/Home Menu/SceneUIGroup.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a442c2f226ef449d09f1d521417df893 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/HomeMenu.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 701a86b09780447ccb69174ea6d02344 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b77ed62e7b00af4482d33031136d923 3 | folderAsset: yes 4 | timeCreated: 1664386693 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/AIWaypointMovement.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class AIWaypointMovement : MonoBehaviour { 6 | 7 | public GameObject path; 8 | public List waypoints; 9 | public Sprite[] sprites; 10 | public int waypointIndex; 11 | public float lerpTime, lerpDistance; 12 | public Transform startingPoint, endPoint; 13 | SpriteRenderer sprite; 14 | 15 | 16 | // Use this for initialization 17 | void Start () { 18 | waypoints = new List(); 19 | waypoints.AddRange(path.GetComponentsInChildren()); 20 | waypoints.Remove(path.transform); 21 | sprite = GetComponent(); 22 | } 23 | 24 | // Update is called once per frame 25 | void Update () { 26 | endPoint = waypoints[waypointIndex]; 27 | transform.position = Vector2.Lerp(startingPoint.position, endPoint.position, lerpDistance / lerpTime); 28 | lerpDistance += Time.deltaTime; 29 | if(lerpDistance / lerpTime >= 1f){ 30 | startingPoint = waypoints[waypointIndex]; 31 | if(waypointIndex < waypoints.Count-1) 32 | waypointIndex += 1; 33 | else 34 | waypointIndex = 0; 35 | 36 | lerpDistance = 0f; 37 | sprite.sprite = sprites[waypointIndex]; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/AIWaypointMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e5146a3827490942bb65f2e16889523 3 | timeCreated: 1664478759 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/Image.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 921f474531bb746e2a0330cc6f4e505b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NPCInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using System.Linq; 6 | using System; 7 | 8 | public class NPCInfo : MonoBehaviour 9 | { 10 | [SerializeField] 11 | public npcInfo info; 12 | 13 | public Text name, attenuation, position, forward, right, top; 14 | 15 | // Start is called before the first frame update 16 | void Start() 17 | { 18 | 19 | } 20 | 21 | // Update is called once per frame 22 | void Update() 23 | { 24 | name.text = info.name; 25 | attenuation.text = info.attenuation.ToString(); 26 | position.text = "(" + (info.position.x).ToString() + ", " + ((int)info.position.y).ToString() + ", " + ((int)info.position.z).ToString() + ")"; 27 | forward.text = "(" + ((int)info.forward.x).ToString() + ", " + ((int)info.forward.y).ToString() + ", " + ((int)info.forward.z).ToString() + ")"; 28 | right.text = "(" + ((int)info.right.x).ToString() + ", " + ((int)info.right.y).ToString() + ", " + ((int)info.right.z).ToString() + ")"; 29 | top.text = "(" + ((int)info.top.x).ToString() + ", " + ((int)info.top.y).ToString() + ", " + ((int)info.top.z).ToString() + ")"; 30 | } 31 | 32 | [Serializable] 33 | public struct npcInfo { 34 | public string name; 35 | public float attenuation; 36 | public Vector3 position, forward, right, top; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NPCInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b25fb684e1165469db81fcd655a87e05 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NPCInfoWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using System.Linq; 5 | 6 | public class NPCInfoWindow : MonoBehaviour 7 | { 8 | public List NPCInfos; 9 | public NPCInfo playerInfo; 10 | public List npcs; 11 | public List effectParams; 12 | public static NPCInfoWindow instance; 13 | public GameObject panel; 14 | // Start is called before the first frame update 15 | void Start() 16 | { 17 | instance = this; 18 | 19 | } 20 | 21 | // Update is called once per frame 22 | void Update() 23 | { 24 | if (Input.GetMouseButtonDown(0) && panel.activeInHierarchy) 25 | { 26 | 27 | } 28 | } 29 | 30 | public void updateNPC(SpatialAudioDemoManager.NPCEffectParams npcParams, Transform t) 31 | { 32 | for (int x = 0; x < NPCInfos.Count; x++) 33 | { 34 | if (NPCInfos[x].info.name == t.gameObject.name) 35 | { 36 | NPCInfos[x].info.name = t.gameObject.name; 37 | NPCInfos[x].info.attenuation = (float)npcParams.attenuation; 38 | NPCInfos[x].info.position = t.position; 39 | NPCInfos[x].info.forward = t.forward; 40 | NPCInfos[x].info.right = t.right; 41 | NPCInfos[x].info.top = t.up; 42 | } 43 | } 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NPCInfoWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a94ae4e57cd9a41e5918a45854c2e294 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NPCSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ec132960b7e44e7bb6d2faadb99609b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/NewSpatialAudioDemo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88c43709a84230447bb653c4160982a2 3 | timeCreated: 1664386884 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66e9c63dabacb2f47af87f2d3e66e4f7 3 | folderAsset: yes 4 | timeCreated: 1664386906 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/1.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/2.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/3.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/4.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/SpatialAudioUIButtonDisabled.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1abbe601b421b4e25a2db06d09e7f9ff 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/_1.gif -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/_2_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/_2_1.gif -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__1.gif -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__2.gif -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/__3.gif -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/alert.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/arrows.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/arrows@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/arrows@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/audio.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/audio@2x(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/audio@2x(1).png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/back.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/dice@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/dice@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/down.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/logo.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/map.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/person.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/pin@2x(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/pin@2x(1).png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/pin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/pin@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/question.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d911c8506c2fb34fa53f88306e57cbe 3 | folderAsset: yes 4 | timeCreated: 1664390592 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Bgm.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c4e33bd7e06c5245a2da8fe1b9683e4 3 | folderAsset: yes 4 | timeCreated: 1664390592 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Bgm/BGM.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Bgm/BGM.mp3 -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Bgm/BGM.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82c0396611227444781acdebbaab78bf 3 | timeCreated: 1664390621 4 | licenseType: Free 5 | AudioImporter: 6 | externalObjects: {} 7 | serializedVersion: 6 8 | defaultSettings: 9 | loadType: 0 10 | sampleRateSetting: 0 11 | sampleRateOverride: 44100 12 | compressionFormat: 1 13 | quality: 1 14 | conversionMode: 0 15 | platformSettingOverrides: {} 16 | forceToMono: 0 17 | normalize: 1 18 | preloadAudioData: 1 19 | loadInBackground: 0 20 | ambisonic: 0 21 | 3D: 1 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Live.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ceb548b57937954caed3c4b7b52e487 3 | folderAsset: yes 4 | timeCreated: 1664390592 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Live/live.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Live/live.mp3 -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Live/live.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94053cf14c4f3514683f0bf3de846294 3 | timeCreated: 1664390636 4 | licenseType: Free 5 | AudioImporter: 6 | externalObjects: {} 7 | serializedVersion: 6 8 | defaultSettings: 9 | loadType: 0 10 | sampleRateSetting: 0 11 | sampleRateOverride: 44100 12 | compressionFormat: 1 13 | quality: 1 14 | conversionMode: 0 15 | platformSettingOverrides: {} 16 | forceToMono: 0 17 | normalize: 1 18 | preloadAudioData: 1 19 | loadInBackground: 0 20 | ambisonic: 0 21 | 3D: 1 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Music.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4823cabfd1fb80844b5281f369962566 3 | folderAsset: yes 4 | timeCreated: 1664390592 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Music/music.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Music/music.mp3 -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/resources/Music/music.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1da72513d071f2c4bb79b9c41f88a5d1 3 | timeCreated: 1664390600 4 | licenseType: Free 5 | AudioImporter: 6 | externalObjects: {} 7 | serializedVersion: 6 8 | defaultSettings: 9 | loadType: 0 10 | sampleRateSetting: 0 11 | sampleRateOverride: 44100 12 | compressionFormat: 1 13 | quality: 1 14 | conversionMode: 0 15 | platformSettingOverrides: {} 16 | forceToMono: 0 17 | normalize: 1 18 | preloadAudioData: 1 19 | loadInBackground: 0 20 | ambisonic: 0 21 | 3D: 1 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/set_hover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/set_hover@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/set_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/set_normal@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/three pyramid@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/three pyramid@2x.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAssets/up.png -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioAvatar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 902237ab9f01b7b4186a8cb0e05b5d07 3 | timeCreated: 1664391748 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioDemoCamera.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SpatialAudioDemoCamera : MonoBehaviour { 6 | 7 | public BoxCollider2D targetBox, cameraBox; 8 | private float minX, minY, maxX, maxY; 9 | public Transform user; 10 | 11 | // Use this for initialization 12 | void Start () { 13 | cameraBox = GetComponent(); 14 | Bounds cameraBounds = cameraBox.bounds; 15 | Bounds targetBounds = targetBox.bounds; 16 | minX = targetBounds.min.x + cameraBounds.size.x / 2; 17 | minY = targetBounds.min.y + cameraBounds.size.y / 2; 18 | maxX = targetBounds.max.x - cameraBounds.size.x / 2; 19 | maxY = targetBounds.max.y - cameraBounds.size.y / 2; 20 | } 21 | 22 | // Update is called once per frame 23 | void Update () { 24 | transform.position = new Vector3(user.position.x, user.position.y, transform.position.z); 25 | transform.position = new Vector3(Mathf.Clamp(transform.position.x, minX, maxX), 26 | Mathf.Clamp(transform.position.y, minY, maxY), transform.position.z); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioDemoCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e3fae799e37caf44965bd329abbbbf5 3 | timeCreated: 1664397320 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioDemoManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b47a658557469024e8073e76c8269dce 3 | timeCreated: 1664912848 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpatialAudioUIButton.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: caf1a58889c3246059bef4999019ae02 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpriteLayerHandler.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SpriteLayerHandler : MonoBehaviour { 6 | 7 | SpriteRenderer sprite; 8 | 9 | // Use this for initialization 10 | void Start () { 11 | sprite = GetComponent(); 12 | } 13 | 14 | // Update is called once per frame 15 | void Update () { 16 | sprite.sortingOrder = -(int)Mathf.Round(transform.position.y); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/API-Example/SpatialAudioNPCDemo/SpriteLayerHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa66578baf6515c41a20def42de1c90c 3 | timeCreated: 1664475726 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/_AppIDInfo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd0389b53ff494febb156391c467667d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/_AppIDInfo/AppIDInfo.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: e1f2bcbf9634c47f1931de6e558046a3, type: 3} 13 | m_Name: AppIDInfo 14 | m_EditorClassIdentifier: 15 | appID: 16 | token: 17 | screenShareToken: 18 | -------------------------------------------------------------------------------- /Assets/API-Example/_AppIDInfo/AppIDInfo.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ee9bb1787fc94e81b7466561e7df94b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/_AppIDInfo/AppInfoObject.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [CreateAssetMenu(fileName = "AppIDInfo", menuName = "AppIDInfo", order = 0)] 6 | public class AppInfoObject : ScriptableObject { 7 | public string appID, token, screenShareToken; 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /Assets/API-Example/_AppIDInfo/AppInfoObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1f2bcbf9634c47f1931de6e558046a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/agoraDemoUnityWeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgoraIO-Community/Agora_Unity_WebGL/df0488a17c46d4f227d140d323ed91d54fcfc1c7/Assets/API-Example/agoraDemoUnityWeb.png -------------------------------------------------------------------------------- /Assets/API-Example/datastream-sample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5016b16c149f64a909b8798c321717a2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/datastream-sample/DataStreamScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8a42917fcf914940a9a8df22ed398f0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/datastream-sample/TestDataStream.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b79eea6d0715414ebee2af638988459 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/device-manager.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 636053899f8f5e54d9be511ac3aea39f 3 | folderAsset: yes 4 | timeCreated: 1668872657 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/device-manager/AgoraDeviceManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5ded6a84836e4016a2584a1c1445dfc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/device-manager/DeviceManager.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f976011f359c6414cb634a9a98278002 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/encryption.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d2d9894d778245759d55076000107a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/encryption/EncryptionSample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ed2d904b58eb4a528b61ff6e21ce6a5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/encryption/EncryptionScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 342c959bfae8c431abad1b573e90cc67 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/geo-area-sample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7552267addcbb49a980688a4aba686a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/geo-area-sample/GeoArea.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 334df5f9846c14b19ba711cd7b9e9319 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/geo-area-sample/HelloVideoAgora2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69e23f4a355cb4e45877ac85823cd3d3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25396b8e8e3044bd298d6927c224648a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2919bc298780483c99bbb335bda4a5b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Prefabs/ChannelPanel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed8bf5a8de6d84d1b99e87dc1d98adaa 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a4eb088f81124b328651e1a9a06f86c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scenes/MultipleChannelDemoNew.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f84308a8218374c829db9f2c27da72da 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scenes/MultipleChannelDemoNewSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c178dab2c57324003b26eb1fabf62c4a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f94c504207674067881f719b05e78d2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scripts/AgoraChannelPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb3406d82a7da4fa78334bfbdd1362aa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scripts/AgoraChannelPanelNew.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc2cef5d40edd44b3ae1becae629a120 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/multi-channel/Scripts/MultiChannelSceneCtrl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d820744914074e3bad9aed43673d386 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/push-video-frame.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ac2f6b142e9c41cd9c2f9b5ed6f96a3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/push-video-frame/AgoraScreenShare.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49077210539eb471c84c3f0620d78fc8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/push-video-frame/MainSceneSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e138e776ecbe44919d5f6991b9e6308 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/push-video-frame/PushVideoFrame.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c57883c4b54ea4984b722542d3f4a76f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/rtmp-streaming.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b8233b2b8f744d4cb806baa5f740187 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/rtmp-streaming/MainScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a6a32373aa0949949565b6cf6844ab4 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/rtmp-streaming/MainSceneSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1dfcb3dc86eeb48c89ffdef57f40555a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/rtmp-streaming/RtmpStreaming.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43f5a577f87154f2294650b9f1a341b8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/screen-sharing.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34c9ace5c73124980a91596a182f99e3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/screen-sharing/AgoraScreenSharingClientManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61627942b0dc54c12a7a9541655791a0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/screen-sharing/ClientManagerTest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d17e6c3578af64cf09a527f3a291f37c 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/screen-sharing/ClientManagerTestSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e12c4f83f637457fbafac042c840a32 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-effect.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11d03774148d506498496083b259ba22 3 | folderAsset: yes 4 | timeCreated: 1659980021 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-effect/SpatialAudioForClientManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97e6ba23288256a40ad0fe7d4e38f826 3 | timeCreated: 1659978521 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-effect/SpatialAudioScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b5f437855cd6ee468f48354227c74a7 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-positional.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60370fba0072749f79fdc88038f0dd95 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-positional/SpatialAudioPosition.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d9180bf0a2154fa6973c79a9d658a50 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/spatial-audio-positional/SpatialAudioPosition.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a502d8ef5f184030ad6986a054099ae 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/token-usage.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f76165910f137d4ca3d6934756c8a80 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/token-usage/ClientManagerTokenUse.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c38bde60d136d644490eaf7dae9c25fe 3 | timeCreated: 1659623651 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/API-Example/token-usage/MainSceneNewSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e7d2d58c658543b6a56093fe73de426 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/token-usage/TokenUse.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa26dfc4784713b45b3d621e4a1c8ae8 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/API-Example/tools.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9547e958866b41d88825fa342bc2551 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/API-Example/tools/Logger.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | public class Logger 5 | { 6 | Text text; 7 | 8 | public Logger(Text text) 9 | { 10 | this.text = text; 11 | } 12 | 13 | public void UpdateLog(string logMessage) 14 | { 15 | Debug.Log(logMessage); 16 | string srcLogMessage = text.text; 17 | if (srcLogMessage.Length > 1000) 18 | { 19 | srcLogMessage = ""; 20 | } 21 | srcLogMessage += "\r\n \r\n"; 22 | srcLogMessage += logMessage; 23 | text.text = srcLogMessage; 24 | } 25 | 26 | public bool DebugAssert(bool condition, string message) 27 | { 28 | Debug.Assert(condition, message); 29 | if (!condition) 30 | { 31 | UpdateLog("" + message + ""); 32 | return false; 33 | } 34 | return true; 35 | } 36 | } -------------------------------------------------------------------------------- /Assets/API-Example/tools/Logger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f459233ffbc44f538cee04c3774ecfb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/tools/PermissionHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | #if(UNITY_2018_3_OR_NEWER && UNITY_ANDROID) 5 | using UnityEngine.Android; 6 | #endif 7 | 8 | public class PermissionHelper{ 9 | 10 | public static void RequestMicrophontPermission() 11 | { 12 | #if (UNITY_2018_3_OR_NEWER && UNITY_ANDROID) 13 | if (!Permission.HasUserAuthorizedPermission(Permission.Microphone)) 14 | { 15 | Permission.RequestUserPermission(Permission.Microphone); 16 | } 17 | #endif 18 | } 19 | 20 | public static void RequestCameraPermission() 21 | { 22 | #if (UNITY_2018_3_OR_NEWER && UNITY_ANDROID) 23 | if (!Permission.HasUserAuthorizedPermission(Permission.Camera)) 24 | { 25 | Permission.RequestUserPermission(Permission.Camera); 26 | } 27 | #endif 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Assets/API-Example/tools/PermissionHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 867a8a9767362472cac9b2f20ab39c35 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/API-Example/tools/ToggleStateButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | [RequireComponent(typeof(Button))] 5 | public class ToggleStateButton : MonoBehaviour 6 | { 7 | public bool OnOffState { get; private set; } 8 | public string OnStateText { get; private set; } 9 | public string OffStateText { get; private set; } 10 | 11 | private Button button; 12 | private Text text; 13 | private bool initState; 14 | 15 | public void Setup(bool initOnOff, string onStateText, string offStateText, System.Action callOnAction, System.Action callOffAction) 16 | { 17 | button = GetComponent