瀏覽代碼

4/6周更新

2025/4/6 Home场景深夜默认关闭灯光和BGM,如果狗被唤醒就会恢复灯光。
重写Random100Check函数
添加狗骨头场景切换动画
Jees 2 月之前
父節點
當前提交
ca5c06b665

+ 36 - 17
Assets/Nearmint Studios/Mask Transitions/Prefabs/TransitionManager.prefab

@@ -28,9 +28,9 @@ RectTransform:
   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: 1224733614992737017}
-  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}
@@ -60,6 +60,7 @@ MonoBehaviour:
   m_Material: {fileID: 0}
   m_Color: {r: 0, g: 0, b: 0, a: 1}
   m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
@@ -103,10 +104,10 @@ RectTransform:
   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: 5572791951585757581}
   m_Father: {fileID: 4165769277727045733}
-  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}
@@ -136,6 +137,7 @@ MonoBehaviour:
   m_Material: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
@@ -173,7 +175,7 @@ GameObject:
   m_Component:
   - component: {fileID: 2344753822075818633}
   - component: {fileID: 6450776929422218898}
-  - component: {fileID: 9112870639336029604}
+  - component: {fileID: 2162112332476521158}
   m_Layer: 0
   m_Name: EventSystem
   m_TagString: Untagged
@@ -188,12 +190,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 5945500752415300767}
+  serializedVersion: 2
   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: 8965728007412277684}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &6450776929422218898
 MonoBehaviour:
@@ -210,7 +213,7 @@ MonoBehaviour:
   m_FirstSelected: {fileID: 0}
   m_sendNavigationEvents: 1
   m_DragThreshold: 10
---- !u!114 &9112870639336029604
+--- !u!114 &2162112332476521158
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -219,16 +222,28 @@ MonoBehaviour:
   m_GameObject: {fileID: 5945500752415300767}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+  m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_HorizontalAxis: Horizontal
-  m_VerticalAxis: Vertical
-  m_SubmitButton: Submit
-  m_CancelButton: Cancel
-  m_InputActionsPerSecond: 10
-  m_RepeatDelay: 0.5
-  m_ForceModuleActive: 0
+  m_SendPointerHoverToParent: 1
+  m_MoveRepeatDelay: 0.5
+  m_MoveRepeatRate: 0.1
+  m_XRTrackingOrigin: {fileID: 0}
+  m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_DeselectOnBackgroundClick: 1
+  m_PointerBehavior: 0
+  m_CursorLockBehavior: 0
+  m_ScrollDeltaPerTick: 6
 --- !u!1 &8214762668433716099
 GameObject:
   m_ObjectHideFlags: 0
@@ -258,10 +273,10 @@ RectTransform:
   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: 1224733614992737017}
   m_Father: {fileID: 8965728007412277684}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -285,7 +300,9 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 25
+  m_UpdateRectTransformForStandalone: 0
   m_SortingLayerID: 0
   m_SortingOrder: 20
   m_TargetDisplay: 0
@@ -311,6 +328,7 @@ MonoBehaviour:
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
   m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
 --- !u!114 &6337594917859278996
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -352,14 +370,15 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 8746815213132877900}
+  serializedVersion: 2
   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: 4165769277727045733}
   - {fileID: 2344753822075818633}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &2374072872290194105
 MonoBehaviour:
@@ -373,9 +392,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 62370cdbb32b1c341bc21fba1e18929c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  transitionImage: {fileID: 21300000, guid: af673b9cf232f694184bc1f66f316a09, type: 3}
+  transitionImage: {fileID: 21300000, guid: 6137cb321bebb924ba5ae2bc2e40fd0c, type: 3}
   transitionColor: {r: 0, g: 0, b: 0, a: 1}
-  rotation: 0
+  rotation: 1
   transitionTime: 1.5
   parentMaskRect: {fileID: 1224733614992737017}
   maskRect: {fileID: 5572791951585757581}

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

@@ -59,12 +59,30 @@ public class StatusController : MonoBehaviour
             rightArrow.visible = false;
         }
 
+        // 根据用户名下狗的数量判断是否显示transfer按键
+        if (UserProperty.dogs.Count > 1)
+        {
+            transfer.style.display = DisplayStyle.Flex;
+        }
+        else
+        {
+            transfer.style.display = DisplayStyle.None;
+        }
 
