chunk 1: core gameplay scripts scenes runtime assets

This commit is contained in:
2026-04-06 11:02:34 +03:00
parent fa0388bc79
commit 0d11a097d8
703 changed files with 2292651 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
using UnityEngine;
using UnityEngine.Video;
/// <summary>
/// Minimal script to ensure a VideoPlayer uses a StreamingAssets video path at runtime.
/// It sets the VideoPlayer.url to the file inside StreamingAssets and auto-plays once prepared.
/// No scene management, no events keep those externally.
/// </summary>
[RequireComponent(typeof(VideoPlayer))]
public class SplashVideoPlayer : MonoBehaviour
{
[Tooltip("Relative video file name inside StreamingAssets (e.g. 'uncaptured_splash.mp4').")]
public string videoFileName = "uncaptured_splash.mp4";
[Tooltip("Fallback video file for Unity editor (WebM/VP8 for Linux compatibility).")]
public string editorVideoFileName = "uncaptured_splash_editor.webm";
[Tooltip("Automatically play once prepared.")]
public bool autoPlay = true;
private VideoPlayer _videoPlayer;
private void Awake()
{
_videoPlayer = GetComponent<VideoPlayer>();
ConfigureVideoPlayer();
SetUrl();
_videoPlayer.prepareCompleted += OnPrepared;
_videoPlayer.errorReceived += OnError;
_videoPlayer.Prepare();
}
private void ConfigureVideoPlayer()
{
_videoPlayer.playOnAwake = false; // We control when to play
_videoPlayer.source = VideoSource.Url;
// Choose a render mode that fits your setup; here we assume RenderTexture or Camera Near Plane set in inspector
}
private void SetUrl()
{
// Use WebM for editor (better Linux support), MP4 for builds
string fileToUse = videoFileName;
#if UNITY_EDITOR
if (!string.IsNullOrEmpty(editorVideoFileName))
{
fileToUse = editorVideoFileName;
}
#endif
if (string.IsNullOrEmpty(fileToUse))
{
Debug.LogWarning("SplashVideoPlayer: videoFileName is empty.");
return;
}
string path = System.IO.Path.Combine(Application.streamingAssetsPath, fileToUse);
if (!path.StartsWith("file://"))
path = "file://" + path;
_videoPlayer.url = path;
Debug.Log($"[SplashVideoPlayer] Loading video: {path}");
}
private void OnPrepared(VideoPlayer vp)
{
if (autoPlay)
{
vp.Play();
}
}
private void OnError(VideoPlayer vp, string message)
{
Debug.LogWarning($"SplashVideoPlayer: video error -> {message}");
}
}