Переглянути джерело

4/20更新

修复切换到URP之后PostProcessing的问题。添加状态页面,显示学会的指令。
Jees 1 місяць тому
батько
коміт
c4b25806b1
38 змінених файлів з 766 додано та 108 видалено
  1. 0 4
      Assembly-CSharp-firstpass.Player.csproj
  2. 0 8
      Assembly-CSharp-firstpass.csproj
  3. 1 4
      Assembly-CSharp.Player.csproj
  4. 1 8
      Assembly-CSharp.csproj
  5. 1 1
      Assets/DefaultVolumeProfile.asset
  6. 7 6
      Assets/Layers/Grass Layer.terrainlayer
  7. 2 1
      Assets/Layers/Wood Layer.terrainlayer
  8. 46 0
      Assets/Resources/Data/languages.json
  9. 1 1
      Assets/Resources/Dog/Skin/shibaInu/grey.mat
  10. 2 1
      Assets/Resources/MessageBox/GlassBlur.mat
  11. 69 1
      Assets/Resources/Status/StatusController.cs
  12. 5 3
      Assets/Resources/Status/StatusUI.uxml
  13. 3 3
      Assets/Resources/VoiceAndManu/VoiceController.cs
  14. 8 0
      Assets/Scenes/Home.meta
  15. 131 28
      Assets/Scenes/Home.unity
  16. 73 3
      Assets/Scenes/Home_Profiles/VCam Dog Profile(URP).asset
  17. 92 2
      Assets/Scenes/Login.unity
  18. 62 0
      Assets/Scenes/Login/VCamLoginVolume.asset
  19. 8 0
      Assets/Scenes/Login/VCamLoginVolume.asset.meta
  20. 8 0
      Assets/Scenes/Login_Profiles.meta
  21. 15 0
      Assets/Scenes/Login_Profiles/V Cam Login Profile.asset
  22. 8 0
      Assets/Scenes/Login_Profiles/V Cam Login Profile.asset.meta
  23. 6 5
      Assets/Scripts/Develop Script/TestSetup.cs
  24. 2 1
      Assets/Scripts/GameControllers/DogProperty.cs
  25. 10 0
      Assets/Scripts/GameControllers/UserData.cs
  26. 2 0
      Assets/Scripts/GameControllers/UserData.cs.meta
  27. 1 1
      Assets/Scripts/Home/DogInScene.cs
  28. 55 12
      Assets/Scripts/Home/HomeController.cs
  29. 1 1
      Assets/Scripts/Home/HomeSunLight.cs
  30. 1 1
      Assets/Scripts/Login/InitDogUIController.cs
  31. 0 1
      Assets/Scripts/Login/LoginController.cs
  32. 1 1
      Assets/Scripts/Login/SunMovement.cs
  33. 1 1
      Assets/Scripts/Playground/AirWallDetection.cs
  34. BIN
      Assets/Terrain/LoginTerrain.asset
  35. BIN
      Assets/Texture/grassNormalmap.png
  36. 143 0
      Assets/Texture/grassNormalmap.png.meta
  37. 0 1
      Packages/manifest.json
  38. 0 9
      Packages/packages-lock.json

+ 0 - 4
Assembly-CSharp-firstpass.Player.csproj

@@ -937,10 +937,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Runtime">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Runtime.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.Burst">
       <HintPath>Library\ScriptAssemblies\Unity.Burst.dll</HintPath>
       <Private>False</Private>

+ 0 - 8
Assembly-CSharp-firstpass.csproj

@@ -1201,10 +1201,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Editor">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Editor.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.TextMeshPro">
       <HintPath>Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
       <Private>False</Private>
@@ -1241,10 +1237,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Runtime">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Runtime.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.2D.Sprite.Editor">
       <HintPath>Library\ScriptAssemblies\Unity.2D.Sprite.Editor.dll</HintPath>
       <Private>False</Private>

+ 1 - 4
Assembly-CSharp.Player.csproj

@@ -97,6 +97,7 @@
     <Compile Include="Assets\Scripts\Login\RegisterUIController.cs" />
     <Compile Include="Assets\Scripts\Bathroom\BathroomDogComponentInstaller.cs" />
     <Compile Include="Assets\Scripts\GameControllers\GameTool.cs" />
+    <Compile Include="Assets\Scripts\GameControllers\UserData.cs" />
     <Compile Include="Assets\Scripts\Login\CreateOrAdopt.cs" />
     <Compile Include="Assets\Scripts\Bathroom\BathroomController.cs" />
     <Compile Include="Assets\Scripts\Login\ResetUIController.cs" />
@@ -1034,10 +1035,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Runtime">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Runtime.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.Burst">
       <HintPath>Library\ScriptAssemblies\Unity.Burst.dll</HintPath>
       <Private>False</Private>

+ 1 - 8
Assembly-CSharp.csproj

@@ -97,6 +97,7 @@
     <Compile Include="Assets\Scripts\Login\RegisterUIController.cs" />
     <Compile Include="Assets\Scripts\Bathroom\BathroomDogComponentInstaller.cs" />
     <Compile Include="Assets\Scripts\GameControllers\GameTool.cs" />
+    <Compile Include="Assets\Scripts\GameControllers\UserData.cs" />
     <Compile Include="Assets\Scripts\Login\CreateOrAdopt.cs" />
     <Compile Include="Assets\Scripts\Bathroom\BathroomController.cs" />
     <Compile Include="Assets\Scripts\Login\ResetUIController.cs" />
@@ -1298,10 +1299,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Editor">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Editor.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.TextMeshPro">
       <HintPath>Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
       <Private>False</Private>