+        // 如果用户狗的数量达到系统规定上限,则隐藏add按键
+        if (UserProperty.dogs.Count >= EnviromentSetting.maxDogQty)
+        {
+            addLabel.style.display = DisplayStyle.None;
+        }
+        else
+        {
+            addLabel.style.display = DisplayStyle.Flex;
+        }
     }
 
     //private void Start()
     //{
-        
+
     //}
 
     // Update is called once per frame

+ 7 - 0
Assets/Resources/VoiceAndManu/VoiceController.cs

@@ -96,6 +96,13 @@ public class VoiceController : MonoBehaviour
         }
         StartRecording();
         waveForm.visible = true;
+
+        // 如果时间是在声音,就改变Home场景的光照
+        int hour = System.DateTime.Now.Hour;
+        if (hour >= 22 || hour < 5)     // 深夜时间
+        {
+            HomeSunLight.Instance.DogWakeUpLightSetting();
+        }
     }
 
     // 语音控制按键松开事件

+ 4 - 2
Assets/Resources/Warehouse/ItemUseController.cs

@@ -87,14 +87,16 @@ public class ItemUseController : ScriptableObject
         if (frisbees.Contains(itemId))
         {
             GameData.playedToy = itemId;        // 存储使用哪一个玩具
-            SceneManager.LoadScene("Playground", LoadSceneMode.Single);
+            //SceneManager.LoadScene("Playground", LoadSceneMode.Single);
+            MaskTransitions.TransitionManager.Instance.LoadLevel("Playground");
         }
 
         // 使用洗澡页面道具
         if (showers.Contains(itemId))
         {
             GameData.bathItemId = itemId;        // 存储使用哪一个玩具
-            SceneManager.LoadScene("Bathroom", LoadSceneMode.Single);
+            //SceneManager.LoadScene("Bathroom", LoadSceneMode.Single);
+            MaskTransitions.TransitionManager.Instance.LoadLevel("Bathroom");
         }
         
     }

+ 1 - 1
Assets/Scenes/Bathroom.unity

@@ -25750,7 +25750,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!114 &2131388309
 MonoBehaviour:
   m_ObjectHideFlags: 0

+ 5 - 5
Assets/Scenes/Home.unity

@@ -11466,7 +11466,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!114 &723885003
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -12034,9 +12034,9 @@ Light:
   m_Enabled: 1
   serializedVersion: 11
   m_Type: 2
-  m_Color: {r: 0.9869132, g: 0.990566, b: 0.87375396, a: 1}
-  m_Intensity: 1
-  m_Range: 150
+  m_Color: {r: 1, g: 1, b: 0.9607843, a: 1}
+  m_Intensity: 0.9
+  m_Range: 80
   m_SpotAngle: 179
   m_InnerSpotAngle: 1
   m_CookieSize: 10
@@ -13277,7 +13277,7 @@ AudioSource:
   m_audioClip: {fileID: 8300000, guid: dae083d3ea1dbab4593f3dfcffc5003b, type: 3}
   m_Resource: {fileID: 8300000, guid: dae083d3ea1dbab4593f3dfcffc5003b, type: 3}
   m_PlayOnAwake: 1
-  m_Volume: 0.5
+  m_Volume: 0.4
   m_Pitch: 1
   Loop: 1
   Mute: 0

+ 33 - 34
Assets/Scenes/Login.unity

@@ -2598,22 +2598,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 0}
     m_Modifications:
-    - target: {fileID: 2374072872290194105, guid: 60e223b373cd9a347945535b62afe6ed, type: 3}
-      propertyPath: rotation
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 2374072872290194105, guid: 60e223b373cd9a347945535b62afe6ed, type: 3}
-      propertyPath: transitionImage
-      value: 
-      objectReference: {fileID: 21300000, guid: 6137cb321bebb924ba5ae2bc2e40fd0c, type: 3}
     - target: {fileID: 8746815213132877900, guid: 60e223b373cd9a347945535b62afe6ed, type: 3}
       propertyPath: m_Name
       value: TransitionManager
       objectReference: {fileID: 0}
-    - target: {fileID: 8746815213132877900, guid: 60e223b373cd9a347945535b62afe6ed, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
     - target: {fileID: 8965728007412277684, guid: 60e223b373cd9a347945535b62afe6ed, type: 3}
       propertyPath: m_LocalPosition.x
       value: 0
@@ -2941,34 +2929,14 @@ GameObject:
   m_Component:
   - component: {fileID: 1109224427}
   - component: {fileID: 1109224426}
-  - component: {fileID: 1109224425}
+  - component: {fileID: 1109224428}
   m_Layer: 0
   m_Name: EventSystem
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!114 &1109224425
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1109224424}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_SendPointerHoverToParent: 1
-  m_HorizontalAxis: Horizontal
-  m_VerticalAxis: Vertical
-  m_SubmitButton: Submit
-  m_CancelButton: Cancel
-  m_InputActionsPerSecond: 10
-  m_RepeatDelay: 0.5
-  m_ForceModuleActive: 0
+  m_IsActive: 0
 --- !u!114 &1109224426
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -2999,6 +2967,37 @@ Transform:
   m_Children: []
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1109224428
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1109224424}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_SendPointerHoverToParent: 1
+  m_MoveRepeatDelay: 0.5
+  m_MoveRepeatRate: 0.1
+  m_XRTrackingOrigin: {fileID: 0}
+  m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_DeselectOnBackgroundClick: 1
+  m_PointerBehavior: 0
+  m_CursorLockBehavior: 0
+  m_ScrollDeltaPerTick: 6
 --- !u!1 &1139328081
 GameObject:
   m_ObjectHideFlags: 0

+ 35 - 26
Assets/Scenes/Playground.unity

@@ -162,34 +162,14 @@ GameObject:
   m_Component:
   - component: {fileID: 70159521}
   - component: {fileID: 70159520}
-  - component: {fileID: 70159519}
+  - component: {fileID: 70159522}
   m_Layer: 0
   m_Name: EventSystem
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!114 &70159519
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 70159518}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_SendPointerHoverToParent: 1
-  m_HorizontalAxis: Horizontal
-  m_VerticalAxis: Vertical
-  m_SubmitButton: Submit
-  m_CancelButton: Cancel
-  m_InputActionsPerSecond: 10
-  m_RepeatDelay: 0.5
-  m_ForceModuleActive: 0
+  m_IsActive: 0
 --- !u!114 &70159520
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -220,6 +200,37 @@ Transform:
   m_Children: []
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &70159522
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 70159518}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_SendPointerHoverToParent: 1
+  m_MoveRepeatDelay: 0.5
+  m_MoveRepeatRate: 0.1
+  m_XRTrackingOrigin: {fileID: 0}
+  m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+  m_DeselectOnBackgroundClick: 1
+  m_PointerBehavior: 0
+  m_CursorLockBehavior: 0
+  m_ScrollDeltaPerTick: 6
 --- !u!1 &72980115
 GameObject:
   m_ObjectHideFlags: 0
@@ -374,10 +385,8 @@ MonoBehaviour:
     friendlyToOtherDSDog: 50
     frisbeeSkill: 50
     ballSkill: 50
-    commandName: 50
-    commandSit: 50
-    commandLieDown: 50
-    commandRotate: 50
+    voiceCall: 50
+    voiceCommand: 50
 --- !u!1 &142544961
 GameObject:
   m_ObjectHideFlags: 0

+ 2 - 1
Assets/Scripts/Bathroom/BathroomController.cs

@@ -244,7 +244,8 @@ public class BathroomController : MonoBehaviour
                 UserProperty.dogs.Add(dog);
             }
             string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", "dog_is_clean", EnviromentSetting.languageCode });
-            MessageBoxController.ShowMessage(msg, ()=> SceneManager.LoadScene("Home"));
+            //MessageBoxController.ShowMessage(msg, ()=> SceneManager.LoadScene("Home"));
+            MessageBoxController.ShowMessage(msg, () => MaskTransitions.TransitionManager.Instance.LoadLevel("Home"));
         }
         else
         {

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

@@ -36,8 +36,11 @@ public class TestSetup : MonoBehaviour
             //UserProperty.food.Add("water_00001", 999);
             //UserProperty.food.Add("water_00002", 33);
             //UserProperty.other.Add("other_00001", 3);
-            UserProperty.dogs.RemoveAt(1);
-            UserProperty.dogs[0].voiceCall = 0;
+
+            //UserProperty.dogs.RemoveAt(1);
+            //UserProperty.dogs[0].voiceCall = 0;
+
+            //EnviromentSetting.maxDogQty = 2;     // 测试狗的数量
         }
 
         if (SceneManager.GetActiveScene().name == "Playground")
@@ -73,10 +76,10 @@ 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());
 
             //PlayerPrefs.DeleteAll();
             //EnviromentSetting.languageCode = "en";

