Browse Source

播放video

slambb 9 months ago
parent
commit
91b1021dc2

+ 80 - 111
Assets/Insertcoin/Resources/StandbyVideoManager.prefab

@@ -1,107 +1,5 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1 &311405674673404885
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 7089225690518360587}
-  - component: {fileID: 1261380716769390242}
-  - component: {fileID: 4680645708847798182}
-  - component: {fileID: 24415942642918589}
-  m_Layer: 5
-  m_Name: Canvas
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &7089225690518360587
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 311405674673404885}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 0, y: 0, z: 0}
-  m_ConstrainProportionsScale: 0
-  m_Children:
-  - {fileID: 5707355226056441729}
-  m_Father: {fileID: 1276618026847120149}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
-  m_Pivot: {x: 0, y: 0}
---- !u!223 &1261380716769390242
-Canvas:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 311405674673404885}
-  m_Enabled: 1
-  serializedVersion: 3
-  m_RenderMode: 0
-  m_Camera: {fileID: 0}
-  m_PlaneDistance: 100
-  m_PixelPerfect: 0
-  m_ReceivesEvents: 1
-  m_OverrideSorting: 0
-  m_OverridePixelPerfect: 0
-  m_SortingBucketNormalizedSize: 0
-  m_VertexColorAlwaysGammaSpace: 0
-  m_AdditionalShaderChannelsFlag: 0
-  m_SortingLayerID: 0
-  m_SortingOrder: 0
-  m_TargetDisplay: 0
---- !u!114 &4680645708847798182
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 311405674673404885}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_UiScaleMode: 0
-  m_ReferencePixelsPerUnit: 100
-  m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 800, y: 600}
-  m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 0
-  m_PhysicalUnit: 3
-  m_FallbackScreenDPI: 96
-  m_DefaultSpriteDPI: 96
-  m_DynamicPixelsPerUnit: 1
-  m_PresetInfoIsWorld: 0
---- !u!114 &24415942642918589
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 311405674673404885}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_IgnoreReversedGraphics: 1
-  m_BlockingObjects: 0
-  m_BlockingMask:
-    serializedVersion: 2
-    m_Bits: 4294967295
 --- !u!1 &4861144799134537695
 GameObject:
   m_ObjectHideFlags: 0
@@ -128,12 +26,12 @@ RectTransform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 4861144799134537695}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 7089225690518360587}
+  m_Father: {fileID: 3645032955081934617}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
@@ -169,7 +67,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_Texture: {fileID: 0}
+  m_Texture: {fileID: 8400000, guid: 3892396f702a81048ac5dc04f4be88f3, type: 2}
   m_UVRect:
     serializedVersion: 2
     x: 0
@@ -219,7 +117,10 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 1276618026847120149}
+  - component: {fileID: 3645032955081934617}
+  - component: {fileID: 630400272353400636}
+  - component: {fileID: 4032723751134035338}
+  - component: {fileID: 5969612312172951893}
   - component: {fileID: 4933924220263239611}
   m_Layer: 0
   m_Name: StandbyVideoManager
@@ -228,8 +129,8 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!4 &1276618026847120149
-Transform:
+--- !u!224 &3645032955081934617
+RectTransform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
@@ -237,13 +138,80 @@ Transform:
   m_GameObject: {fileID: 7519419907736105347}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalScale: {x: 0, y: 0, z: 0}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 7089225690518360587}
+  - {fileID: 5707355226056441729}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!223 &630400272353400636
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7519419907736105347}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 99
+  m_TargetDisplay: 0
+--- !u!114 &4032723751134035338
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7519419907736105347}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!114 &5969612312172951893
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7519419907736105347}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
 --- !u!114 &4933924220263239611
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -258,5 +226,6 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   videoDisplay: {fileID: 1035248642793421658}
   videoPlayer: {fileID: 1907543398391466497}
-  uiPanel: {fileID: 311405674673404885}
+  uiPanel: {fileID: 0}
   standbyTime: 10
+  renderTexture: {fileID: 8400000, guid: 3892396f702a81048ac5dc04f4be88f3, type: 2}

+ 33 - 21
Assets/Insertcoin/Script/StandbyVideoManager.cs