@@ -1338,10 +1335,6 @@
       <HintPath>Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="Unity.Postprocessing.Runtime">
-      <HintPath>Library\ScriptAssemblies\Unity.Postprocessing.Runtime.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="Unity.2D.Sprite.Editor">
       <HintPath>Library\ScriptAssemblies\Unity.2D.Sprite.Editor.dll</HintPath>
       <Private>False</Private>

+ 1 - 1
Assets/DefaultVolumeProfile.asset

@@ -716,7 +716,7 @@ MonoBehaviour:
   active: 1
   mode:
     m_OverrideState: 1
-    m_Value: 0
+    m_Value: 2
   gaussianStart:
     m_OverrideState: 1
     m_Value: 10

+ 7 - 6
Assets/Layers/Grass Layer.terrainlayer

@@ -8,15 +8,16 @@ TerrainLayer:
   m_PrefabAsset: {fileID: 0}
   m_Name: Grass Layer
   m_DiffuseTexture: {fileID: 2800000, guid: 4bddad9237c3757428b2c84c57a7117b, type: 3}
-  m_NormalMapTexture: {fileID: 0}
+  m_NormalMapTexture: {fileID: 2800000, guid: 731ac099e76a01f48bf8067ef1d6cd08, type: 3}
   m_MaskMapTexture: {fileID: 0}
-  m_TileSize: {x: 2, y: 2}
+  m_TileSize: {x: 3, y: 3}
   m_TileOffset: {x: 0, y: 0}
   m_Specular: {r: 0, g: 0, b: 0, a: 0}
   m_Metallic: 0
-  m_Smoothness: 0
-  m_NormalScale: 1
+  m_Smoothness: 0.316
+  m_NormalScale: 0.25
   m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0}
-  m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1}
+  m_DiffuseRemapMax: {x: 0.98656106, y: 1, z: 0.9858491, w: 1}
   m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0}
-  m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1}
+  m_MaskMapRemapMax: {x: 1, y: 0.25, z: 1, w: 1}
+  m_SmoothnessSource: 1

+ 2 - 1
Assets/Layers/Wood Layer.terrainlayer

@@ -7,7 +7,7 @@ TerrainLayer:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_Name: Wood Layer
-  m_DiffuseTexture: {fileID: 2800000, guid: 0f78dd2cc4168804aa822e25c2a0e627, type: 3}
+  m_DiffuseTexture: {fileID: 0}
   m_NormalMapTexture: {fileID: 0}
   m_MaskMapTexture: {fileID: 0}
   m_TileSize: {x: 2, y: 2}
@@ -20,3 +20,4 @@ TerrainLayer:
   m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1}
   m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0}
   m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1}
+  m_SmoothnessSource: 1

+ 46 - 0
Assets/Resources/Data/languages.json

@@ -359,6 +359,10 @@
             "status": {
                 "en": "Status:",
                 "zh-cn": "状态:"
+            },
+            "command": {
+                "en": "He can understand:",
+                "zh-cn": "可以听懂的口令:"
             }
         },
         "button": {
@@ -425,6 +429,48 @@
                 "zh-cn": "它看起来胖成一个球了"
             }
         },
+        "command": {
+            "none": {
+                "en": "None",
+                "zh-cn": "无"
+            },
+            "Sit": {
+                "en": "Sit",
+                "zh-cn": "坐下"
+            },
+            "Stand": {
+                "en": "Stand",
+                "zh-cn": "站立"
+            },
+            "LieDown": {
+                "en": "Lie down",
+                "zh-cn": "躺下"
+            },
+            "TurnL": {
+                "en": "Spin Left",
+                "zh-cn": "左转"
+            },
+            "TurnR": {
+                "en": "Spin Right",
+                "zh-cn": "右转"
+            },
+            "Bark": {
+                "en": "Bark",
+                "zh-cn": "叫"
+            },
+            "Hug": {
+                "en": "Hug",
+                "zh-cn": "抱抱"
+            },
+            "Death": {
+                "en": "Play dead",
+                "zh-cn": "打滚"
+            },
+            "Rotate": {
+                "en": "Rotate",
+                "zh-cn": "转圈"
+            }
+        },
         "message":{
             "scan_QRcode": {
                 "en": "Please let your friend scan the QR code within <<second>> seconds.",

+ 1 - 1
Assets/Resources/Dog/Skin/shibaInu/grey.mat

@@ -53,7 +53,7 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 0}
+        m_Texture: {fileID: 2800000, guid: 79268d561a70e004db2c1f42f2d29a07, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:

+ 2 - 1
Assets/Resources/MessageBox/GlassBlur.mat

@@ -45,7 +45,7 @@ Material:
         m_Offset: {x: 0, y: 0}
     - _MainTex:
         m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
+        m_Scale: {x: 0.3, y: 0.4}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:
         m_Texture: {fileID: 0}
@@ -65,6 +65,7 @@ Material:
     - _BumpScale: 1
     - _Cutoff: 0.5
     - _DetailNormalMapScale: 1
+    - _Distortion: 0.5
     - _DstBlend: 0
     - _GlossMapScale: 1
     - _Glossiness: 0.5

+ 69 - 1
Assets/Resources/Status/StatusController.cs

@@ -12,7 +12,7 @@ using UnityEngine.UIElements;
 public class StatusController : MonoBehaviour
 {
     private Button backButton, cancelButton;
-    private Label nameLabel, genderLabel, breedLabel, hostLabel, hostnameLabel, ageLabel, ageValueLabel, statusLabel, statusValueLabel;
+    private Label nameLabel, genderLabel, breedLabel, hostLabel, hostnameLabel, ageLabel, ageValueLabel,commandLabel, commandValueLabel, statusLabel, statusValueLabel;
     private Label leftArrow, rightArrow;
     private Label addLabel, transfer, remove, callback;
     private Label transferMsgLabel;
@@ -36,6 +36,8 @@ public class StatusController : MonoBehaviour
         hostnameLabel = root.Q<Label>("hostname");
         ageLabel = root.Q<Label>("age");
         ageValueLabel = root.Q<Label>("ageValue");
+        commandLabel = root.Q<Label>("command");
+        commandValueLabel = root.Q<Label>("commandValue");   
         statusLabel = root.Q<Label>("status");
         statusValueLabel = root.Q<Label>("statusValue");
         selectElement = root.Q("selectElement");
@@ -121,6 +123,7 @@ public class StatusController : MonoBehaviour
             StatusPageUpdate();
             LabelLanguageSetting();
             StatusSummary();
+            CommandSummary();
         }
     }
 
@@ -187,9 +190,74 @@ public class StatusController : MonoBehaviour
         ageLabel.text = textValue;
         textValue = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "label", "status", EnviromentSetting.languageCode });
         statusLabel.text = textValue;
