Преглед на файлове

3d视频监控加上封面代码

Void_F преди 5 дни
родител
ревизия
853de47080
променени са 2 файла, в които са добавени 54 реда и са изтрити 2 реда
  1. 2 1
      Assets/Prefabs/UI/Item/3D_ObsItem.prefab
  2. 52 1
      Assets/Scripts/UI/Item/SPJK_ObsItem.cs

+ 2 - 1
Assets/Prefabs/UI/Item/3D_ObsItem.prefab

@@ -92,7 +92,7 @@ GameObject:
   - component: {fileID: 2584059633157281254}
   - component: {fileID: 6487280162381195576}
   m_Layer: 5
-  m_Name: RawImage
+  m_Name: fm
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -500,6 +500,7 @@ MonoBehaviour:
   typeText: {fileID: 7646881027709608283}
   codeText: {fileID: 5915123928582573810}
   updataTimeText: {fileID: 7156416251939125383}
+  fm: {fileID: 6487280162381195576}
 --- !u!114 &2631554445738824792
 MonoBehaviour:
   m_ObjectHideFlags: 0

+ 52 - 1
Assets/Scripts/UI/Item/SPJK_ObsItem.cs

@@ -2,6 +2,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using UnityEngine.Networking;
 using UnityEngine.UI;
 
 public class SPJK_ObsItem : MonoBehaviour
@@ -11,6 +12,53 @@ public class SPJK_ObsItem : MonoBehaviour
     public Text typeText;
     public Text codeText;
     public Text updataTimeText;
+
+    public RawImage fm;
+    
+    public static Dictionary<string, Texture> OBSTexLibrary = new Dictionary<string, Texture>();
+    
+    private void Start()
+    {
+        ActionInstance._Instance.obsFmUpdata += OnGetFmUpdate;
+    }
+
+    private void OnDestroy()
+    {
+        ActionInstance._Instance.obsFmUpdata -= OnGetFmUpdate;
+    }
+    
+    private void OnEnable()
+    {
+        if (!havePic && _data != null) {
+            // Debug.Log(_data.targetName);
+            string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);
+            StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + hashName + ".jpg"));
+        }
+    }
+    private void OnGetFmUpdate(string name)
+    {
+        if (name.Equals(ObsPlayerPanel.GetHashedName(_data.targetName)))
+        {
+            StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + name + ".jpg"));
+        }
+    }
+    bool havePic = false;
+    IEnumerator LoadFmTex(string url)
+    {
+        UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
+        yield return www.SendWebRequest();
+        string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);
+        if (www.isDone && www.result == UnityWebRequest.Result.Success)
+        {
+            fm.texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
+            havePic = true;
+            if (!OBSTexLibrary.ContainsKey(ServerAddress.Server_TextureSavePath + hashName + ".jpg"))
+                OBSTexLibrary.Add(ServerAddress.Server_TextureSavePath + hashName + ".jpg", fm.texture);
+        }
+        www.disposeDownloadHandlerOnDispose = true;
+        www.Dispose();
+    }
+
     
     public void SetData(ObsData data)
     {
@@ -25,6 +73,9 @@ public class SPJK_ObsItem : MonoBehaviour
                 typeText.text = "分类:<color=#FFFFFF>套口</color>";
                 break;
         }
-        codeText.text = $"编码:<color=#FFFFFF>{_data.channelId}</color>";;
+        codeText.text = $"编码:<color=#FFFFFF>{_data.channelId}</color>";
+        
+        string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);
+        StartCoroutine(LoadFmTex( ServerAddress.Server_TextureSavePath + hashName + ".jpg"));
     }
 }