ソースを参照

3D狗皮膏药之PDF

Void_F 9 ヶ月 前
コミット
857ff70433

+ 6 - 0
Assets/Plugins/museum.jslib

@@ -0,0 +1,6 @@
+mergeInto(LibraryManager.library,
+    {
+        OpenNewWebsite: function (str) {
+            window.open(Pointer_stringify(str));
+        },
+    });

+ 32 - 0
Assets/Plugins/museum.jslib.meta

@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: 29ac0e02351f49249bf9b92891d513cc
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      WebGL: WebGL
+    second:
+      enabled: 1
+      settings: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 233 - 0
Assets/Prefabs/UI/3D/GCZL.prefab

@@ -2528,6 +2528,23 @@ MonoBehaviour:
   - http://www.chatgpt918.top:15001/projectImages/2022/tk.jpg
   - http://www.chatgpt918.top:15001/projectImages/2023/tk.jpg
   photoIndex: 0
+  BY_PdfUrl:
+  - http://www.chatgpt918.top:15001/projectImages/pdf/by_pdf.jpg
+  - http://www.chatgpt918.top:15001/projectImages/pdf/by_pdf1.jpg
+  - http://www.chatgpt918.top:15001/projectImages/pdf/by_pdf2.jpg
+  TK_PdfUrl:
+  - http://www.chatgpt918.top:15001/projectImages/pdf/tk_pdf.jpg
+  - http://www.chatgpt918.top:15001/projectImages/pdf/tk_pdf1.jpg
+  - http://www.chatgpt918.top:15001/projectImages/pdf/tk_pdf2.jpg
+  - http://www.chatgpt918.top:15001/projectImages/pdf/tk_pdf3.jpg
+  pdfIndex: 0
+  BY_PdfDownloadUrl:
+  - http://www.chatgpt918.top:15001/projectImages/pdf/BY_1.pdf
+  TK_PdfDownloadUrl:
+  - http://www.chatgpt918.top:15001/projectImages/pdf/TK_1.pdf
+  - http://www.chatgpt918.top:15001/projectImages/pdf/TK_2.pdf
+  - http://www.chatgpt918.top:15001/projectImages/pdf/TK_3.pdf
+  - http://www.chatgpt918.top:15001/projectImages/pdf/TK_4.pdf
 --- !u!1 &4452380874908355294
 GameObject:
   m_ObjectHideFlags: 0
@@ -3073,6 +3090,141 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u5206\u7C7B:"
+--- !u!1 &4915468641392692563
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8110580898130128142}
+  - component: {fileID: 1536144164001275670}
+  - component: {fileID: 8614699360409155982}
+  - component: {fileID: 7593292315218695284}
+  - component: {fileID: 3403959896276329373}
+  m_Layer: 5
+  m_Name: DownButton
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8110580898130128142
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4915468641392692563}
+  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:
+  - {fileID: 254979009190617321}
+  m_Father: {fileID: 4051474671842082500}
+  m_RootOrder: 14
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 1557, y: -864}
+  m_SizeDelta: {x: 128, y: 40}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1536144164001275670
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4915468641392692563}
+  m_CullTransparentMesh: 1
+--- !u!114 &8614699360409155982
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4915468641392692563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 726a5caf9dca86e47ad9bc5d753a7564, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &7593292315218695284
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4915468641392692563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 8614699360409155982}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!225 &3403959896276329373
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4915468641392692563}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!1 &4936610124545253557
 GameObject:
   m_ObjectHideFlags: 0
@@ -4263,6 +4415,7 @@ RectTransform:
   - {fileID: 8481814305050007921}
   - {fileID: 8625270066674768233}
   - {fileID: 940483529556732293}
+  - {fileID: 8110580898130128142}
   m_Father: {fileID: 4452380874907860040}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -4828,6 +4981,86 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: 2023/08/12