+        textValue = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "label", "command", EnviromentSetting.languageCode });
+        commandLabel.text = textValue;
         textValue = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "message", "scan_QRcode", EnviromentSetting.languageCode });
         transferMsgBasic = textValue;
     }
+
+    void CommandSummary()
+    {
+        // 先清空状态文字,应对切换多只狗
+        commandValueLabel.text = null;
+        // 汇总宠物状态
+        string summary = String.Empty;
+        if (puppy.commandSit)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Sit", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandStand)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Stand", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandBark)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Bark", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandRotate)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Rotate", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandLieDown)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "LieDown", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandHug)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Hug", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandDeath)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "Death", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandTurnL)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "TurnL", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (puppy.commandTurnR)
+        {
+            summary += GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "TurnR", EnviromentSetting.languageCode });
+            summary += ", ";
+        }
+        if (summary == String.Empty)
+        {
+            summary = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "statusUI", "command", "none", EnviromentSetting.languageCode });
+        }
+        else
+        {
+            // 去掉最后一个逗号
+            summary = summary.Substring(0, summary.Length - 2);
+            commandValueLabel.text = summary;
+        }
+    }
     void StatusSummary()
     {
         // 先清空状态文字,应对切换多只狗

+ 5 - 3
Assets/Resources/Status/StatusUI.uxml

@@ -9,10 +9,12 @@
         <ui:Label tabindex="-1" text="&lt;Host name&gt;" parse-escape-sequences="true" display-tooltip-when-elided="true" name="hostname" class="Labels" style="top: 82px; left: 101px; height: 40px; width: auto; -unity-text-align: middle-left; right: 5px;" />
         <ui:Label tabindex="-1" text="陪伴天数" parse-escape-sequences="true" display-tooltip-when-elided="true" name="age" class="Labels" style="position: absolute; top: 118px; left: 5px; height: 40px; width: 100px; align-self: auto; align-items: center; justify-content: center; -unity-text-align: middle-left; color: rgb(255, 162, 11);" />
         <ui:Label tabindex="-1" text="&lt;YY:MM:DD&gt;" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ageValue" class="Labels" style="top: 118px; left: 101px; height: 40px; width: auto; -unity-text-align: middle-left; right: 5px;" />
-        <ui:Label tabindex="-1" text="状态" parse-escape-sequences="true" display-tooltip-when-elided="true" name="status" class="Labels" style="position: absolute; top: 180px; left: 30px; height: 40px; width: auto; align-self: auto; align-items: center; justify-content: center; -unity-text-align: lower-left; border-top-width: 0; border-right-width: 0; border-bottom-width: 4px; border-left-width: 0; right: 30px; padding-bottom: 0; padding-right: 0; padding-top: 0; padding-left: 0; color: rgb(255, 162, 11);" />
-        <ui:Label tabindex="-1" text="&lt;To summarize status here&gt;" parse-escape-sequences="true" display-tooltip-when-elided="true" name="statusValue" class="Labels" style="top: 220px; left: 30px; height: auto; width: auto; -unity-text-align: upper-left; right: 93px; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; margin-right: 10px; margin-left: auto; margin-top: auto; margin-bottom: auto;" />
+        <ui:Label tabindex="-1" text="   &lt;command&gt;" parse-escape-sequences="false" display-tooltip-when-elided="true" name="command" class="Labels" style="position: relative; top: 180px; left: auto; height: auto; width: 100%; align-self: flex-start; align-items: center; justify-content: center; -unity-text-align: lower-left; border-top-width: 0; border-right-width: 0; border-bottom-width: 4px; border-left-width: 0; right: auto; padding-bottom: 0; padding-right: 0; padding-top: 0; padding-left: 10px; color: rgb(255, 162, 11);" />
+        <ui:Label tabindex="-1" text="&lt;To summarize command&gt; voiceCommandSkillvoiceCommandSkill" parse-escape-sequences="true" display-tooltip-when-elided="true" name="commandValue" class="Labels" style="top: 200px; left: auto; height: 40px; width: 100%; -unity-text-align: upper-left; right: auto; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; margin-right: 10px; margin-left: auto; margin-top: auto; margin-bottom: auto; position: absolute; white-space: normal;" />
+        <ui:Label tabindex="-1" text="   状态" parse-escape-sequences="true" display-tooltip-when-elided="true" name="status" class="Labels" style="position: absolute; top: 250px; left: auto; height: auto; width: 100%; align-self: auto; align-items: center; justify-content: center; -unity-text-align: lower-left; border-top-width: 0; border-right-width: 0; border-bottom-width: 4px; border-left-width: 0; right: auto; padding-bottom: 0; padding-right: 0; padding-top: 0; padding-left: 10px; color: rgb(255, 162, 11);" />
+        <ui:Label tabindex="-1" text="&lt;To summarize status here&gt;" parse-escape-sequences="true" display-tooltip-when-elided="true" name="statusValue" class="Labels" style="top: 270px; left: auto; height: auto; width: 100%; -unity-text-align: upper-left; right: auto; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; margin-right: auto; margin-left: auto; margin-top: auto; margin-bottom: auto; position: absolute;" />
         <ui:Button text="Back" parse-escape-sequences="true" display-tooltip-when-elided="true" name="back" style="position: relative; bottom: -90%; -unity-text-align: middle-center; white-space: nowrap; top: auto; left: auto; background-color: rgba(22, 131, 245, 0.78); border-left-color: rgba(149, 149, 149, 0); border-right-color: rgba(149, 149, 149, 0); border-top-color: rgba(149, 149, 149, 0); border-bottom-color: rgba(149, 149, 149, 0); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; width: 100px; height: 30px; -unity-font: resource(&apos;Font/MaoKenZhuYuanTi-MaokenZhuyuanTi-2&apos;); font-size: 16px; color: rgb(255, 255, 255); -unity-font-style: bold; -unity-font-definition: url(&quot;project://database/Assets/Font/MaoKenZhuYuanTi-MaokenZhuyuanTi-2.ttf?fileID=12800000&amp;guid=50a63638b44907e46a3fa871d63b7d39&amp;type=3#MaoKenZhuYuanTi-MaokenZhuyuanTi-2&quot;);" />
-        <ui:VisualElement name="subMenu" style="flex-grow: initial; position: absolute; height: 5%; top: auto; width: 60%; background-color: rgba(116, 116, 116, 0); border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; align-items: center; justify-content: space-around; flex-direction: row; bottom: 12%; flex-shrink: initial;">
+        <ui:VisualElement name="subMenu" style="flex-grow: initial; position: absolute; height: 5%; top: auto; width: 60%; background-color: rgba(116, 116, 116, 0); border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; align-items: center; justify-content: space-around; flex-direction: row; bottom: 8%; flex-shrink: initial;">
             <ui:Label name="add" class="subMenu" />
             <ui:Label name="transfer" class="subMenu" style="background-image: url(&quot;project://database/Assets/Packages/2D%20Casual%20UI/Sprite/GUI.png?fileID=21300116&amp;guid=1eaee135ce037439d925cee5e41ce026&amp;type=3#GUI_65&quot;);" />
             <ui:Label name="remove" class="subMenu" style="background-image: url(&quot;project://database/Assets/Packages/2D%20Casual%20UI/Sprite/GUI.png?fileID=21300120&amp;guid=1eaee135ce037439d925cee5e41ce026&amp;type=3#GUI_67&quot;); display: none;" />

+ 3 - 3
Assets/Resources/VoiceAndManu/VoiceController.cs

@@ -149,9 +149,9 @@ public class VoiceController : MonoBehaviour
             File.Delete(filePathZip);
         }
 