+ 37 - 10
Assets/Scripts/GameControllers/GameTool.cs

@@ -2,6 +2,8 @@
 using System;
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
+using Unity.Mathematics;
+using UnityEngine;
 
 public static class GameTool
 {
@@ -25,20 +27,45 @@ public static class GameTool
         return null;
     }
 
-    // 属性数值0-100范围内随机计算函数
-    public static bool Random100Check(float inputValue, float thresHold = 0.6f)
+    // 输入X=100时候,输出一定是1
+    // 输入X=0的时候,随机输出 0.5-0.7之间的数值
+    // X越大,输出的随机数越靠近1.
+    public static bool Random100Check(float x, float thresHold = 0.6f)
     {
-        // 输入数值为1的时候,保底概率为threshold值。计算结果大于threshold返回true,否则返回false
-        // 原始公式 x/(x+99)=threshold
-        if (thresHold <= 0 || thresHold >= 1)
-            throw new ArgumentException("threshold must be in (0, 1)");
-        if (inputValue<=0 || inputValue > 100)
+        //// 输入数值为1的时候,保底概率为threshold值。计算结果大于threshold返回true,否则返回false
+        //// 原始公式 x/(x+99)=threshold
+        //if (thresHold <= 0 || thresHold >= 1)
+        //    throw new ArgumentException("threshold must be in (0, 1)");
+        //if (inputValue<=0 || inputValue > 100)
+        //{
+        //    throw new ArgumentException("inputValue must be in (0,100)");
+        //}
+
+        //float factor = (99*thresHold)/(1-thresHold);
+        //float result = (factor + inputValue) / (factor + 100f);
+        //return result > thresHold;
+
+        // 初始化随机数生成器
+        var random = new System.Random();
+
+        // 确保X在0-100范围内
+        x = Mathf.Clamp(x, 0, 100);
+
+        if (x == 100)
         {
-            throw new ArgumentException("inputValue must be in (0,100)");
+            return true;
         }
 
-        float factor = (99*thresHold)/(1-thresHold);
-        float result = (factor + inputValue) / (factor + 100f);
+        // 计算随机范围
+        double minValue = 0.5 + (0.5 * x / 100.0);  // 从0.5随X增加线性增长
+        double maxValue = 0.7 + (0.3 * x / 100.0);  // 从0.7随X增加线性增长
+
+        // 确保最大值不超过1
+        maxValue = Math.Min(maxValue, 1.0);
+
+        // 在[minValue, maxValue]范围内生成随机数
+        double result = minValue + (random.NextDouble() * (maxValue - minValue));
+
         return result > thresHold;
     }
 }

+ 88 - 30
Assets/Scripts/Home/HomeSunLight.cs

@@ -4,60 +4,118 @@ using UnityEngine;
 using UnityEngine.Experimental.Rendering;
 using UnityEngine.Rendering;
 
+/* 本文件控制家园场景的光照设置
+ * 1. 通过时间来设置光照
+ * 2. 通过狗被唤醒来设置光照
+ * 3. 通过时间来设置天空盒
+ * 4. 通过时间来设置BGM音量
+ */
 public class HomeSunLight : MonoBehaviour
 {
     // Start is called before the first frame update
+    public static HomeSunLight Instance;
     public Light mainLight;
     public GameObject targetCamera;
     public Material daySkybox;
     public Material nightSkybox;
+
+    void Awake()
+    {
+        // 单例模式,确保只有一个GlobalSoundManager
+        if (Instance == null)
+        {
+            Instance = this;
+            //DontDestroyOnLoad(gameObject);        // 必须关掉否则会导致原场景destroy不能执行
+        }
+        else
+        {
+            Destroy(gameObject);
+        }
+    }
     void Start()
     {
         GameObject homeLight = GameObject.Find("Home Light");
         int hour = System.DateTime.Now.Hour;
-        //hour = 7;
-        float rotateAngle = (12 - hour) * 13;
-        //print(rotateAngle);
+
         if ( hour >=22 || hour < 5)     // 深夜时间
         {
-            mainLight.intensity = 0.8f;
-            //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
-            UnityEngine.RenderSettings.skybox = nightSkybox;
-            UnityEngine.RenderSettings.ambientIntensity = 0.2f;
-            UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
-            homeLight.GetComponent<Light>().intensity = 0.3f;
+            MidNightLightSetting();
         }
         else if (hour < 6 || hour >= 18)
         {
-            // night time
-            mainLight.intensity = 0.1f;
-            //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
-            UnityEngine.RenderSettings.skybox = nightSkybox;
-            UnityEngine.RenderSettings.ambientIntensity = 0.2f;
-            UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
-            homeLight.GetComponent<Light>().intensity = 1f;
-
+            NightLightSetting();
         }
         else
         {
-            Debug.Log("day time");
-            // day time
-            mainLight.intensity = 0.7f;
-            //targetCamera.GetComponent<Camera>().clearFlags = CameraClearFlags.SolidColor;
-            //targetCamera.GetComponent<Camera>().backgroundColor = new Color(139, 202, 255, 203);
-            UnityEngine.RenderSettings.ambientMode = AmbientMode.Flat;
-            UnityEngine.RenderSettings.ambientLight = new Color32(200,200,200,180);
-            UnityEngine.RenderSettings.skybox = daySkybox;
-            UnityEngine.RenderSettings.ambientIntensity = 1f;
-            UnityEngine.RenderSettings.reflectionIntensity = 0.5f;
-            homeLight.GetComponent<Light>().intensity = 0.9f;
+            DayLightSetting();
         }
         DynamicGI.UpdateEnvironment();
     }
 
     // Update is called once per frame
-    void Update()
-    {
+    //void Update()
+    //{
  
+    //}
+
+    void DayLightSetting()
+    {
+        Debug.Log("day time");
+        // day time
+        mainLight.intensity = 0.9f;
+        mainLight.range = 100f;
+        //targetCamera.GetComponent<Camera>().clearFlags = CameraClearFlags.SolidColor;
+        //targetCamera.GetComponent<Camera>().backgroundColor = new Color(139, 202, 255, 203);
+        UnityEngine.RenderSettings.ambientMode = AmbientMode.Flat;
+        UnityEngine.RenderSettings.ambientLight = new Color32(200, 200, 200, 180);
+        UnityEngine.RenderSettings.skybox = daySkybox;
+        UnityEngine.RenderSettings.ambientIntensity = 1f;
+        UnityEngine.RenderSettings.reflectionIntensity = 0.5f;
+        var BGM = GameObject.Find("BGM");
+        if (BGM != null)
+        {
+            BGM.GetComponent<AudioSource>().volume = 0.4f;
+        }
+    }
+
+    void NightLightSetting()
+    {
+        // night time
+        mainLight.intensity = 0.9f;
+        mainLight.range = 100f;
+        //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
+        UnityEngine.RenderSettings.skybox = nightSkybox;
+        UnityEngine.RenderSettings.ambientIntensity = 0.2f;
+        UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
+        var BGM = GameObject.Find("BGM");
+        if (BGM != null)
+        {
+            BGM.GetComponent<AudioSource>().volume = 0.4f;
+        }
+    }
+
+    void MidNightLightSetting()
+    {
+        mainLight.intensity = 0.1f;
+        //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
+        mainLight.range = 5f;
+        UnityEngine.RenderSettings.skybox = nightSkybox;
+        UnityEngine.RenderSettings.ambientIntensity = 0.2f;
+        UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
+        var BGM = GameObject.Find("BGM");
+        if (BGM != null)
+        {
+            BGM.GetComponent<AudioSource>().volume = 0.1f;
+        }
+    }
+
+    // 深夜模式当狗被唤醒时候切换显示亮度
+    public void DogWakeUpLightSetting()
+    {
+        int hour = System.DateTime.Now.Hour;
+        if (hour >= 22 || hour < 5)     // 深夜时间
+        {
+            HomeSunLight.Instance.NightLightSetting();
+        }
     }
 }

+ 4 - 3
Assets/Scripts/Login/LoginController.cs

@@ -192,13 +192,14 @@ public class LoginController : MonoBehaviour
                 var loginCanvas = GameObject.Find("Login Canvas");
                 loginCanvas.SetActive(false);
                 string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", "reg_reminder", EnviromentSetting.languageCode });
-                MessageBoxController.YorN_Message(msg, ()=> regCanvas.SetActive(true), ()=> SceneManager.LoadScene("Home"));
+                //MessageBoxController.YorN_Message(msg, ()=> regCanvas.SetActive(true), ()=> SceneManager.LoadScene("Home"));
+                MessageBoxController.YorN_Message(msg, () => regCanvas.SetActive(true), () => MaskTransitions.TransitionManager.Instance.LoadLevel("Home"));
 
             }
             else
             {
-                SceneManager.LoadScene("Home");
-                //MaskTransitions.TransitionManager.Instance.LoadLevel("Home");
+                //SceneManager.LoadScene("Home");
+                MaskTransitions.TransitionManager.Instance.LoadLevel("Home");
             }
         }else{
             Debug.Log(data["message"]);

+ 4 - 6
Assets/Scripts/Login/RegisterUIController.cs

@@ -54,7 +54,7 @@ public class RegisterUIController : MonoBehaviour
     // 绑定confirm按键按下事件
     void ConfirmClick()
     {
-        Debug.Log("confirm btn clicked.");
+        Debug.Log("Reginser UI confirm btn clicked.");
         if (ContentCheckBeforePost())
         {
             // 清空注册暂存数据
@@ -99,7 +99,7 @@ public class RegisterUIController : MonoBehaviour
                 UserProperty.email = email;
             }
             string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", "register_success", EnviromentSetting.languageCode });
-            MessageBoxController.ShowMessage(msg, () => SceneManager.LoadScene("Home"));
+            MessageBoxController.ShowMessage(msg, () => CancelClick());
         }
         else if (data != null && data["status"] == "error")
         {
@@ -126,10 +126,8 @@ public class RegisterUIController : MonoBehaviour
     // 绑定取消按键
     void CancelClick()
     {
-        //var RegCanvas = GameObject.Find("Register Canvas");
-        //RegCanvas.SetActive(false);
-
-        SceneManager.LoadScene("Home");
+        //SceneManager.LoadScene("Home");
+        MaskTransitions.TransitionManager.Instance.LoadLevel("Home");
     }
 
     

+ 7 - 5
Assets/Scripts/Playground/DogCatchDetection.cs

@@ -17,7 +17,7 @@ public class DogCatchDetection : MonoBehaviour
     {
         toy = GameObject.Find("toy");
         dog = GameObject.Find("dog");
-        
+
     }
 
     // Update is called once per frame
@@ -38,10 +38,12 @@ public class DogCatchDetection : MonoBehaviour
     private void OnTriggerEnter(Collider other)
     {
         var DogProperty = UserProperty.dogs[GameData.focusDog]; // 读取狗的数据
-        float catchProbability = (DogProperty.frisbeeSkill*Random.Range(0f,1f)+100)/200;   // 狗的抓取概率
+        //float catchProbability = (DogProperty.frisbeeSkill*Random.Range(0f,1f)+100)/200;   // 狗的抓取概率
+        bool catchProbability = GameTool.Random100Check(DogProperty.frisbeeSkill);   // 狗的抓取概率
         Debug.Log("catchProbability:" + catchProbability);
 
-        if (other.gameObject.tag == "Throw Material" && other.transform.position.z > -9 && catchProbability>0.6f)    // >-9表示丢出一段距离后再检测
+        //if (other.gameObject.tag == "Throw Material" && other.transform.position.z > -9 && catchProbability>0.6f)    // >-9表示丢出一段距离后再检测
+        if (other.gameObject.tag == "Throw Material" && other.transform.position.z > -9 && catchProbability)    // >-9表示丢出一段距离后再检测
         {
             // 调整camera
             var CamPlayer = GameObject.Find("Player CAM").GetComponent<CinemachineVirtualCamera>();
@@ -63,7 +65,7 @@ public class DogCatchDetection : MonoBehaviour
 
             // 将玩具嵌入狗的身体内
             var dog = UserProperty.dogs[GameData.focusDog];     // 不同类型的狗可能嵌入位置不同
-            if (dog.breed == "shibaInu")        
+            if (dog.breed == "shibaInu")
             {
                 dogMouth = GameObject.Find("mouth");
                 toy.transform.SetParent(dogMouth.transform, false);
@@ -71,7 +73,7 @@ public class DogCatchDetection : MonoBehaviour
                 toy.transform.localRotation = Quaternion.Euler(0, 0, 0);
                 toy.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
             }
-            
+
             isDogRunBack = true;
         }
 

+ 2 - 1
Assets/Scripts/Playground/PlayToyController.cs

@@ -286,7 +286,8 @@ public class PlayToyController : MonoBehaviour
     // UI 点击确认后,返回到Home界面
     void ConfirmBtnClick()
     {
-        SceneManager.LoadScene("Home");
+        //SceneManager.LoadScene("Home");
+        MaskTransitions.TransitionManager.Instance.LoadLevel("Home");
     }
 
     // 提交道具使用和受影响狗的列表