+--- !u!1 &8137734702966113029
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 254979009190617321}
+  - component: {fileID: 6579631255840295299}
+  - component: {fileID: 63005927712789716}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &254979009190617321
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8137734702966113029}
+  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: 8110580898130128142}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 128, y: 40}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6579631255840295299
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8137734702966113029}
+  m_CullTransparentMesh: 1
+--- !u!114 &63005927712789716
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8137734702966113029}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 85c13d115126ca04ca985ec0156f4c61, type: 3}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u4E0B\u8F7DPDF"
 --- !u!1 &8229156708626318363
 GameObject:
   m_ObjectHideFlags: 0

ファイルの差分が大きいため隠しています
+ 98 - 1
Assets/Scene 1.unity


+ 121 - 4
Assets/Scripts/UI/UIView/3D/GCZLLayer.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Runtime.InteropServices;
 using UnityEngine;
 using UnityAsync;
 using WaitUntil = UnityAsync.WaitUntil;
@@ -57,7 +58,18 @@ public class GCZLLayer : MonoBehaviour
     public string[] BY_PhotoUrl;
     public string[] TK_PhotoUrl;
     public int photoIndex;
+
+    public string[] BY_PdfUrl;
+    public string[] TK_PdfUrl;
+    public int pdfIndex;
+    public string[] BY_PdfDownloadUrl;
+    public string[] TK_PdfDownloadUrl;
+    private Button downloadPdfButton;
+    private int showTypeIndex = 0;
     
+    [DllImport("__Internal")]
+    private static extern void OpenNewWebsite(string str);
+
     private void Awake()
     {
         InfoPanel = this.transform.Find("InfoPanel").gameObject;
@@ -108,9 +120,34 @@ public class GCZLLayer : MonoBehaviour
         showFrame.texture = modelRT;
 
         lastPhotoButton = DetailPanel.transform.Find("LastPhotoButton").GetComponent<Button>();
-        lastPhotoButton.onClick.AddListener(()=>ChangePhoto(-1));
+        lastPhotoButton.onClick.AddListener(()=>
+        {
+            switch (showTypeIndex)
+            {
+                case 1:
+                    ChangePDF((-1));
+                    break;
+                case 2:
+                    ChangePhoto(-1);
+                    break;
+            }
+        });
         nextPhotoButton = DetailPanel.transform.Find("NextPhotoButton").GetComponent<Button>();
-        nextPhotoButton.onClick.AddListener(()=>ChangePhoto(1));
+        nextPhotoButton.onClick.AddListener(()=>
+        {
+            switch (showTypeIndex)
+            {
+                case 1:
+                    ChangePDF((1));
+                    break;
+                case 2:
+                    ChangePhoto(1);
+                    break;
+            }
+        });
+
+        downloadPdfButton = DetailPanel.transform.Find("DownButton").GetComponent<Button>();
+        downloadPdfButton.onClick.AddListener(DownLoadPDF);
         
         OpenAniButton = DetailPanel.transform.Find("OpenAniButton").GetComponent<Button>();
         OpenAniButton.onClick.AddListener(() => { ActionInstance._Instance.ModelAni_On?.Invoke(); });
@@ -274,13 +311,16 @@ public class GCZLLayer : MonoBehaviour
     public void ResetDetailPanel()
     {
         photoIndex = 0;
+        pdfIndex = 0;
         lastPhotoButton.gameObject.SetActive(false);
         nextPhotoButton.gameObject.SetActive(false);
+        downloadPdfButton.gameObject.SetActive(false);
         DetailShowType(0);
     }
 
     public void DetailShowType(int index)
     {
+        showTypeIndex = index;
         switch (index)
         {
             case 0:
@@ -295,6 +335,7 @@ public class GCZLLayer : MonoBehaviour
                                                    currentData.name_pri.Equals("TaoKou"));
                 CloseAniButton.gameObject.SetActive(currentData.name_pri.Equals("BuYuan") ||
                                                     currentData.name_pri.Equals("TaoKou"));
+                downloadPdfButton.gameObject.SetActive(false);
                 break;
             case 1:
                 detail_modelCG.alpha = 0.6f;
@@ -302,10 +343,11 @@ public class GCZLLayer : MonoBehaviour
                 detail_photoCG.alpha = 0.6f;
                 detail_videoCG.alpha = 0.6f;
                 showFrame.texture = null;
-                lastPhotoButton.gameObject.SetActive(false);
-                nextPhotoButton.gameObject.SetActive(false);
+                lastPhotoButton.gameObject.SetActive(true);
+                nextPhotoButton.gameObject.SetActive(true);
                 OpenAniButton.gameObject.SetActive(false);
                 CloseAniButton.gameObject.SetActive(false);
+                ChangePDF(0);
                 break;
             case 2:
                 detail_modelCG.alpha = 0.6f;
@@ -317,6 +359,7 @@ public class GCZLLayer : MonoBehaviour
                 nextPhotoButton.gameObject.SetActive(true);
                 OpenAniButton.gameObject.SetActive(false);
                 CloseAniButton.gameObject.SetActive(false);
+                downloadPdfButton.gameObject.SetActive(false);
                 ChangePhoto(0);
                 break;
             case 3:
@@ -329,6 +372,7 @@ public class GCZLLayer : MonoBehaviour
                 nextPhotoButton.gameObject.SetActive(false);
                 OpenAniButton.gameObject.SetActive(false);
                 CloseAniButton.gameObject.SetActive(false);
+                downloadPdfButton.gameObject.SetActive(false);
                 break;
         }
     }