-        // 开始录音,最长4
+        // 开始录音,最长8
         startRecTime = DateTime.Now;
-        audioClip = Microphone.Start(null, false, 4, 44100);
+        audioClip = Microphone.Start(null, false, 8, 44100);
         isRecording = true;
         Debug.Log("开始录音...");
     }
@@ -168,7 +168,7 @@ public class VoiceController : MonoBehaviour
         Debug.Log("停止录音...");
         stopRecTime = DateTime.Now;
         TimeSpan duration = stopRecTime - startRecTime;
-        if (duration.TotalSeconds < 0.5) return; // 如果录音时间小于1秒,则不保存文件
+        if (duration.TotalSeconds < 0.5) return; // 如果录音时间小于0.5秒,则不保存文件
 
         // 保存录音为WAV文件和ZIP文件
         SaveWavFile(filePathWav, audioClip);

+ 8 - 0
Assets/Scenes/Home.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9df56ba27e6c3734e9989e978dc856a3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 131 - 28
Assets/Scenes/Home.unity

@@ -12025,6 +12025,7 @@ GameObject:
   m_Component:
   - component: {fileID: 921216528}
   - component: {fileID: 921216527}
+  - component: {fileID: 921216529}
   m_Layer: 0
   m_Name: Home Light
   m_TagString: Untagged
@@ -12041,7 +12042,7 @@ Light:
   m_GameObject: {fileID: 921216526}
   m_Enabled: 1
   serializedVersion: 11
-  m_Type: 2
+  m_Type: 1
   m_Color: {r: 1, g: 1, b: 0.9607843, a: 1}
   m_Intensity: 0.9
   m_Range: 80
@@ -12112,6 +12113,29 @@ Transform:
   m_Children: []
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!114 &921216529
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 921216526}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Version: 3
+  m_UsePipelineSettings: 1
+  m_AdditionalLightsShadowResolutionTier: 2
+  m_LightLayerMask: 1
+  m_RenderingLayers: 1
+  m_CustomShadowLayers: 0
+  m_ShadowLayerMask: 1
+  m_ShadowRenderingLayers: 1
+  m_LightCookieSize: {x: 1, y: 1}
+  m_LightCookieOffset: {x: 0, y: 0}
+  m_SoftShadowQuality: 0
 --- !u!1001 &943629538
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -12422,9 +12446,8 @@ GameObject:
   - component: {fileID: 1189983933}
   - component: {fileID: 1189983934}
   - component: {fileID: 1189983935}
-  - component: {fileID: 1189983937}
   - component: {fileID: 1189983936}
-  m_Layer: 6
+  m_Layer: 0
   m_Name: Camera
   m_TagString: Untagged
   m_Icon: {fileID: 0}
@@ -12611,23 +12634,6 @@ MonoBehaviour:
     m_MipBias: 0
     m_VarianceClampScale: 0.9
     m_ContrastAdaptiveSharpening: 0
---- !u!114 &1189983937
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1189983929}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_IsGlobal: 1
-  priority: 0
-  blendDistance: 0
-  weight: 1
-  sharedProfile: {fileID: 0}
 --- !u!1 &1245550629
 GameObject:
   m_ObjectHideFlags: 0
@@ -13522,7 +13528,9 @@ GameObject:
   m_Component:
   - component: {fileID: 1707757220}
   - component: {fileID: 1707757221}
-  - component: {fileID: 1707757222}
+  - component: {fileID: 1707757223}
+  - component: {fileID: 1707757225}
+  - component: {fileID: 1707757224}
   m_Layer: 0
   m_Name: VCam Dog
   m_TagString: Untagged
@@ -13585,7 +13593,7 @@ MonoBehaviour:
         m_Calls: []
   m_LegacyBlendHint: 0
   m_ComponentOwner: {fileID: 207127012}
---- !u!114 &1707757222
+--- !u!114 &1707757223
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -13594,14 +13602,109 @@ MonoBehaviour:
   m_GameObject: {fileID: 1707757219}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 729aad4491e915a41bda2b8325cf757a, type: 3}
+  m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_FocusTracksTarget: 0
-  m_FocusTracking: 1
-  m_FocusTarget: {fileID: 0}
-  m_FocusOffset: 0
-  m_Profile: {fileID: 11400000, guid: f1071fa168207f74aa4541528a7d1651, type: 2}
+  m_IsGlobal: 1
+  priority: 0
+  blendDistance: 0
+  weight: 1
+  sharedProfile: {fileID: 11400000, guid: 623e2f7043efeb447b7c23ba4264efd9, type: 2}
+--- !u!114 &1707757224
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1707757219}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_RenderShadows: 1
+  m_RequiresDepthTextureOption: 2
+  m_RequiresOpaqueTextureOption: 2
+  m_CameraType: 0
+  m_Cameras: []
+  m_RendererIndex: -1
+  m_VolumeLayerMask:
+    serializedVersion: 2
+    m_Bits: 1
+  m_VolumeTrigger: {fileID: 0}
+  m_VolumeFrameworkUpdateModeOption: 2
+  m_RenderPostProcessing: 1
+  m_Antialiasing: 0
+  m_AntialiasingQuality: 2
+  m_StopNaN: 0
+  m_Dithering: 0
+  m_ClearDepth: 1
+  m_AllowXRRendering: 1
+  m_AllowHDROutput: 1
+  m_UseScreenCoordOverride: 0
+  m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
+  m_RequiresDepthTexture: 0
+  m_RequiresColorTexture: 0
+  m_Version: 2
+  m_TaaSettings:
+    m_Quality: 3
+    m_FrameInfluence: 0.1
+    m_JitterScale: 1
+    m_MipBias: 0
+    m_VarianceClampScale: 0.9
+    m_ContrastAdaptiveSharpening: 0
+--- !u!20 &1707757225
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1707757219}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_Iso: 200
+  m_ShutterSpeed: 0.005
+  m_Aperture: 16
+  m_FocusDistance: 10
+  m_FocalLength: 50
+  m_BladeCount: 5
+  m_Curvature: {x: 2, y: 11}
+  m_BarrelClipping: 0.25
+  m_Anamorphism: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 0
+  orthographic size: 5
+  m_Depth: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 1
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
 --- !u!1 &1726968932
 GameObject:
   m_ObjectHideFlags: 0

+ 73 - 3
Assets/Scenes/Home_Profiles/VCam Dog Profile(URP).asset

@@ -29,11 +29,11 @@ MonoBehaviour:
     m_OverrideState: 0
     m_Value: 0
   focusDistance:
-    m_OverrideState: 1
-    m_Value: 10
+    m_OverrideState: 0
+    m_Value: 5.36
   aperture:
     m_OverrideState: 1
-    m_Value: 2
+    m_Value: 1.4
   focalLength:
     m_OverrideState: 1
     m_Value: 85
@@ -60,3 +60,73 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   components:
   - {fileID: -1084599845642456363}
+  - {fileID: 2480849421263016942}
+  - {fileID: 2710441084306040090}
+--- !u!114 &2480849421263016942
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}
+  m_Name: Tonemapping
+  m_EditorClassIdentifier: 
+  active: 1
+  mode:
+    m_OverrideState: 1
+    m_Value: 2
+  neutralHDRRangeReductionMode:
+    m_OverrideState: 0
+    m_Value: 2
+  acesPreset:
+    m_OverrideState: 0
+    m_Value: 3
+  hueShiftAmount:
+    m_OverrideState: 0
+    m_Value: 0
+  detectPaperWhite:
+    m_OverrideState: 0
+    m_Value: 0
+  paperWhite:
+    m_OverrideState: 0
+    m_Value: 300
+  detectBrightnessLimits:
+    m_OverrideState: 0
+    m_Value: 1
+  minNits:
+    m_OverrideState: 0
+    m_Value: 0.005
+  maxNits:
+    m_OverrideState: 0
+    m_Value: 1000
+--- !u!114 &2710441084306040090
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}
+  m_Name: Vignette
+  m_EditorClassIdentifier: 
+  active: 0
+  color:
+    m_OverrideState: 1
+    m_Value: {r: 0, g: 0, b: 0, a: 1}
+  center:
+    m_OverrideState: 0
+    m_Value: {x: 0.5, y: 0.5}
+  intensity:
+    m_OverrideState: 1
+    m_Value: 0.799
+  smoothness:
+    m_OverrideState: 0
+    m_Value: 0.2
+  rounded:
+    m_OverrideState: 0
+    m_Value: 0