@@ -8,6 +8,7 @@ public class StandbyVideoManager : MonoBehaviour
     public VideoPlayer videoPlayer; // VideoPlayer 组件
     public GameObject uiPanel;  // UI 界面的根面板
     public float standbyTime = 10f;  // 待机时间(秒)
+    public RenderTexture renderTexture;  // 用于渲染视频的 RenderTexture
 
     private bool isVideoPlaying = false;
     private float lastInputTime;
@@ -17,34 +18,63 @@ public class StandbyVideoManager : MonoBehaviour
     public static void Create()
     {
         if (_ins) return;
+
         GameObject o = Instantiate(Resources.Load<GameObject>("StandbyVideoManager"));
         DontDestroyOnLoad(o);
         _ins = o.GetComponent<StandbyVideoManager>();
+
         //添加一个父物体
         o.transform.SetParent(ViewMgr.Instance.transform.Find("1").transform);
-        CanvasScaler canvasScaler = o.transform.Find("Canvas").GetComponent<CanvasScaler>();
+        CanvasScaler canvasScaler = o.GetComponent<CanvasScaler>();
         if (canvasScaler != null)
         {
             Destroy(canvasScaler);
         }
-        RectTransform rectTransform = canvasScaler.GetComponent<RectTransform>();
+
+        RectTransform rectTransform = o.GetComponent<RectTransform>();
         rectTransform.anchorMin = Vector2.zero;      // 左下角对齐父级
         rectTransform.anchorMax = Vector2.one;       // 右上角对齐父级
         rectTransform.offsetMin = Vector2.zero;      // 移除左下角偏移
         rectTransform.offsetMax = Vector2.zero;      // 移除右上角偏移
         rectTransform.localScale = Vector3.one;      // 确保缩放为 1
 
+        // 激活 videoDisplay 并开始播放视频
         _ins.TriggerStandbyMode();
     }
 
     void Start()
     {
-        videoDisplay.gameObject.SetActive(false);  // 初始时隐藏视频
+        // 确保 RawImage 的纹理是设置为 RenderTexture
+        videoDisplay.texture = renderTexture;
+
+        // 确保 VideoPlayer 的 targetTexture 正确设置
+        videoPlayer.targetTexture = renderTexture;
+
+        // 初始时隐藏视频
+       // videoDisplay.gameObject.SetActive(false);
         videoPlayer.loopPointReached += OnVideoEnd;  // 监听视频播放完毕
         videoPlayer.isLooping = true;  // 设置视频循环播放
+
         ResetIdleTimer();  // 初始化计时器
     }
 
+    public void PlayStandbyVideo()
+    {
+        // 先确保 videoDisplay 可见
+        videoDisplay.gameObject.SetActive(true);  // 显示视频
+        videoPlayer.Play();
+        isVideoPlaying = true;
+    }
+
+    public void StopVideo()
+    {
+        videoPlayer.Stop();
+        videoDisplay.gameObject.SetActive(false);  // 隐藏视频
+        isVideoPlaying = false;
+        ResetIdleTimer();
+    }
+
+
     void Update()
     {
         DetectUserInput();
@@ -65,7 +95,6 @@ public class StandbyVideoManager : MonoBehaviour
     // 检测用户交互重置计时器
     private void DetectUserInput()
     {
-        // 用户输入重置计时器
         if (Input.anyKeyDown || Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0)
         {
             ResetIdleTimer();
@@ -78,23 +107,6 @@ public class StandbyVideoManager : MonoBehaviour
         lastInputTime = Time.time;
     }
 
-    // 进入待机视频
-    public void PlayStandbyVideo()
-    {
-        videoDisplay.gameObject.SetActive(true);  // 显示视频
-        videoPlayer.Play();
-        isVideoPlaying = true;
-    }
-
-    // 停止视频,回到 UI
-    public void StopVideo()
-    {
-        videoPlayer.Stop();
-        videoDisplay.gameObject.SetActive(false);  // 隐藏视频
-        isVideoPlaying = false;
-        ResetIdleTimer();
-    }
-
     // 视频播放结束后自动回到UI
     private void OnVideoEnd(VideoPlayer vp)
     {