@@ -384,4 +428,77 @@ public class GCZLLayer : MonoBehaviour
             }
         }
     }
+    
+    
+    public void ChangePDF(int moveIndex)
+    {
+        if (currentData.name_pri.Equals("BuYuan"))
+        {
+            switch (moveIndex)
+            {
+                case -1:
+                    if (pdfIndex - 1 >= 0)
+                    {
+                        pdfIndex--;
+                        TextureLoadHelp._Instance.LoadTexFromUrl(BY_PdfUrl[pdfIndex], showFrame);
+                    }
+                    break;
+                case 0:
+                    downloadPdfButton.gameObject.SetActive(true);
+                    pdfIndex = 0;
+                    TextureLoadHelp._Instance.LoadTexFromUrl(BY_PdfUrl[pdfIndex], showFrame);
+                    break;
+                case 1:
+                    if (pdfIndex + 1 <= BY_PdfUrl.Length-1)
+                    {
+                        pdfIndex++;
+                        TextureLoadHelp._Instance.LoadTexFromUrl(BY_PdfUrl[pdfIndex], showFrame);
+                    }
+                    break;
+            }
+        }
+        if (currentData.name_pri.Equals("TaoKou"))
+        {
+            switch (moveIndex)
+            {
+                case -1:
+                    if (pdfIndex - 1 >= 0)
+                    {
+                        pdfIndex--;
+                        TextureLoadHelp._Instance.LoadTexFromUrl(TK_PdfUrl[pdfIndex], showFrame);
+                    }
+                    break;
+                case 0:
+                    downloadPdfButton.gameObject.SetActive(true);
+                    pdfIndex = 0;
+                    TextureLoadHelp._Instance.LoadTexFromUrl(TK_PdfUrl[pdfIndex], showFrame);
+                    break;
+                case 1:
+                    if (pdfIndex + 1 <= TK_PdfUrl.Length-1)
+                    {
+                        pdfIndex++;
+                        TextureLoadHelp._Instance.LoadTexFromUrl(TK_PdfUrl[pdfIndex], showFrame);
+                    }
+                    break;
+            }
+        }
+    }
+
+    public void DownLoadPDF()
+    {
+        if (currentData.name_pri.Equals("BuYuan"))
+        {
+            for (int i = 0; i < BY_PdfDownloadUrl.Length; i++)
+            {
+                OpenNewWebsite(BY_PdfDownloadUrl[i]);     
+            }
+        }
+        if (currentData.name_pri.Equals("TaoKou"))
+        {
+            for (int i = 0; i < BY_PdfDownloadUrl.Length; i++)
+            {
+                OpenNewWebsite(TK_PdfDownloadUrl[i]);     
+            }
+        }
+    }
 }

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません