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

4/26日更新

2025/4/24	/api/voice/training/训练接口基本调通了,voiceCall训练可用,其他训练待确认
Jees преди 1 месец
родител
ревизия
8877af2ea8

+ 2 - 0
.gitignore

@@ -10,3 +10,5 @@
 .DS_Store
 .sln
 .csproj
+*.sln
+*.csproj

Файловите разлики са ограничени, защото са твърде много
+ 0 - 25
Assembly-CSharp-Editor.csproj


Файловите разлики са ограничени, защото са твърде много
+ 0 - 25
Assembly-CSharp-firstpass.Player.csproj


Файловите разлики са ограничени, защото са твърде много
+ 0 - 25
Assembly-CSharp-firstpass.csproj


Файловите разлики са ограничени, защото са твърде много
+ 0 - 25
Assembly-CSharp.Player.csproj


Файловите разлики са ограничени, защото са твърде много
+ 0 - 25
Assembly-CSharp.csproj


+ 8 - 0
Assets/Packages/Loading Games/Toon City Pack/Demo.meta

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

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

@@ -238,6 +238,150 @@
             "en": "Record fail. Please try again.",
             "zh-cn": "录音失败。请再试一次。"
         },
+        "commandSit_00": {
+            "en": "Are you ready? Now you can give him the command to sit down.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他坐下。"
+        },
+        "commandSit_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandSit_10": {
+            "en": "Now your dog will sit down when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令坐下了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandSit_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandStand_00": {
+            "en": "Are you ready? Now you can give him the command to stand up.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他站起来。"
+        },
+        "commandStand_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandStand_10": {
+            "en": "Now your dog will stand up when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令站起来了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandStand_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandBark_00": {
+            "en": "Are you ready? Now you can give him the command to bark.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他叫几声。"
+        },
+        "commandBark_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandBark_10": {
+            "en": "Now your dog will sit down when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandBark_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandLieDown_00": {
+            "en": "Are you ready? Now you can give him the command to lie down.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他躺下。"
+        },
+        "commandLieDown_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandLieDown_10": {
+            "en": "Now your dog will lie down when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令躺下了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandLieDown_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandRotate_00": {
+            "en": "Are you ready? Now you can give him the command to rotate.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他转圈。"
+        },
+        "commandRotate_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandRotate_10": {
+            "en": "Now your dog will rotate when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令转圈了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandRotate_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandDeath_00": {
+            "en": "Are you ready? Now you can give him the command to pretend to be dead.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他装死。"
+        },
+        "commandDeath_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandDeath_10": {
+            "en": "Now your dog will pretend to be dead when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的指令了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandDeath_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandHug_00": {
+            "en": "Are you ready? Now you can give him the command to hug.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他抱抱。"
+        },
+        "commandHug_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandHug_10": {
+            "en": "Now your dog will hug when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的抱抱指令了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandHug_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandTurnL_00": {
+            "en": "Are you ready? Now you can give him the command to turn left.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他左转。"
+        },
+        "commandTurnL_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandTurnL_10": {
+            "en": "Now your dog will turn left when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的左转指令了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandTurnL_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
+        "commandTurnR_00": {
+            "en": "Are you ready? Now you can give him the command to turn right.",
+            "zh-cn": "准备好了吗?现在可以说出口令让他右转。"
+        },
+        "commandTurnR_01": {
+            "en": "Record again. Ensure that the two recordings are consistent.",
+            "zh-cn": "再输入一次。确保两次录音一致。"
+        },
+        "commandTurnR_10": {
+            "en": "Now your dog will turn right when you give it a command.<br>Talk to it often, and it will be more obedient.",
+            "zh-cn": "他现在会听从你的右转指令了。<br>经常训练他,它会更听话哦。"
+        },
+        "commandTurnR_20": {
+            "en": "Record fail. Please try again.",
+            "zh-cn": "录音失败。请再试一次。"
+        },
 
 
 

+ 274 - 152
Assets/Resources/Dog/AnimatorController/shibaInu/HomeDogInteractController.controller

@@ -27,6 +27,56 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
+--- !u!1101 &-8879138944245576174
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: Bark
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 6530397968288135108}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.7061628
+  m_TransitionOffset: 0.035126932
+  m_ExitTime: 0.04697351
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
+--- !u!1101 &-8140731904463588801
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: Sit
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: -9176223217037370774}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.88236135
+  m_TransitionOffset: 0.028909432
+  m_ExitTime: 0.016461406
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!1101 &-8132929496976188033
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -101,32 +151,7 @@ AnimatorStateTransition:
   m_InterruptionSource: 0
   m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
---- !u!1101 &-6420463359141894108
-AnimatorStateTransition:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: 
-  m_Conditions:
-  - m_ConditionMode: 1
-    m_ConditionEvent: Sit
-    m_EventTreshold: 0
-  m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: -9176223217037370774}
-  m_Solo: 0
-  m_Mute: 0
-  m_IsExit: 0
-  serializedVersion: 3
-  m_TransitionDuration: 0.5
-  m_TransitionOffset: 0
-  m_ExitTime: 0.1
-  m_HasExitTime: 1
-  m_HasFixedDuration: 1
-  m_InterruptionSource: 0
-  m_OrderedInterruption: 1
-  m_CanTransitionToSelf: 1
---- !u!1101 &-6130185709489123632
+--- !u!1101 &-6112286787422867255
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
@@ -135,18 +160,18 @@ AnimatorStateTransition:
   m_Name: 
   m_Conditions:
   - m_ConditionMode: 1
-    m_ConditionEvent: TurnR
+    m_ConditionEvent: TurnL
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: -7946899203391831091}
+  m_DstState: {fileID: 7224289074621895250}
   m_Solo: 0
   m_Mute: 0
   m_IsExit: 0
   serializedVersion: 3
-  m_TransitionDuration: 0.25
-  m_TransitionOffset: 0
-  m_ExitTime: 0.1
-  m_HasExitTime: 1
+  m_TransitionDuration: 0.6471412
+  m_TransitionOffset: 0.1036071
+  m_ExitTime: 0.03169296
+  m_HasExitTime: 0
   m_HasFixedDuration: 1
   m_InterruptionSource: 0
   m_OrderedInterruption: 1
@@ -160,7 +185,7 @@ AnimatorStateTransition:
   m_Name: 
   m_Conditions:
   - m_ConditionMode: 2
-    m_ConditionEvent: isLieing
+    m_ConditionEvent: isLieDowning
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 533779715773965248}
@@ -215,47 +240,60 @@ AnimatorStateMachine:
   m_ChildStates:
   - serializedVersion: 1
     m_State: {fileID: 533779715773965248}
-    m_Position: {x: 370, y: 200, z: 0}
+    m_Position: {x: -170, y: 610, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 6530397968288135108}
-    m_Position: {x: -320, y: 110, z: 0}
+    m_Position: {x: 750, y: 420, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 6213453891328339389}
-    m_Position: {x: -310, y: 210, z: 0}
+    m_Position: {x: 630, y: -30, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 7224289074621895250}
-    m_Position: {x: 690, y: 120, z: 0}
+    m_Position: {x: 660, y: 70, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -7946899203391831091}
-    m_Position: {x: 690, y: 220, z: 0}
+    m_Position: {x: 670, y: 160, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -1898261574974550075}
-    m_Position: {x: 550, y: 350, z: 0}
+    m_Position: {x: 690, y: 250, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 1879509632108041412}
-    m_Position: {x: 330, y: 0, z: 0}
+    m_Position: {x: 500, y: -120, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 605629613261180730}
+    m_Position: {x: 710, y: 350, z: 0}
   m_ChildStateMachines:
   - serializedVersion: 1
     m_StateMachine: {fileID: -4310704879323197233}
-    m_Position: {x: 610, y: 0, z: 0}
+    m_Position: {x: 720, y: 500, z: 0}
   - serializedVersion: 1
     m_StateMachine: {fileID: 5585714919224228239}
-    m_Position: {x: 40, y: 370, z: 0}
+    m_Position: {x: 630, y: 590, z: 0}
   - serializedVersion: 1
     m_StateMachine: {fileID: 311128966509873703}
-    m_Position: {x: -260, y: 350, z: 0}
+    m_Position: {x: 600, y: 670, z: 0}
   m_AnyStateTransitions:
   - {fileID: 8206564768075581269}
   - {fileID: 8331535787116983140}
+  - {fileID: 8949881451646535694}
+  - {fileID: 7658456728552812019}
+  - {fileID: -8879138944245576174}
+  - {fileID: -8140731904463588801}
+  - {fileID: -3654118028524020105}
+  - {fileID: -3298209393076701864}
+  - {fileID: -3978327597696489592}
+  - {fileID: -6112286787422867255}
+  - {fileID: -3939263286608137731}
+  - {fileID: -601727430303711784}
   m_EntryTransitions: []
   m_StateMachineTransitions: {}
   m_StateMachineBehaviours: []
-  m_AnyStatePosition: {x: 30, y: 50, z: 0}
-  m_EntryPosition: {x: 10, y: -100, z: 0}
+  m_AnyStatePosition: {x: -100, y: 0, z: 0}
+  m_EntryPosition: {x: -380, y: 420, z: 0}
   m_ExitPosition: {x: 1080, y: 40, z: 0}
   m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
   m_DefaultState: {fileID: 533779715773965248}
---- !u!1101 &-3982741430171642572
+--- !u!1101 &-3978327597696489592
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
@@ -263,6 +301,31 @@ AnimatorStateTransition:
   m_PrefabAsset: {fileID: 0}
   m_Name: 
   m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: TurnR
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: -7946899203391831091}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.5935322
+  m_TransitionOffset: 0.07232746
+  m_ExitTime: 0.037623394
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
+--- !u!1101 &-3939263286608137731
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: to Death
+  m_Conditions:
   - m_ConditionMode: 1
     m_ConditionEvent: Die
     m_EventTreshold: 0
@@ -272,15 +335,15 @@ AnimatorStateTransition:
   m_Mute: 0
   m_IsExit: 0
   serializedVersion: 3
-  m_TransitionDuration: 2
+  m_TransitionDuration: 1.2688694
   m_TransitionOffset: 0
-  m_ExitTime: 0.1
-  m_HasExitTime: 1
+  m_ExitTime: 0.052229445
+  m_HasExitTime: 0
   m_HasFixedDuration: 1
-  m_InterruptionSource: 2
+  m_InterruptionSource: 0
   m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
---- !u!1101 &-3026721099272024724
+--- !u!1101 &-3654118028524020105
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
@@ -289,23 +352,23 @@ AnimatorStateTransition:
   m_Name: 
   m_Conditions:
   - m_ConditionMode: 1
-    m_ConditionEvent: Hug
+    m_ConditionEvent: Stand
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: -1898261574974550075}
+  m_DstState: {fileID: 605629613261180730}
   m_Solo: 0
   m_Mute: 0
   m_IsExit: 0
   serializedVersion: 3
-  m_TransitionDuration: 0.5
-  m_TransitionOffset: 0
-  m_ExitTime: 0.1
-  m_HasExitTime: 1
+  m_TransitionDuration: 1.1903933
+  m_TransitionOffset: 0.037049755
+  m_ExitTime: 0.049399685
+  m_HasExitTime: 0
   m_HasFixedDuration: 1
   m_InterruptionSource: 0
   m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
---- !u!1101 &-2314655101060605358
+--- !u!1101 &-3298209393076701864
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
@@ -314,21 +377,21 @@ AnimatorStateTransition:
   m_Name: 
   m_Conditions:
   - m_ConditionMode: 1
-    m_ConditionEvent: TurnL
+    m_ConditionEvent: Hug
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: 7224289074621895250}
+  m_DstState: {fileID: -1898261574974550075}
   m_Solo: 0
   m_Mute: 0
   m_IsExit: 0
   serializedVersion: 3
-  m_TransitionDuration: 0.25
-  m_TransitionOffset: 0
-  m_ExitTime: 0.1
+  m_TransitionDuration: 0.5865151
+  m_TransitionOffset: 0.08413017
+  m_ExitTime: 0.026492938
   m_HasExitTime: 0
   m_HasFixedDuration: 1
-  m_InterruptionSource: 1
-  m_OrderedInterruption: 0
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
 --- !u!1102 &-1898261574974550075
 AnimatorState:
@@ -429,6 +492,31 @@ AnimatorStateTransition:
   m_InterruptionSource: 0
   m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
+--- !u!1101 &-601727430303711784
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: Listen
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 1879509632108041412}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 1.4596051
+  m_TransitionOffset: 0.040506724
+  m_ExitTime: 0.07487179
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!91 &9100000
 AnimatorController:
   m_ObjectHideFlags: 0
@@ -450,7 +538,7 @@ AnimatorController:
     m_DefaultInt: 0
     m_DefaultBool: 0
     m_Controller: {fileID: 9100000}
-  - m_Name: isLieing
+  - m_Name: isLieDowning
     m_Type: 4
     m_DefaultFloat: 0
     m_DefaultInt: 0
@@ -468,6 +556,18 @@ AnimatorController:
     m_DefaultInt: 0
     m_DefaultBool: 0
     m_Controller: {fileID: 9100000}
