streamingAssetsPath
The path to the StreamingAssets folder (Read Only).
Read time 2 minutesLast updated 7 days ago
Definition
- Type: Property
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
public static string streamingAssetsPath { get; }
Remarks
Use the folder to store assets. Create it in your project at Assets/StreamingAssets. At runtime, provides the path to the folder. In a built Player, the StreamingAssets location can differ from the project folder, so always use . Add the asset name to . The built application can load the asset at this address. You can use the Debug.Log class to print the path to the folder to the Unity Console.
StreamingAssetsApplication.streamingAssetsPathApplication.streamingAssetsPathApplication.streamingAssetsPathStreamingAssetsYou cannot use synchronous filesystem APIs, such as the C# class, to access the folder on the WebGL and Android platforms. No file access is available on WebGL. Android uses a compressed file. These platforms return a URL. Use the UnityWebRequest class to access the assets.
System.IO.FileStreamingAssets.apkusing UnityEngine;using System.IO;using UnityEngine.Video;// Application-streamingAssetsPath example.//// Play a video and let the user stop/start it.// The video location is StreamingAssets. The video is// played on the camera background.public class Example : MonoBehaviour{ private UnityEngine.Video.VideoPlayer videoPlayer; private string status; void Start() { GameObject cam = GameObject.Find("Main Camera"); videoPlayer = cam.AddComponent<UnityEngine.Video.VideoPlayer>(); // Obtain the location of the video clip. videoPlayer.url = Path.Combine(Application.streamingAssetsPath, "SampleVideo_1280x720_5mb.mp4"); // Restart from beginning when done. videoPlayer.isLooping = true; // Do not show the video until the user needs it. videoPlayer.Pause(); status = "Press to play"; } void OnGUI() { GUIStyle buttonWidth = new GUIStyle(GUI.skin.GetStyle("button")); buttonWidth.fontSize = 18 * (Screen.width / 800); if (GUI.Button(new Rect(Screen.width / 16, Screen.height / 16, Screen.width / 3, Screen.height / 8), status, buttonWidth)) { if (videoPlayer.isPlaying) { videoPlayer.Pause(); status = "Press to play"; } else { videoPlayer.Play(); status = "Press to pause"; } } }}
The following code example demonstrates how to access a file in the folder on Android (and similarly WebGL) platforms. On both Android and WebGL, treat as a URL and use UnityWebRequest (not synchronous filesystem APIs such as ) to read StreamingAssets.
StreamingAssetsApplication.streamingAssetsPathSystem.IO.Fileusing UnityEngine;using UnityEngine.Networking;using System.Threading.Tasks;public class LoadStreamingAsset : MonoBehaviour{ async void Start() { string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "filetoload.txt"); UnityWebRequest request = UnityWebRequest.Get(filePath); UnityWebRequestAsyncOperation operation = request.SendWebRequest(); while (!operation.isDone) { await Task.Yield(); } if (request.result == UnityWebRequest.Result.Success) { Debug.Log(request.downloadHandler.text); } else { Debug.LogError("Cannot load file at " + filePath); } }}