+ 92 - 2
Assets/Scenes/Login.unity

@@ -700,6 +700,77 @@ Transform:
   m_Children: []
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &385225557
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 385225560}
+  - component: {fileID: 385225559}
+  - component: {fileID: 385225558}
+  m_Layer: 0
+  m_Name: Box Volume
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &385225558
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 385225557}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IsGlobal: 0
+  priority: 0
+  blendDistance: 1
+  weight: 1
+  sharedProfile: {fileID: 11400000, guid: bcca51d8177b55842993504d96e3ddbf, type: 2}
+--- !u!65 &385225559
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 385225557}
+  m_Material: {fileID: 0}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_LayerOverridePriority: 0
+  m_IsTrigger: 1
+  m_ProvidesContacts: 0
+  m_Enabled: 1
+  serializedVersion: 3
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!4 &385225560
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 385225557}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 1.5, z: 14}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &415346089
 GameObject:
   m_ObjectHideFlags: 0
@@ -1910,6 +1981,7 @@ GameObject:
   m_Component:
   - component: {fileID: 782739695}
   - component: {fileID: 782739694}
+  - component: {fileID: 782739696}
   m_Layer: 0
   m_Name: V Cam Login
   m_TagString: Untagged
@@ -1972,6 +2044,23 @@ Transform:
   - {fileID: 489317668}
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+--- !u!114 &782739696
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 782739693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IsGlobal: 1
+  priority: 0
+  blendDistance: 0
+  weight: 1
+  sharedProfile: {fileID: 11400000, guid: bcca51d8177b55842993504d96e3ddbf, type: 2}
 --- !u!1 &841672831
 GameObject:
   m_ObjectHideFlags: 0
@@ -2475,10 +2564,10 @@ MonoBehaviour:
   m_RendererIndex: -1
   m_VolumeLayerMask:
     serializedVersion: 2
-    m_Bits: 1
+    m_Bits: 4294967295
   m_VolumeTrigger: {fileID: 0}
   m_VolumeFrameworkUpdateModeOption: 2
-  m_RenderPostProcessing: 0
+  m_RenderPostProcessing: 1
   m_Antialiasing: 0
   m_AntialiasingQuality: 2
   m_StopNaN: 0
@@ -5215,3 +5304,4 @@ SceneRoots:
   - {fileID: 1720136357}
   - {fileID: 1043721802}
   - {fileID: 332222583}
+  - {fileID: 385225560}

+ 62 - 0
Assets/Scenes/Login/VCamLoginVolume.asset

@@ -0,0 +1,62 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
+  m_Name: VCamLoginVolume
+  m_EditorClassIdentifier: 
+  components:
+  - {fileID: 5291387581755713269}
+--- !u!114 &5291387581755713269
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3}
+  m_Name: DepthOfField
+  m_EditorClassIdentifier: 
+  active: 1
+  mode:
+    m_OverrideState: 1
+    m_Value: 2
+  gaussianStart:
+    m_OverrideState: 0
+    m_Value: 10
+  gaussianEnd:
+    m_OverrideState: 0
+    m_Value: 30
+  gaussianMaxRadius:
+    m_OverrideState: 0
+    m_Value: 1
+  highQualitySampling:
+    m_OverrideState: 0
+    m_Value: 0
+  focusDistance:
+    m_OverrideState: 1
+    m_Value: 4
+  aperture:
+    m_OverrideState: 1
+    m_Value: 1.8
+  focalLength:
+    m_OverrideState: 1
+    m_Value: 50
+  bladeCount:
+    m_OverrideState: 0
+    m_Value: 5
+  bladeCurvature:
+    m_OverrideState: 0
+    m_Value: 1
+  bladeRotation:
+    m_OverrideState: 0
+    m_Value: 0

+ 8 - 0
Assets/Scenes/Login/VCamLoginVolume.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bcca51d8177b55842993504d96e3ddbf
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scenes/Login_Profiles.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 11cf62395cfba11409f1fff141f0d4c1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
Assets/Scenes/Login_Profiles/V Cam Login Profile.asset

@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
+  m_Name: V Cam Login Profile
+  m_EditorClassIdentifier: 
+  settings: []

+ 8 - 0
Assets/Scenes/Login_Profiles/V Cam Login Profile.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4813c2841bb1b2a4ea03cfec59499287
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 5
Assets/Scripts/Develop Script/TestSetup.cs