+  - m_Name: isStanding
+    m_Type: 4
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 9100000}
+  - m_Name: isBarking
+    m_Type: 4
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 9100000}
   - m_Name: activeIndex
     m_Type: 3
     m_DefaultFloat: 0
@@ -498,7 +598,7 @@ AnimatorController:
     m_DefaultInt: 0
     m_DefaultBool: 0
     m_Controller: {fileID: 9100000}
-  - m_Name: Lie
+  - m_Name: LieDown
     m_Type: 9
     m_DefaultFloat: 0
     m_DefaultInt: 0
@@ -540,6 +640,12 @@ AnimatorController:
     m_DefaultInt: 0
     m_DefaultBool: 0
     m_Controller: {fileID: 9100000}
+  - m_Name: Stand
+    m_Type: 9
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 9100000}
   m_AnimatorLayers:
   - serializedVersion: 5
     m_Name: Base Layer
@@ -553,28 +659,6 @@ AnimatorController:
     m_IKPass: 0
     m_SyncedLayerAffectsTiming: 0
     m_Controller: {fileID: 9100000}
---- !u!1101 &289997888906454870
-AnimatorStateTransition:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: 
-  m_Conditions: []
-  m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: 1879509632108041412}
-  m_Solo: 0
-  m_Mute: 0
-  m_IsExit: 0
-  serializedVersion: 3
-  m_TransitionDuration: 1.156584
-  m_TransitionOffset: 0
-  m_ExitTime: 0.03024225
-  m_HasExitTime: 1
-  m_HasFixedDuration: 1
-  m_InterruptionSource: 0
-  m_OrderedInterruption: 1
-  m_CanTransitionToSelf: 1
 --- !u!1107 &311128966509873703
 AnimatorStateMachine:
   serializedVersion: 6
@@ -613,15 +697,7 @@ AnimatorState:
   m_Name: base
   m_Speed: 1
   m_CycleOffset: 0
-  m_Transitions:
-  - {fileID: -3982741430171642572}
-  - {fileID: 6783922572396881253}
-  - {fileID: -6420463359141894108}
-  - {fileID: 2207388671215494222}
-  - {fileID: -3026721099272024724}
-  - {fileID: -2314655101060605358}
-  - {fileID: -6130185709489123632}
-  - {fileID: 289997888906454870}
+  m_Transitions: []
   m_StateMachineBehaviours: []
   m_Position: {x: 50, y: 50, z: 0}
   m_IKOnFeet: 0
@@ -637,6 +713,33 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
+--- !u!1102 &605629613261180730
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Stand
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions:
+  - {fileID: 6573130384233118162}
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 3858329934085553762, guid: 0faf4e66268a11e4d982d9a0163734ca, type: 3}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
 --- !u!1101 &789484493647436366
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -738,31 +841,6 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
---- !u!1101 &2207388671215494222
-AnimatorStateTransition:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: 
-  m_Conditions:
-  - m_ConditionMode: 1
-    m_ConditionEvent: Lie
-    m_EventTreshold: 0
-  m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: 5934876067920876819}
-  m_Solo: 0
-  m_Mute: 0
-  m_IsExit: 0
-  serializedVersion: 3
-  m_TransitionDuration: 0.5
-  m_TransitionOffset: 0
-  m_ExitTime: 0.1
-  m_HasExitTime: 1
-  m_HasFixedDuration: 1
-  m_InterruptionSource: 0
-  m_OrderedInterruption: 1
-  m_CanTransitionToSelf: 1
 --- !u!1101 &2591249761729929422
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -1122,6 +1200,28 @@ AnimatorState:
   m_MirrorParameter: isMoving
   m_CycleOffsetParameter: randomIndex
   m_TimeParameter: 
+--- !u!1101 &6573130384233118162
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions: []
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 533779715773965248}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.25
+  m_TransitionOffset: 0
+  m_ExitTime: 0.95
+  m_HasExitTime: 1
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!1102 &6741457069417949798
 AnimatorState:
   serializedVersion: 6
@@ -1149,31 +1249,6 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
---- !u!1101 &6783922572396881253
-AnimatorStateTransition:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: 
-  m_Conditions:
-  - m_ConditionMode: 1
-    m_ConditionEvent: Bark
-    m_EventTreshold: 0
-  m_DstStateMachine: {fileID: 0}
-  m_DstState: {fileID: 6530397968288135108}
-  m_Solo: 0
-  m_Mute: 0
-  m_IsExit: 0
-  serializedVersion: 3
-  m_TransitionDuration: 0.25
-  m_TransitionOffset: 0
-  m_ExitTime: 0.95
-  m_HasExitTime: 1
-  m_HasFixedDuration: 1
-  m_InterruptionSource: 0
-  m_OrderedInterruption: 1
-  m_CanTransitionToSelf: 1
 --- !u!1101 &7198625844345626924
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -1188,9 +1263,9 @@ AnimatorStateTransition:
   m_Mute: 0
   m_IsExit: 0
   serializedVersion: 3
-  m_TransitionDuration: 0.25
-  m_TransitionOffset: 0
-  m_ExitTime: 0.94545454
+  m_TransitionDuration: 0.2500001
+  m_TransitionOffset: 0.01198141
+  m_ExitTime: 0.06973055
   m_HasExitTime: 1
   m_HasFixedDuration: 1
   m_InterruptionSource: 0
@@ -1223,6 +1298,28 @@ AnimatorState:
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
+--- !u!1101 &7658456728552812019
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions: []
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 5934876067920876819}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.25
+  m_TransitionOffset: 0
+  m_ExitTime: 0.75
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!1101 &8206564768075581269
 AnimatorStateTransition:
   m_ObjectHideFlags: 1
@@ -1257,7 +1354,7 @@ AnimatorStateTransition:
   m_Name: 
   m_Conditions:
   - m_ConditionMode: 1
-    m_ConditionEvent: Lie
+    m_ConditionEvent: LieDown
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 533779715773965248}
@@ -1298,6 +1395,31 @@ AnimatorStateTransition:
   m_InterruptionSource: 0
   m_OrderedInterruption: 1
   m_CanTransitionToSelf: 1
+--- !u!1101 &8949881451646535694
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: LieDown
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 5934876067920876819}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.25000012
+  m_TransitionOffset: 0
+  m_ExitTime: 0.00607838
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!1101 &9147677112561107424
 AnimatorStateTransition:
   m_ObjectHideFlags: 1

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

@@ -93,9 +93,13 @@ public class VoiceController : MonoBehaviour
         // 狗动作变化注释镜头
         foreach (var dog in HomeController.dogsInScene)
         {
-            dog.RemoveZzzParticle();
-            dog.animator.SetTrigger("listen");
-            dog.animator.SetBool("isListening", true);
+            if (dog.dogState == DogState.IDLE)
+            {
+                dog.RemoveZzzParticle();
+                dog.animator.SetTrigger("listen");
+                dog.animator.SetBool("isListening", true);
+            }
+
         }
         StartRecording();
         waveForm.visible = true;

+ 1 - 20
Assets/Scripts/Develop Script/TestSetup.cs

@@ -21,26 +21,7 @@ public class TestSetup : MonoBehaviour
         }
         if (SceneManager.GetActiveScene().name == "Home")
         {
-            // 初始化狗数据用于测试
-            //DogProperty puppy = new DogProperty();
-            //UserProperty.dogs.Clear();
-            //UserProperty.dogs.Add(puppy);
-
-            //UserProperty.food.Clear();
-            //UserProperty.toy.Clear();
-            //UserProperty.other.Clear();
-            //UserProperty.food.Add("food_00001", 10);
-            //UserProperty.food.Add("food_00002", 20);
-            //UserProperty.food.Add("food_00003", 30);
-            //UserProperty.toy.Add("toy_00001", 1);
-            //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;
-
-            //EnviromentSetting.maxDogQty = 2;     // 测试狗的数量
+            GameData.isVoiceTrainingToday = false;
         }
 
         if (SceneManager.GetActiveScene().name == "Playground")

+ 8 - 1
Assets/Scripts/EnviromentController.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using Newtonsoft.Json;
 using System.IO;
 using Unity.VisualScripting.FullSerializer;
+using System;
 
 
 /* EnviromentController类主要功能是操作EnviromentSetting类,包含初始化数据,设置语言等 
@@ -30,6 +31,7 @@ public class EnviromentController : MonoBehaviour
         // todo 开发代码,加载狗的信息,以后要移到ProgressBar页面
         //DogProperty puppy_1 = new();
         //UserProperty.dogs.Add(puppy_1);
+        PlayerPrefsLoader();
     }
 
     public static void InitialGameEnviroment()
@@ -98,7 +100,12 @@ public class EnviromentController : MonoBehaviour
                 GameData.isVoiceTrainingToday = true;
             }
         }
-
+        if (PlayerPrefs.HasKey("lastFeedbackTime"))
+        {
+            // 读取存储的日期
+            string lastFeedbackTime = PlayerPrefs.GetString("lastFeedbackTime");
+            GameData.lastFeedbackTime = DateTime.Parse(lastFeedbackTime);
+        }
     }
     // Update is called once per frame
     //void Update()

+ 4 - 0
Assets/Scripts/GameControllers/GameData.cs

@@ -1,6 +1,9 @@
 /* 存放游戏运行中一些保存的数据
  */
 
+using System;
+using System.Net.NetworkInformation;
+
 public static class GameData
 {
     public static string subScene;      // 用于指定子场景用
@@ -9,5 +12,6 @@ public static class GameData
     public static string playedToy = string.Empty;        // 用于暂存游戏中使用的玩具
     public static string bathItemId = string.Empty;        // 用于暂存洗澡场景中使用的道具
     public static bool isVoiceTrainingToday;        // 是否今天已经进行过语音训练
+    public static DateTime lastFeedbackTime = new DateTime(2000, 1, 1);        // 上次反馈的时间
 
 }

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

@@ -42,6 +42,16 @@ public class DogInScene //: ScriptableObject
     public DateTime interactAnimationStartTime;        // 交互动画开始时间
 
     #region 通用函数段
+
+    // 这个函数主要是为了在狗的属性发生变化时,重新加载狗的属性
+    public void ReloadDogProperty(){
+        foreach (var dog in UserProperty.dogs){
+            if (dog.d_id == dogProperty.d_id){
+                this.dogProperty = dog;
+                break;
+            }
+        }
+    }
     public void SetGameObject(GameObject gameObject)
     {
         this.gameObject = gameObject;
@@ -66,6 +76,20 @@ public class DogInScene //: ScriptableObject
             zzzParticle.SetActive(false);
         }
     }
+
+    // 关闭所有animation动画的状态,回到默认的状态
+    public void ResetAnimationStatus(){
+
+        // 获取所有参数
+        AnimatorControllerParameter[] parameters = animator.parameters;
+        foreach (AnimatorControllerParameter parameter in parameters)
+        {
+            if (parameter.type == AnimatorControllerParameterType.Bool)
+            {
+                animator.SetBool(parameter.name, false);
+            }
+        }
+    }
     #endregion
 
     #region interact交互函数段
@@ -162,7 +186,6 @@ public class DogInScene //: ScriptableObject
     {
 
         // 结束交互行为,恢复原有的菜单
-        //this.dogState = "idle";
         this.dogState = DogState.IDLE;
         // 恢复场景idle对应的Animator Controller
         Animator animator = gameObject.GetComponent<Animator>();

+ 56 - 25
Assets/Scripts/Home/HomeController.cs

@@ -121,7 +121,7 @@ public class HomeController : MonoBehaviour
             int randomCheck = UnityEngine.Random.Range(0, 51);
 
             // 检测是否有狗没有通过voiceCall训练,如果有,立刻进入训练模式
-            if (sceneMode == SceneMode.NORMAL)        // 只有在正常模式下才可以进入训练模式
+            if (sceneMode == SceneMode.NORMAL)        // 这段代码用于在NORMAL场景下检测是否有狗进入训练模式
             {
                 foreach (var dog in dogsInScene)
                 {
@@ -140,9 +140,9 @@ public class HomeController : MonoBehaviour
                         interactDog = dogsInScene[GameData.focusDog].gameObject;
                         VoiceButtonOnlySwitch(true);        // 交互模式下关闭其他菜单
                     }
-                    else if (dog.dogProperty.voiceCall > 40 && !dog.dogProperty.voiceCommandEnable && dog.dogProperty.voiceCallEnable)
+                    else if (dog.dogProperty.voiceCall > 40 && dog.dogProperty.voiceCallEnable && !GameData.isVoiceTrainingToday)
                     {
-                        // 当狗的voiceCall大于40,且没有voiceCommand能力时,进入第一阶段指令训练模式
+                        // 当狗的voiceCall大于40,进入第一阶段指令训练模式
                         int random = UnityEngine.Random.Range(0, 100);
                         if (random < 25 && !dog.dogProperty.commandSit)
                         {
@@ -163,6 +163,7 @@ public class HomeController : MonoBehaviour
                         else
                         {
                             trainingContent = String.Empty;
+                            GameData.isVoiceTrainingToday = true;
                         }
 
                         if (trainingContent != String.Empty)
@@ -177,12 +178,20 @@ public class HomeController : MonoBehaviour
                             dogsInScene[GameData.focusDog].SetupInteract();
                             interactDog = dogsInScene[GameData.focusDog].gameObject;
                             VoiceButtonOnlySwitch(true);        // 交互模式下关闭其他菜单
+
+                            // 开始训练时让狗播放动画
+                            if (trainingContent != "voiceCall")
+                            {
+                                string command = trainingContent.Substring(7);
+                                dog.animator.SetTrigger(command);
+                                dog.animator.SetBool("is" + command + "ing", true);
+                            }
                         }
                     }
                 }
             }
 
-            else if (this.sceneMode == SceneMode.TRAINING)
+            if (this.sceneMode == SceneMode.TRAINING)      // 这段代码控制场景进入训练模式
             {
                 foreach (var dog in dogsInScene)
                 {
@@ -224,7 +233,7 @@ public class HomeController : MonoBehaviour
                     }
                 }
             }
-            else if (sceneMode == SceneMode.INACTIVE)
+            else if (sceneMode == SceneMode.INACTIVE)       // 这段代码控制场景在交互模式
             {
                 foreach (var dog in dogsInScene)
                 {
@@ -254,11 +263,11 @@ public class HomeController : MonoBehaviour
             }
             else
             {
-                // 场景非交互模式下的控制代码
+                // 普通场景下的控制代码
                 foreach (var dog in dogsInScene)
                 {
                     // 如果在eat drink进程结束前不执行随机场景代码
-                    // 检测有隐藏的狗,显示出来
+                    // 恢复因为交互,训练模式隐藏的狗
                     if (dog.gameObject.activeSelf == false)
                     {
                         dog.gameObject.SetActive(true);
@@ -493,7 +502,7 @@ public class HomeController : MonoBehaviour
 
             // TODO 根据返回结果设定focusdog
             float highestScore = 0;
-            string highestScoreDogId = "";
+            string highestScoreDogId = String.Empty;
             var scores = data["call Score MFCC"].ToString();
             var scoresList = JsonConvert.DeserializeObject<Dictionary<string, float>>(scores);
             foreach (var score in scoresList)
@@ -520,6 +529,14 @@ public class HomeController : MonoBehaviour
                             // focusdog 开启互动模式
                             HomeController.dogsInScene[GameData.focusDog].dogState = DogState.INTERACT;
                             HomeController.dogsInScene[GameData.focusDog].SetupInteract();
+                            // 其他狗进入隐藏模式
+                            foreach (var otherDog in dogsInScene)
+                            {
+                                if (otherDog.dogProperty.d_id != highestScoreDogId)
+                                {
+                                    otherDog.gameObject.SetActive(false);
+                                }
+                            }
                         }
                     }
                 }
@@ -632,27 +649,28 @@ public class HomeController : MonoBehaviour
             {
                 if (data["message"].ToString().ToLower() == "pass")
                 {
-                    var BGM = GameObject.Find("BGM");
-                    if (BGM != null)
-                    {
-                        //BGM.GetComponent<AudioSource>().Play();
-                        FadeBGM(BGM.GetComponent<AudioSource>(), true);
-                    }
+
                     // TODO 刷新狗的数据
                     string dogJson = data["dogs"].ToString();
                     UserProperty.FreshDogInfo(dogJson);
 
-                    string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", trainingContent + "_10", EnviromentSetting.languageCode });
-                    Time.timeScale = 0f;
-                    foreach (var dog in dogsInScene)
+                    var trainingDog = dogsInScene[GameData.focusDog];
+                    trainingDog.ReloadDogProperty();        // 刷新狗的数据
+
+                    // 成功后让狗子播放训练的动画
+                    if (trainingContent != "voiceCall")
                     {
-                        if (dog.dogProperty.d_id == trainingDogId)
-                        {
-                            dog.ExitInteract();
-                        }
+                        string command = trainingContent.Substring(7);
+                        trainingDog.animator.SetTrigger(command);
+                        trainingDog.animator.SetBool("is" + command + "ing", true);
                     }
-                    MessageBoxController.ShowMessage(msg, ResetTrainingModeParameters);
+
+                    string msg = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "game_message", trainingContent + "_10", EnviromentSetting.languageCode });
+                    Time.timeScale = 0f;
+
+                    MessageBoxController.ShowMessage(msg, ExitTrainingMode);
                     this.sceneMode = SceneMode.NORMAL;
+                    VoiceButtonOnlySwitch(false);        // 交互结束,打开其他菜单
 
                     GameData.isVoiceTrainingToday = true;        // 训练完成,设置为true
                     string todayDate = System.DateTime.Now.ToString("yyyy-MM-dd");
@@ -681,9 +699,15 @@ public class HomeController : MonoBehaviour
     #region interact mode
 
     // 重置training相关参数
-    private void ResetTrainingModeParameters()
+    private void ExitTrainingMode()
     {
-        //isTrainingMode = false;
+        foreach (var dog in dogsInScene)
+        {
+            if (dog.dogProperty.d_id == trainingDogId)
+            {
+                dog.ExitInteract();
+            }
+        }
         trainingContent = String.Empty;
         totalTrainingTimes = 2;
         currentTrainingTimes = 0;
@@ -692,6 +716,11 @@ public class HomeController : MonoBehaviour
         isTrainingMsgShowed_2 = false;
         Debug.Log("Reset Training Mode Parameters");
         Time.timeScale = 1f;
+        var BGM = GameObject.Find("BGM");
+        if (BGM != null)
+        {
+            FadeBGM(BGM.GetComponent<AudioSource>(), true);
+        }
     }
 
     private void RestartTraining()
@@ -779,7 +808,7 @@ public class HomeController : MonoBehaviour
     {
         float elapsedTime = 0f;
         float startVolume = bgmSource.volume;
-        float targetVolume = fadeIn ? 1f : 0f; // 淡入目标音量为1,淡出目标音量为0
+        float targetVolume = fadeIn ? 0.4f : 0f; // 淡入目标音量为1,淡出目标音量为0
 
         while (elapsedTime < duration)
         {
@@ -793,6 +822,8 @@ public class HomeController : MonoBehaviour
         if (!fadeIn)
         {
             bgmSource.Stop(); // 如果是淡出,停止播放
+        }else{
+            bgmSource.Play(); // 如果是淡入,开始播放
         }
     }
     #endregion

+ 0 - 32
PuppyClient.sln

@@ -1,32 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{3FC04BFF-67C7-F5EC-CA41-E7098D1E5312}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-firstpass", "Assembly-CSharp-firstpass.csproj", "{68486523-2EF9-DEC2-ECC0-8AC238555828}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{AE5CE618-3280-2D9C-2622-299C92DE0507}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3FC04BFF-67C7-F5EC-CA41-E7098D1E5312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3FC04BFF-67C7-F5EC-CA41-E7098D1E5312}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3FC04BFF-67C7-F5EC-CA41-E7098D1E5312}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3FC04BFF-67C7-F5EC-CA41-E7098D1E5312}.Release|Any CPU.Build.0 = Release|Any CPU
-		{68486523-2EF9-DEC2-ECC0-8AC238555828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{68486523-2EF9-DEC2-ECC0-8AC238555828}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{68486523-2EF9-DEC2-ECC0-8AC238555828}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{68486523-2EF9-DEC2-ECC0-8AC238555828}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AE5CE618-3280-2D9C-2622-299C92DE0507}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AE5CE618-3280-2D9C-2622-299C92DE0507}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AE5CE618-3280-2D9C-2622-299C92DE0507}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AE5CE618-3280-2D9C-2622-299C92DE0507}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

+ 0 - 38
PuppyLocal.sln

@@ -1,38 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{CD9FE7F2-333B-7F12-148B-9F97F6FDBCE9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-firstpass", "Assembly-CSharp-firstpass.csproj", "{97470A7F-215F-5474-4720-37C211377BB3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.Player.csproj", "{97C8FCD6-7F72-26EE-742D-C7CAC546A275}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-firstpass", "Assembly-CSharp-firstpass.Player.csproj", "{6B013EB5-6E03-9954-CCC2-65C7F2FFAB05}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{CD9FE7F2-333B-7F12-148B-9F97F6FDBCE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{CD9FE7F2-333B-7F12-148B-9F97F6FDBCE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{CD9FE7F2-333B-7F12-148B-9F97F6FDBCE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{CD9FE7F2-333B-7F12-148B-9F97F6FDBCE9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{97470A7F-215F-5474-4720-37C211377BB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{97470A7F-215F-5474-4720-37C211377BB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{97470A7F-215F-5474-4720-37C211377BB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{97470A7F-215F-5474-4720-37C211377BB3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{97C8FCD6-7F72-26EE-742D-C7CAC546A275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{97C8FCD6-7F72-26EE-742D-C7CAC546A275}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{97C8FCD6-7F72-26EE-742D-C7CAC546A275}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{97C8FCD6-7F72-26EE-742D-C7CAC546A275}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6B013EB5-6E03-9954-CCC2-65C7F2FFAB05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6B013EB5-6E03-9954-CCC2-65C7F2FFAB05}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6B013EB5-6E03-9954-CCC2-65C7F2FFAB05}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6B013EB5-6E03-9954-CCC2-65C7F2FFAB05}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

Някои файлове не бяха показани, защото твърде много файлове са промени