@@ -76,11 +76,12 @@ public class TestSetup : MonoBehaviour
     {
         if (SceneManager.GetActiveScene().name == "Login")
         {
-            PlayerPrefs.SetString("LoginToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiSlRZTlpQOU8iLCJleHAiOjE3NTY1NDUxNzd9.oQgjY_6ZHJVYaYxh2b_LMIkUaCJ9FX8UpxpHOt_yLg8");
-            DateTime now = DateTime.Now;
-            DateTime oneHourAgo = now.AddHours(-1);
-            PlayerPrefs.SetString("LoginTokenTime", oneHourAgo.ToString());
-            
+            //PlayerPrefs.SetString("LoginToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiSlRZTlpQOU8iLCJleHAiOjE3NTY1NDUxNzd9.oQgjY_6ZHJVYaYxh2b_LMIkUaCJ9FX8UpxpHOt_yLg8");
+            //DateTime now = DateTime.Now;
+            //DateTime oneHourAgo = now.AddHours(-1);
+            //PlayerPrefs.SetString("LoginTokenTime", oneHourAgo.ToString());
+            //EnviromentSetting.UUID = "abc";
+
             // PlayerPrefs.DeleteAll();
             // EnviromentSetting.languageCode = "en";
         }

+ 2 - 1
Assets/Scripts/GameControllers/DogProperty.cs

@@ -36,7 +36,7 @@ public class DogProperty
     public int obesity = 75;
     public int intimate = 50;
     public int friendly = 50;
-    public int Obedience = 50;
+    public int obedience = 50;
     public int friendlyToHost = 50;
     public int friendlyToStranger = 50;
     public int friendlyToOtherSSDog = 50;
@@ -47,6 +47,7 @@ public class DogProperty
     public int voiceCommand = 0;       // 识别所有口令能力
     public bool voiceCallEnable = false;
     public bool voiceCommandEnable = false;
+    public bool commandSit, commandStand, commandBark, commandLieDown, commandRotate, commandHug, commandDeath, commandTurnL, commandTurnR;        // 具体的口令能力是否开启
 }
 
 public class DogBreed

+ 10 - 0
Assets/Scripts/GameControllers/UserData.cs

@@ -0,0 +1,10 @@
+using UnityEngine;
+
+/* 用户本地存储数据
+ */
+
+[CreateAssetMenu(fileName = "UserData", menuName = "Scriptable Objects/UseData")]
+public class UserData : ScriptableObject
+{
+    public bool showTips = true; // Home场景是否显示提示
+}

+ 2 - 0
Assets/Scripts/GameControllers/UserData.cs.meta

@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 35a9f9fd9af28674a96dc23b5470bd4c

+ 1 - 1
Assets/Scripts/Home/DogInScene.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections;
 using UnityEngine;
-using UnityEngine.Rendering.PostProcessing;
+//using UnityEngine.Rendering.PostProcessing;
 
 /* 本类用于管理场景中所有狗的状态包括动画状态,随机数分配等
  */

+ 55 - 12
Assets/Scripts/Home/HomeController.cs

@@ -9,8 +9,9 @@ using UnityEngine;
 using UnityEngine.InputSystem;
 using UnityEngine.Animations;
 
-using UnityEngine.Rendering.PostProcessing;
+//using UnityEngine.Rendering.PostProcessing;
 using UnityEngine.SceneManagement;
+using ZXing.Common;
 
 /* 本代码控制室内场景
  * 控制宠物在Home场景动画
@@ -124,11 +125,11 @@ public class HomeController : MonoBehaviour
             {
                 foreach (var dog in dogsInScene)
                 {
-                    if (!dog.dogProperty.voiceCallEnable)
+                    if (dog.dogProperty.voiceCall == 0)
                     {
                         //isTrainingMode = true;
                         sceneMode = SceneMode.TRAINING;
-
+                        dog.RemoveZzzParticle();
                         trainingContent = "voiceCall";
                         trainingDogId = dog.dogProperty.d_id;
                         totalTrainingTimes = 2;
@@ -167,7 +168,8 @@ public class HomeController : MonoBehaviour
                                 var BGM = GameObject.Find("BGM");
                                 if (BGM != null)
                                 {
-                                    BGM.GetComponent<AudioSource>().Stop();
+                                    //BGM.GetComponent<AudioSource>().Stop();
+                                    FadeBGM(BGM.GetComponent<AudioSource>(), false);
                                 }
                                 isTrainingMsgShowed_1 = true;
                             }
@@ -587,15 +589,15 @@ public class HomeController : MonoBehaviour
                     var BGM = GameObject.Find("BGM");
                     if (BGM != null)
                     {
-                        BGM.GetComponent<AudioSource>().Play();
+                        //BGM.GetComponent<AudioSource>().Play();
+                        FadeBGM(BGM.GetComponent<AudioSource>(), true);
                     }
                     // TODO 刷新狗的数据
-                    //string dogJson = data["dogs"].ToString();
-                    //UserProperty.FreshDogInfo(dogJson);
+                    string dogJson = data["dogs"].ToString();
+                    UserProperty.FreshDogInfo(dogJson);
 
                     string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", "record_success", EnviromentSetting.languageCode });
-                    MessageBoxController.ShowMessage(msg);
-
+                    Time.timeScale = 0f;
                     foreach (var dog in dogsInScene)
                     {
                         if (dog.dogProperty.d_id == trainingDogId)
@@ -603,7 +605,7 @@ public class HomeController : MonoBehaviour
                             dog.ExitInteract();
                         }
                     }
-                    ResetTrainingModeParameters();
+                    MessageBoxController.ShowMessage(msg, ResetTrainingModeParameters);
                     this.sceneMode = SceneMode.NORMAL;
                     //isTrainingMode = false;
 
@@ -613,7 +615,8 @@ public class HomeController : MonoBehaviour
                     HomeSoundEffectController.Instance.PlaySoundEffect(4);
 
                     string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", "record_fail", EnviromentSetting.languageCode });
-                    MessageBoxController.ShowMessage(msg);
+                    Time.timeScale = 0f;
+                    MessageBoxController.ShowMessage(msg, RestartTraining);
                 }
             }
             else
@@ -628,7 +631,7 @@ public class HomeController : MonoBehaviour
     #region interact mode
 
     // 重置training相关参数
-    public void ResetTrainingModeParameters()
+    private void ResetTrainingModeParameters()
     {
         //isTrainingMode = false;
         trainingContent = "";
@@ -638,6 +641,15 @@ public class HomeController : MonoBehaviour
         isTrainingMsgShowed_1 = false;
         isTrainingMsgShowed_2 = false;
         Debug.Log("Reset Training Mode Parameters");
+        Time.timeScale = 1f;
+    }
+
+    private void RestartTraining()
+    {
+        currentTrainingTimes = 0;
+        isTrainingMsgShowed_1 = false;
+        isTrainingMsgShowed_2 = false;
+        Time.timeScale = 1f;
     }
 
     // 改变Voice And Menu 菜单形态
@@ -703,6 +715,37 @@ public class HomeController : MonoBehaviour
     }
 
     #endregion
+
+    #region 场景环境控制
+    // 淡入或淡出背景音乐
+    private void FadeBGM(AudioSource bgmSource, bool fadeIn, float duration=2f)
+    {
+        // fadeIn: true表示淡入 false表示淡出
+        if (bgmSource == null) return; // 如果没有 AudioSource,则直接返回
+        StartCoroutine(FadeBGMCoroutine(bgmSource, fadeIn, duration));
+    }
+
+    private IEnumerator FadeBGMCoroutine(AudioSource bgmSource, bool fadeIn, float duration)
+    {
+        float elapsedTime = 0f;
+        float startVolume = bgmSource.volume;
+        float targetVolume = fadeIn ? 1f : 0f; // 淡入目标音量为1,淡出目标音量为0
+
+        while (elapsedTime < duration)
+        {
+            bgmSource.volume = Mathf.Lerp(startVolume, targetVolume, elapsedTime / duration);
+            elapsedTime += Time.deltaTime;
+            yield return null;
+        }
+
+        bgmSource.volume = targetVolume; // 确保音量达到目标值
+
+        if (!fadeIn)
+        {
+            bgmSource.Stop(); // 如果是淡出,停止播放
+        }
+    }
+    #endregion
 }
 
 public enum ItemGroup

+ 1 - 1
Assets/Scripts/Home/HomeSunLight.cs

@@ -81,7 +81,7 @@ public class HomeSunLight : MonoBehaviour
     void NightLightSetting()
     {
         // night time
-        mainLight.intensity = 0.9f;
+        mainLight.intensity = 0.6f;
         mainLight.range = 100f;
         //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
         UnityEngine.RenderSettings.skybox = nightSkybox;

+ 1 - 1
Assets/Scripts/Login/InitDogUIController.cs

@@ -2,7 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
-using UnityEngine.Rendering.PostProcessing;
+//using UnityEngine.Rendering.PostProcessing;
 using UnityEngine.SceneManagement;
 using UnityEngine.UIElements;
 

+ 0 - 1
Assets/Scripts/Login/LoginController.cs

@@ -194,7 +194,6 @@ public class LoginController : MonoBehaviour
             else
             {
                 ShowStartGameUI();
-                ;
             }
         }else{
             Debug.Log(data["message"]);

+ 1 - 1
Assets/Scripts/Login/SunMovement.cs

@@ -23,7 +23,7 @@ public class SunMovement : MonoBehaviour
         {
             // night time
             //rotateLight.color = new Color(0, 0, 0.5f, 1);
-            rotateLight.intensity = 0.3f;
+            rotateLight.intensity = 0.45f;
             rotateLight.spotAngle = 50;
             //rotateLight.type = LightType.Spot;
             rotateLight.transform.rotation  = Quaternion.Euler(50,180,0);

+ 1 - 1
Assets/Scripts/Playground/AirWallDetection.cs

@@ -1,5 +1,5 @@
 using UnityEngine;
-using UnityEngine.Rendering.PostProcessing;
+//using UnityEngine.Rendering.PostProcessing;
 
 public class AirWallDetection : MonoBehaviour
 {

BIN
Assets/Terrain/LoginTerrain.asset


BIN
Assets/Texture/grassNormalmap.png


+ 143 - 0
Assets/Texture/grassNormalmap.png.meta

@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 731ac099e76a01f48bf8067ef1d6cd08
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 13
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 1
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 4
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 4
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 4
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 4
+    buildTarget: iOS
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    customData: 
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    spriteCustomMetadata:
+      entries: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 1
Packages/manifest.json

@@ -7,7 +7,6 @@
     "com.unity.inputsystem": "1.13.1",
     "com.unity.multiplayer.center": "1.0.0",
     "com.unity.nuget.newtonsoft-json": "3.2.1",
-    "com.unity.postprocessing": "3.4.0",
     "com.unity.render-pipelines.universal": "17.0.4",
     "com.unity.shadergraph": "17.0.3",
     "com.unity.timeline": "1.8.7",

+ 0 - 9
Packages/packages-lock.json

@@ -133,15 +133,6 @@
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
-    "com.unity.postprocessing": {
-      "version": "3.4.0",
-      "depth": 0,
-      "source": "registry",
-      "dependencies": {
-        "com.unity.modules.physics": "1.0.0"
-      },
-      "url": "https://packages.unity.com"
-    },
     "com.unity.render-pipelines.core": {
       "version": "17.0.4",
       "depth": 1,