Развитие гоночек
This commit is contained in:
1 parent
ec60c47652
commit
b54083521f
531 files changed
+16084
-28224
No files matched your search
+359
-35
@@ -5,31 +5,314 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="ed1a3c4f-83ac-4211-ae32-004a26afd5d8" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacer.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacer.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/PlayerRacer.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/PlayerRacer.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/Racer.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/Racer.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarController.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarController.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarControllerRB.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarControllerRB.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarInput.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarInput.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerSettings.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerSettings.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerType.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerType.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacistSpawnListDebug.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacistSpawnListDebug.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor/CheckPointAsset.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor/CheckPointAsset.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/CameraTemp.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/CameraTemp.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/ThirdPersonState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/ThirdPersonState.cs.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infratest/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infratest/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/LoadingPanel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/LoadingPanel.prefab" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/LogoPanel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/LogoPanel.prefab" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioSourcePool.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioSourcePool.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanelType.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanelType.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/documentation.md" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/documentation.md.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/documentation.pdf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/documentation.pdf.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/release-notes.md" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Documentation/release-notes.md.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/net48.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.CSharp.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.CSharp.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/RoslynLicense.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/RoslynLicense.txt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Collections.Immutable.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Collections.Immutable.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Reflection.Metadata.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Reflection.Metadata.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Threading.Tasks.Extensions.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Threading.Tasks.Extensions.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.CSharp.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.CSharp.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/RoslynLicense.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/RoslynLicense.txt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Collections.Immutable.FSR.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Collections.Immutable.FSR.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Collections.Immutable.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Collections.Immutable.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Reflection.Metadata.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Reflection.Metadata.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Reflection.Metadata.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Reflection.Metadata.xml.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Runtime.CompilerServices.Unsafe.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Runtime.CompilerServices.Unsafe.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Runtime.CompilerServices.Unsafe.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Runtime.CompilerServices.Unsafe.xml.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Threading.Tasks.Extensions.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/2021+/System.Threading.Tasks.Extensions.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.IMPORTANT.txt.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.IMPORTANT.txt.txt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/AssemblyPostProcess.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/AssemblyPostProcess/AddInternalsVisibleToForAllUserAssembliesPostProcess.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/AssemblyPostProcess/AddInternalsVisibleToForAllUserAssembliesPostProcess.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/BuilderPatternFunctionsRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/BuilderPatternFunctionsRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ConstructorRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ConstructorRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/CreateNewFieldInitMethodRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/CreateNewFieldInitMethodRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ExtensionMethodsCallingOtherExtensionMethodsInSameFileRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ExtensionMethodsCallingOtherExtensionMethodsInSameFileRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FastScriptReloadCodeRewriterBase.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FastScriptReloadCodeRewriterBase.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FieldsWalker.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FieldsWalker.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/HotReloadCompliantRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/HotReloadCompliantRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ManualUserDefinedScriptOverridesRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ManualUserDefinedScriptOverridesRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldDeclaration.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldDeclaration.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldsRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldsRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialClassFinder.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialClassFinder.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialTreeProcessor.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialTreeProcessor.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialTypeCombiner.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/PartialTypeCombiner.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/SyntaxTreeHelpers.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/SyntaxTreeHelpers.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/SyntaxTreeMergePartialsExtensions.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/Partials/SyntaxTreeMergePartialsExtensions.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RecordRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RecordRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RedundantTypeNameQualifierRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RedundantTypeNameQualifierRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RoslynUtils.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RoslynUtils.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisAssignmentRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisAssignmentRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisCallRewriter.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisCallRewriter.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisRewriterBase.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisRewriterBase.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DotnetExeCompilator.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DotnetExeCompilator.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicAssemblyCompiler.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicAssemblyCompiler.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicCompilationBase.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicCompilationBase.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/McsExeDynamicCompilation.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/McsExeDynamicCompilation.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/PatchMcsArgsGeneration.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/PatchMcsArgsGeneration.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides/ScriptGenerationOverridesManager.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides/ScriptGenerationOverridesManager.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/CustomFileWatcher.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/CustomFileWatcher.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReload.Editor.asmdef" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReload.Editor.asmdef.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadManager.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadManager.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadWelcomeScreen.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadWelcomeScreen.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FileWatcherSetupEntry.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/FileWatcherSetupEntry.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/GUI.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/GUI/ProjectWindowReloadStatusIndicatorDrawer.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/GUI/ProjectWindowReloadStatusIndicatorDrawer.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/NewFields.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/NewFields/NewFieldsRendererDefaultEditorPatch.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/NewFields/NewFieldsRendererDefaultEditorPatch.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/WindowsFileSystemWatcher.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Editor/WindowsFileSystemWatcher.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoader.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoader.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoaderResolver.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoaderResolver.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/DetourCrashHandler.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/DetourCrashHandler.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/FastScriptReload.Runtime.asmdef" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/FastScriptReload.Runtime.asmdef.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/LoggerScopedInitializer.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/LoggerScopedInitializer.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/ProjectTypeCache.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/ProjectTypeCache.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/TemporaryNewFieldValues.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Scripts/Runtime/TemporaryNewFieldValues.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/FastScriptReload.Tests.Editor.asmdef" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/FastScriptReload.Tests.Editor.asmdef.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/AccessingIdentifierNamedSameAsMethodTest.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/AccessingIdentifierNamedSameAsMethodTest.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/AccessingNewFieldsAddedAtRuntimeSameNameAsStaticClassFieldTest.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/AccessingNewFieldsAddedAtRuntimeSameNameAsStaticClassFieldTest.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/CompileWithRedirectTestBase.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/CompileWithRedirectTestBase.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/MergePartialClassesTest.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/MergePartialClassesTest.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/MethodAccessingNestedEnumTest.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/MethodAccessingNestedEnumTest.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/NewFieldInitDictionariesWithLocalFunctionTest.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Editor/Integration/CodePatterns/NewFieldInitDictionariesWithLocalFunctionTest.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/FastScriptReload.Tests.Runtime.asmdef" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/FastScriptReload.Tests.Runtime.asmdef.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/AccessingIdentifierNamedSameAsMethod.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/AccessingIdentifierNamedSameAsMethod.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/AccessingNewFieldsAddedAtRuntimeSameNameAsStaticClassField.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/AccessingNewFieldsAddedAtRuntimeSameNameAsStaticClassField.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/MethodAccessingNestedEnum.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/MethodAccessingNestedEnum.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/NewFieldInitDictionariesWithLocalFunction.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/NewFieldInitDictionariesWithLocalFunction.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/TestDetourConfirmation.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/FastScriptReload/Tests/Runtime/Integration/CodePatterns/TestDetourConfirmation.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/InputSystem_Actions.inputactions" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/InputSystem_Actions.inputactions" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/Editor.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/Editor/KinematicCharacterMotorEditor.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/Editor/KinematicCharacterMotorEditor.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/Editor/ReadOnlyPropertyDrawer.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/Editor/ReadOnlyPropertyDrawer.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/ICharacterController.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/ICharacterController.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/IMoverController.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/IMoverController.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KCCSettings.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KCCSettings.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KinematicCharacterMotor.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KinematicCharacterMotor.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KinematicCharacterSystem.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/KinematicCharacterSystem.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/PhysicsMover.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/PhysicsMover.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/ReadOnlyAttribute.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/Core/ReadOnlyAttribute.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Materials.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Materials/White.mat" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Materials/White.mat.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Prefabs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Prefabs/ExampleCamera.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Prefabs/ExampleCamera.prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Prefabs/ExampleCharacter.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Prefabs/ExampleCharacter.prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExampleCharacterCamera.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExampleCharacterCamera.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExampleCharacterController.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExampleCharacterController.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExamplePlayer.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/KinematicCharacterController/ExampleCharacter/Scripts/ExamplePlayer.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Racist (1).prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Racist (1).prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Camera/FPSConfig.asset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Camera/FPSConfig.asset.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ProjectSettings/DynamicsManager.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/DynamicsManager.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ProjectSettings/NavMeshAreas.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/NavMeshAreas.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioServiceSettingsConfig.Generated.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioServiceSettingsConfig.Generated.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Packages/manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/manifest.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Packages/packages-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/packages-lock.json" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -43,15 +326,38 @@
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/5a41d6b7189842eca409fd0b1c3e3dcf17bf78/26/cb522a47/IDisposable.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/PlayerRacer.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/Racer.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotator.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarController.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarControllerRB.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerSettings.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerType.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacistSpawnListDebug.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor/CheckPointAsset.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioSourcePool.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioSourceSettings.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/CameraTemp.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/ThirdPersonState.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings/Loading.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Resources/Example/Misc/CheckPointGTASA.shader" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.cysharp.unitask@a85b92a8e443/Runtime/External/Addressables/AddressablesAsyncExtensions.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.cysharp.unitask@a85b92a8e443/Runtime/UniTaskScheduler.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Core/Container.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Core/ContainerBuilder.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/ConstructorInjector.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@13d9ede188ab/Runtime/Addressables.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@13d9ede188ab/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@13d9ede188ab/Runtime/ResourceManager/AsyncOperations/AsyncOperationHandle.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@13d9ede188ab/Runtime/ResourceManager/Util/MonoBehaviourCallbackHooks.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
@@ -68,6 +374,7 @@
|
||||
"Attach to Unity Editor.Attach to Unity Editor.executor": "Debug",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
||||
"XThreadsFramesViewSplitterKey": "0.31173185",
|
||||
"git-widget-placeholder": "NotLiminalPCG",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
@@ -84,10 +391,8 @@
|
||||
<option name="PROGRAM_PARAMETERS" value="-projectPath A:\Projects\Infratest -debugCodeOptimization" />
|
||||
<option name="WORKING_DIRECTORY" value="A:\Projects\Infratest" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<option name="ENV_FILE_PATHS" value="" />
|
||||
<option name="REDIRECT_INPUT_PATH" value="" />
|
||||
<option name="PTY_MODE" value="Auto" />
|
||||
<option name="MIXED_MODE_DEBUG" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
@@ -96,14 +401,12 @@
|
||||
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath A:\Projects\Infratest -testResults Logs/results.xml -logFile Logs/Editor.log -testPlatform EditMode -debugCodeOptimization" />
|
||||
<option name="WORKING_DIRECTORY" value="A:\Projects\Infratest" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<option name="ENV_FILE_PATHS" value="" />
|
||||
<option name="REDIRECT_INPUT_PATH" value="" />
|
||||
<option name="PTY_MODE" value="Auto" />
|
||||
<option name="MIXED_MODE_DEBUG" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Attach to Unity Editor & Play" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="UNITY_ATTACH_AND_PLAY" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
|
||||
<configuration name="Attach to Unity Editor & Play" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="UNITY_ATTACH_AND_PLAY" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" useMixedMode="false">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
@@ -114,13 +417,12 @@
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="useMixedMode" value="false" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="5987">
|
||||
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" useMixedMode="false" ignored-value-for-modified-check="8452">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" value="5987" />
|
||||
<option name="pid" value="8452" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list>
|
||||
@@ -130,10 +432,9 @@
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="useMixedMode" value="false" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Attach to Device" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
|
||||
<configuration name="Attach to" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -188,6 +489,22 @@
|
||||
<workItem from="1769505995859" duration="384000" />
|
||||
<workItem from="1769519972053" duration="198000" />
|
||||
<workItem from="1769520195570" duration="4307000" />
|
||||
<workItem from="1769616178141" duration="8124000" />
|
||||
<workItem from="1769685044180" duration="3821000" />
|
||||
<workItem from="1769688891286" duration="148000" />
|
||||
<workItem from="1769689778555" duration="5198000" />
|
||||
<workItem from="1769695609554" duration="4859000" />
|
||||
<workItem from="1769702519801" duration="3602000" />
|
||||
<workItem from="1769766033912" duration="6151000" />
|
||||
<workItem from="1769776787822" duration="804000" />
|
||||
<workItem from="1769777674316" duration="478000" />
|
||||
<workItem from="1769778405201" duration="7609000" />
|
||||
<workItem from="1769786786936" duration="8000" />
|
||||
<workItem from="1769789338816" duration="4589000" />
|
||||
<workItem from="1770035621021" duration="8618000" />
|
||||
<workItem from="1770049545882" duration="2652000" />
|
||||
<workItem from="1770226628030" duration="3133000" />
|
||||
<workItem from="1770297444061" duration="2414000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
@@ -220,10 +537,17 @@
|
||||
<option name="timeStamp" value="58" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraFactory.cs</url>
|
||||
<line>35</line>
|
||||
<properties documentPath="A:\Projects\Infratest\Assets\Code\Infrastructure\Camera\CameraFactory.cs" containingFunctionPresentation="Method 'CreateCameraStateMachine'" />
|
||||
<option name="timeStamp" value="61" />
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs</url>
|
||||
<line>60</line>
|
||||
<properties documentPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" containingFunctionPresentation="Method 'UIPanelLoaded'">
|
||||
<startOffsets>
|
||||
<option value="2040" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="2107" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="77" />
|
||||
</line-breakpoint>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
|
||||
|
||||
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
m_DefaultGroup: d790534e015d692428ac5a9ce7d2ceb6
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 5c0b3de6b8f117471ad9b1bb8d9f282a
|
||||
Hash: 0af5201342c5f367b42af240abcddd8d
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
@@ -106,6 +106,7 @@ MonoBehaviour:
|
||||
- PostProccessVolume
|
||||
- AudioInfoConfig
|
||||
- AudioSettingsConfig
|
||||
- RacerConfig
|
||||
m_SchemaTemplates: []
|
||||
m_GroupTemplateObjects:
|
||||
- {fileID: 11400000, guid: af0b5782a0090884db056705d7776701, type: 2}
|
||||
|
||||
@@ -15,6 +15,11 @@ MonoBehaviour:
|
||||
m_GroupName: Default Local Group
|
||||
m_GUID: d790534e015d692428ac5a9ce7d2ceb6
|
||||
m_SerializeEntries:
|
||||
- m_GUID: 0d2cf1d8a32701f56851c8b734cf7928
|
||||
m_Address: Assets/Resources_moved/UI/Panels/PlayerCounter.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 0f5388dd5b953e74281733a43c9bca5a
|
||||
m_Address: Audio/UI/01. Wake Up, Get Up, Get Out There
|
||||
m_ReadOnly: 0
|
||||
@@ -25,6 +30,12 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 14e849600b64a5a498f121440eebefd2
|
||||
m_Address: Assets/Resources_moved/Configs/UI/PlayerSceneChoose.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 17c5e56eb6c99db40b6093c9d543bb4f
|
||||
m_Address: Assets/Resources_moved/Configs/UI/CanvasSettingsConfig.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -45,6 +56,12 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 29779120ceccabb0ab008e48b44a39f4
|
||||
m_Address: Example/Race/Configs/AIBot
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- RacerConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 2e29259ec1cd556c6a33f0396d8f90e2
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchUpMenu.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -125,6 +142,12 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 7a5ae0cc826b85108aa9f0681d7f85cc
|
||||
m_Address: Assets/Resources_moved/Example/Race/Configs/AIRed.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- RacerConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 7eaa3bbea72a3b313878e71bc992c5fd
|
||||
m_Address: Assets/Resources_moved/Audio/UI/launch_select2.wav
|
||||
m_ReadOnly: 0
|
||||
@@ -157,6 +180,11 @@ MonoBehaviour:
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 9e77251929568a7c0806d17b11af8afb
|
||||
m_Address: Assets/Resources_moved/Example/Race/PlayerRacist.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: a63ae4e1d4b750b8a819dbadffa4b9f7
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchSelect2.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -179,6 +207,12 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: b93ef12d9a22d9b65ba68c45742f73a3
|
||||
m_Address: Assets/Resources_moved/Configs/Camera/ThirdPersonConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- CameraConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: becf493a34b841e4d8ea927261a05e9b
|
||||
m_Address: Camera/Camera
|
||||
m_ReadOnly: 0
|
||||
@@ -247,18 +281,17 @@ MonoBehaviour:
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: eb48bfdd161d536498ed1b2810fa476e
|
||||
m_Address: Example/Race/Racist (1)
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: ec0362c4c0d045cccbe89aee2231c3be
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Settings/AudioSourceSettingsConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioSettingsConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f146779bcd07c524097072c871162bff
|
||||
m_Address: Assets/Resources_moved/Configs/Camera/FPSConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- CameraConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f5e16d3d2576c5a4ca27ea09aeb18733
|
||||
m_Address: Assets/Resources_moved/Configs/Scenes/MainMenu.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -271,6 +304,12 @@ MonoBehaviour:
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f8c793cd022fab58682fadd51648a3c1
|
||||
m_Address: Example/Race/Configs/Player
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- RacerConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
m_ReadOnly: 0
|
||||
m_Settings: {fileID: 11400000, guid: c6c4cec5a69c4d144a5dfabd0405f447, type: 2}
|
||||
m_SchemaSet:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Code.Infrastructure.App;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
@@ -8,10 +9,20 @@ namespace Code.Debug
|
||||
public class SceneChooser : MonoBehaviour
|
||||
{
|
||||
[Inject] private SceneLoader _sceneLoader;
|
||||
|
||||
[Inject] private AppStateMachine _stateMachine;
|
||||
public void ChooseScene(int id)
|
||||
{
|
||||
_sceneLoader.LoadSceneAsync((SceneId)id, LoadSceneMode.Single).Forget();
|
||||
}
|
||||
|
||||
public void ChooseState(int id)
|
||||
{
|
||||
_stateMachine.SwitchState((AppStates)id);
|
||||
}
|
||||
|
||||
public void SwitchGameplay()
|
||||
{
|
||||
_stateMachine.SwitchState(AppStates.Gameplay).AllowStateTransition(AppStates.MainMenu);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using Reflex.Attributes;
|
||||
|
||||
namespace Code.Example.Race
|
||||
{
|
||||
public class RaceGame : IRacerLoadedHandle, IDisposable
|
||||
{
|
||||
private RaceScores _scores;
|
||||
|
||||
private IRacerFactory _racerFactory;
|
||||
private RaceTrackData _raceTrackData;
|
||||
private EventBus _eventBus;
|
||||
|
||||
public RaceGame(EventBus eventBus, IRacerFactory racerFactory, RaceTrackData raceTrackData, RaceScores scores)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_racerFactory = racerFactory;
|
||||
_raceTrackData = raceTrackData;
|
||||
_eventBus.Subscribe(this);
|
||||
|
||||
_scores = scores;
|
||||
|
||||
RandomizeRacers(raceTrackData.trackData.RacerPoints.Count);
|
||||
}
|
||||
|
||||
public void StartRacers()
|
||||
{
|
||||
foreach (var racer in PlacedRacers)
|
||||
{
|
||||
racer.StartRacer();
|
||||
}
|
||||
}
|
||||
|
||||
// DEBUG
|
||||
private List<RacerType> _randomizedTypes = new();
|
||||
|
||||
private void RandomizeRacers(int count)
|
||||
{
|
||||
_raceGameLoading = new Loading(count, RacersLoadCompleted);
|
||||
|
||||
_randomizedTypes.Add(RacerType.Player);
|
||||
|
||||
for (var i = 0; i < count - 1; i++)
|
||||
_randomizedTypes.Add((RacerType)UnityEngine.Random.Range(1, 3));
|
||||
|
||||
foreach (var type in _randomizedTypes) _racerFactory.LoadRacer(type);
|
||||
}
|
||||
|
||||
private void RacersLoadCompleted() =>
|
||||
_eventBus.RaiseEvent<IRaceGameInitializedHandle>(x => x.RaceGameReady());
|
||||
|
||||
public List<Racer.AI.Racer> PlacedRacers { get; } = new();
|
||||
|
||||
public void PlaceRacers()
|
||||
{
|
||||
for (var i = 0; i < _raceTrackData.trackData.RacerPoints.Count; i++)
|
||||
{
|
||||
PlacedRacers.Add(UnityEngine.Object.Instantiate(
|
||||
_racerPrefabs[_randomizedTypes[i]],
|
||||
_raceTrackData.trackData.RacerPoints[i].transform).GetComponent<Racer.AI.Racer>());
|
||||
PlacedRacers[^1].SetData(_racerPrefabs[_randomizedTypes[i]].Data);
|
||||
PlacedRacers[^1].Id = i;
|
||||
_scores.SubscribeRacer(i);
|
||||
}
|
||||
|
||||
foreach (var racer in PlacedRacers)
|
||||
{
|
||||
racer.Initialize(_raceTrackData.trackData.Checkpoints);
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<RacerType, Racer.AI.Racer> _racerPrefabs = new();
|
||||
private Loading _raceGameLoading;
|
||||
|
||||
public void RacerLoaded(RacerType type, Racer.AI.Racer racer)
|
||||
{
|
||||
if (racer)
|
||||
_racerPrefabs.Add(type, racer);
|
||||
|
||||
_raceGameLoading.DoProgress();
|
||||
}
|
||||
|
||||
// private Dictionary<RacerType, Racer.AI.Racer> _spawnedRacers = new();
|
||||
public void RacerCreated(RacerType type, Racer.AI.Racer racer)
|
||||
{
|
||||
// _spawnedRacers.Add(type, racer);
|
||||
// _raceGameLoading.DoProgress();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_eventBus.Unsubscribe(this);
|
||||
_racerPrefabs.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRaceGameInitializedHandle : IGlobalSubscriber
|
||||
{
|
||||
void RaceGameReady();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ffa5c181be7447cb1c41392018b193f
|
||||
timeCreated: 1769692114
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
|
||||
namespace Code.Example.Race
|
||||
{
|
||||
public class RaceScores : IRacerPassedCheckpointHandler, IDisposable
|
||||
{
|
||||
private Dictionary<int, int> _scores = new();
|
||||
private EventBus _eventBus;
|
||||
|
||||
public RaceScores(EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_eventBus.Subscribe(this);
|
||||
}
|
||||
public void SubscribeRacer(int racer)
|
||||
{
|
||||
_scores.Add(racer, 0);
|
||||
}
|
||||
|
||||
public void ChangeScore(int racer, int additionalScore)
|
||||
{
|
||||
_scores[racer] += additionalScore;
|
||||
_eventBus.RaiseEvent<IScoreChangedHandle>(x=> x.ScoreChanged(racer,additionalScore, GetScores()));
|
||||
}
|
||||
|
||||
public void UnsubscribeRacer(int racer)
|
||||
{
|
||||
_scores.Remove(racer);
|
||||
}
|
||||
|
||||
public List<KeyValuePair<int, int>> GetScores()
|
||||
{
|
||||
return _scores.OrderByDescending(x => x.Value).ToList();
|
||||
}
|
||||
|
||||
public void OnRacerPassedCheckpoint(Racer.AI.Racer racer) => ChangeScore(racer.Id,1);
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_eventBus.Unsubscribe(this);
|
||||
}
|
||||
}
|
||||
|
||||
public interface IScoreChangedHandle : IGlobalSubscriber
|
||||
{
|
||||
void ScoreChanged(int racer, int additionalScore, List<KeyValuePair<int, int>> scores);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b45fb028abcf43129f5c8100e7215f1f
|
||||
timeCreated: 1770051193
|
||||
@@ -4,7 +4,7 @@ using UnityEngine.AI;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class AIDebugRacer : MonoBehaviour
|
||||
public class AIDebugRacer : Racer
|
||||
{
|
||||
[SerializeField] private NavMeshAgent navMeshAgent;
|
||||
[SerializeField] private List<Transform> waypoints;
|
||||
@@ -15,11 +15,31 @@ namespace Code.Example.Race.Racer.AI
|
||||
_currentWaypointIndex++;
|
||||
}
|
||||
|
||||
public void NextWaypoint()
|
||||
public override void NextWaypoint()
|
||||
{
|
||||
if(_currentWaypointIndex >= waypoints.Count) _currentWaypointIndex = 0;
|
||||
|
||||
navMeshAgent.destination = waypoints[_currentWaypointIndex++].position;
|
||||
}
|
||||
|
||||
public override void StartRacer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void StopRacer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void SetData(RacerData data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void Initialize(List<Transform> waypoints)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class AIRacer : Racer
|
||||
{
|
||||
[SerializeField] private NavMeshAgent navMeshAgent;
|
||||
|
||||
public override void SetData(RacerData data)
|
||||
{
|
||||
Data = data;
|
||||
navMeshAgent.angularSpeed = data.angularSpeed;
|
||||
navMeshAgent.speed = data.speed;
|
||||
}
|
||||
|
||||
public override void Initialize(List<Transform> waypoints)
|
||||
{
|
||||
navMeshAgent.isStopped = true;
|
||||
|
||||
Waypoints = waypoints;
|
||||
navMeshAgent.destination = Waypoints[CurrentWaypointIndex].position;
|
||||
|
||||
CurrentWaypointIndex++;
|
||||
}
|
||||
public override void StartRacer() => navMeshAgent.isStopped = false;
|
||||
public override void StopRacer() => navMeshAgent.isStopped = true;
|
||||
public override void NextWaypoint()
|
||||
{
|
||||
if(CurrentWaypointIndex >= Waypoints.Count) CurrentWaypointIndex = 0;
|
||||
|
||||
navMeshAgent.destination = Waypoints[CurrentWaypointIndex++].position;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 05f30660967e40209aa88719fa498c78
|
||||
timeCreated: 1769694590
|
||||
@@ -0,0 +1,32 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class PlayerRacer : Racer
|
||||
{
|
||||
public override void SetData(RacerData data)
|
||||
{
|
||||
Data = data;
|
||||
}
|
||||
|
||||
public override void Initialize(List<Transform> waypoints)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void NextWaypoint()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void StartRacer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void StopRacer()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d3497d41c87415eab67cfc865262b79
|
||||
timeCreated: 1769619757
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public abstract class Racer : MonoBehaviour
|
||||
{
|
||||
protected List<Transform> Waypoints;
|
||||
protected int CurrentWaypointIndex;
|
||||
public RacerData Data { get; protected set; }
|
||||
public int Id { get; set; }
|
||||
public abstract void SetData(RacerData data);
|
||||
public abstract void Initialize(List<Transform> waypoints);
|
||||
public abstract void NextWaypoint();
|
||||
public abstract void StartRacer();
|
||||
public abstract void StopRacer();
|
||||
|
||||
[SerializeField] protected Rigidbody carRigidbody;
|
||||
public Rigidbody CarRigidbody => GetComponent<Rigidbody>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f87ed38713d4b779df9e46c83b03fb7
|
||||
timeCreated: 1769619306
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c5dfd92289c4aa38bb9a8bafc07d204
|
||||
timeCreated: 1769699718
|
||||
@@ -0,0 +1,32 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace Code.Example.Race.Racer.Car
|
||||
{
|
||||
public class CarWheelRotator : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private NavMeshAgent agent;
|
||||
[SerializeField] private Transform[] wheels;
|
||||
[SerializeField] private bool rotateDebug;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
Vector3 wheelRotation;
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
if (rotateDebug)
|
||||
{
|
||||
UnityEngine.Debug.DrawRay(
|
||||
wheel.position,
|
||||
Vector3.Project(agent.velocity, agent.gameObject.transform.right),
|
||||
Color.yellow, 900f);
|
||||
UnityEngine.Debug.Log(Vector3.Project(agent.velocity, agent.gameObject.transform.right).magnitude);
|
||||
}
|
||||
|
||||
wheelRotation = wheel.localRotation.eulerAngles;
|
||||
wheelRotation.y = Vector3.Project(agent.velocity, agent.gameObject.transform.right).magnitude * 10f;
|
||||
wheel.localRotation = Quaternion.Euler(wheelRotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3634956b4d55431b8772a8612e2e3a4d
|
||||
timeCreated: 1769699734
|
||||
@@ -0,0 +1,23 @@
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.Car
|
||||
{
|
||||
public class CarWheelRotatorPlayer : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Transform[] wheels;
|
||||
[SerializeField] private bool rotateDebug;
|
||||
|
||||
public void RotateWheels(float amount)
|
||||
{
|
||||
// UnityEngine.Debug.Log("Rotating Wheels: " + amount);
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
var wheelRotation = wheel.localRotation.eulerAngles;
|
||||
wheelRotation.y = amount;
|
||||
wheel.DOLocalRotate(wheelRotation, 1f);
|
||||
// wheel.localRotation = Quaternion.Euler(wheelRotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c90fde90552d48f592b955cbf1ec5c77
|
||||
timeCreated: 1769705011
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d9a0a4882314e2f91bb356ea0f82538
|
||||
timeCreated: 1769705255
|
||||
@@ -0,0 +1,55 @@
|
||||
using Code.Example.Race.Racer.AI;
|
||||
using Code.Example.Race.Racer.Car;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.Player
|
||||
{
|
||||
public class PlayerCarController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Rigidbody _rigidbody;
|
||||
[SerializeField] private PlayerCarInput _playerCarInput;
|
||||
[SerializeField] private PlayerRacer _playerRacer;
|
||||
[SerializeField] private CarWheelRotatorPlayer _wheels;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_playerCarInput.MovementInput == Vector2.zero) return;
|
||||
|
||||
// var movementForward = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
|
||||
//
|
||||
// _rigidbody.AddForce(movementForward * Time.fixedDeltaTime, ForceMode.Force);
|
||||
|
||||
var force = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
|
||||
_rigidbody.AddForce(force, ForceMode.Force);
|
||||
|
||||
// if (Mathf.Abs(_playerCarInput.MovementInput.y) < 0.1f && _rigidbody.linearVelocity.magnitude > 0.3f)
|
||||
// {
|
||||
// _rigidbody.AddForce(-_rigidbody.linearVelocity * (_playerRacer.Data.brakeForce * Time.fixedDeltaTime),
|
||||
// ForceMode.Force);
|
||||
// }
|
||||
|
||||
var steerInput = _playerCarInput.MovementInput.x;
|
||||
if (_playerCarInput.MovementInput.y < 0)
|
||||
steerInput = -_playerCarInput.MovementInput.x;
|
||||
|
||||
// var steer = steerInput * maxSteerAngle;
|
||||
//
|
||||
// if (frontLeftWheel) frontLeftWheel.localRotation = Quaternion.Euler(0, steer, 0);
|
||||
// if (frontRightWheel) frontRightWheel.localRotation = Quaternion.Euler(0, steer, 0);
|
||||
|
||||
if (!(_rigidbody.linearVelocity.magnitude > 0.5f)) return;
|
||||
|
||||
// var turn = steerInput * _playerRacer.Data.turnSpeed * Time.fixedDeltaTime;
|
||||
// _rigidbody.MoveRotation(_rigidbody.rotation * Quaternion.Euler(0, turn, 0));
|
||||
|
||||
if (!(_rigidbody.linearVelocity.magnitude is > 1f or < -1f)) return;
|
||||
|
||||
var rotateAmount = _playerCarInput.MovementInput.x * _playerRacer.Data.angularSpeed;
|
||||
|
||||
_wheels.RotateWheels(rotateAmount * 10 * Time.fixedDeltaTime);
|
||||
var wheelRotation = transform.rotation.eulerAngles;
|
||||
wheelRotation.y += rotateAmount;
|
||||
transform.rotation = Quaternion.Euler(wheelRotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b9e2e4a3ddc437ab250f609ea7fc33e
|
||||
timeCreated: 1769705285
|
||||
@@ -0,0 +1,166 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Code.Example.Race.Racer.Player
|
||||
{
|
||||
public class PlayerCarControllerRB : MonoBehaviour
|
||||
{
|
||||
public enum ControlMode
|
||||
{
|
||||
Keyboard,
|
||||
Buttons
|
||||
};
|
||||
|
||||
public enum Axel
|
||||
{
|
||||
Front,
|
||||
Rear
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct Wheel
|
||||
{
|
||||
public GameObject wheelModel;
|
||||
public WheelCollider wheelCollider;
|
||||
public GameObject wheelEffectObj;
|
||||
public ParticleSystem smokeParticle;
|
||||
public Axel axel;
|
||||
}
|
||||
|
||||
public ControlMode control;
|
||||
|
||||
public float maxAcceleration = 30.0f;
|
||||
public float brakeAcceleration = 50.0f;
|
||||
|
||||
public float turnSensitivity = 1.0f;
|
||||
public float maxSteerAngle = 30.0f;
|
||||
|
||||
public Vector3 _centerOfMass;
|
||||
|
||||
public List<Wheel> wheels;
|
||||
|
||||
float moveInput;
|
||||
float steerInput;
|
||||
|
||||
private Rigidbody carRb;
|
||||
|
||||
// private CarLights carLights;
|
||||
|
||||
void Start()
|
||||
{
|
||||
carRb = GetComponent<Rigidbody>();
|
||||
carRb.centerOfMass = _centerOfMass;
|
||||
|
||||
carLights = GetComponent<CarLights>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
GetInputs();
|
||||
AnimateWheels();
|
||||
WheelEffects();
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
Move();
|
||||
Steer();
|
||||
Brake();
|
||||
}
|
||||
|
||||
public void MoveInput(float input)
|
||||
{
|
||||
moveInput = input;
|
||||
}
|
||||
|
||||
public void SteerInput(float input)
|
||||
{
|
||||
steerInput = input;
|
||||
}
|
||||
|
||||
void GetInputs()
|
||||
{
|
||||
if (control == ControlMode.Keyboard)
|
||||
{
|
||||
moveInput = Input.GetAxis("Vertical");
|
||||
steerInput = Input.GetAxis("Horizontal");
|
||||
}
|
||||
}
|
||||
|
||||
void Move()
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
wheel.wheelCollider.motorTorque = moveInput * 600 * maxAcceleration * Time.deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
void Steer()
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
if (wheel.axel == Axel.Front)
|
||||
{
|
||||
var _steerAngle = steerInput * turnSensitivity * maxSteerAngle;
|
||||
wheel.wheelCollider.steerAngle = Mathf.Lerp(wheel.wheelCollider.steerAngle, _steerAngle, 0.6f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Brake()
|
||||
{
|
||||
if (Input.GetKey(KeyCode.Space) || moveInput == 0)
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
wheel.wheelCollider.brakeTorque = 300 * brakeAcceleration * Time.deltaTime;
|
||||
}
|
||||
|
||||
carLights.isBackLightOn = true;
|
||||
carLights.OperateBackLights();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
wheel.wheelCollider.brakeTorque = 0;
|
||||
}
|
||||
|
||||
carLights.isBackLightOn = false;
|
||||
carLights.OperateBackLights();
|
||||
}
|
||||
}
|
||||
|
||||
void AnimateWheels()
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
Quaternion rot;
|
||||
Vector3 pos;
|
||||
wheel.wheelCollider.GetWorldPose(out pos, out rot);
|
||||
wheel.wheelModel.transform.position = pos;
|
||||
wheel.wheelModel.transform.rotation = rot;
|
||||
}
|
||||
}
|
||||
|
||||
void WheelEffects()
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
//var dirtParticleMainSettings = wheel.smokeParticle.main;
|
||||
|
||||
if (Input.GetKey(KeyCode.Space) && wheel.axel == Axel.Rear && wheel.wheelCollider.isGrounded == true &&
|
||||
carRb.linearVelocity.magnitude >= 10.0f)
|
||||
{
|
||||
wheel.wheelEffectObj.GetComponentInChildren<TrailRenderer>().emitting = true;
|
||||
wheel.smokeParticle.Emit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
wheel.wheelEffectObj.GetComponentInChildren<TrailRenderer>().emitting = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f093c913ff54cb99cd22d7e473931e7
|
||||
timeCreated: 1770299509
|
||||
@@ -0,0 +1,32 @@
|
||||
using Code.Infrastructure.Input;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Code.Example.Race.Racer.Player
|
||||
{
|
||||
public class PlayerCarInput : MonoBehaviour
|
||||
{
|
||||
private IInputService _inputService;
|
||||
public Vector2 MovementInput { get; private set; }
|
||||
|
||||
[Inject]
|
||||
public void Construct(IInputService inputService)
|
||||
{
|
||||
_inputService = inputService;
|
||||
_inputService.BindActionPerformed((int)ActionMappings.Gameplay, (int)GameplayActions.Move, MovementPerformed);
|
||||
_inputService.BindActionCancel((int)ActionMappings.Gameplay, (int)GameplayActions.Move, MovementEnded);
|
||||
}
|
||||
|
||||
private void MovementPerformed(InputAction.CallbackContext context) => MovementInput = context.ReadValue<Vector2>();
|
||||
|
||||
private void MovementEnded(InputAction.CallbackContext context) => MovementInput = Vector2.zero;
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_inputService == null) return;
|
||||
_inputService.UnbindActionPerformed((int)ActionMappings.Gameplay, (int)GameplayActions.Move, MovementPerformed);
|
||||
_inputService.UnbindActionCanceled((int)ActionMappings.Gameplay, (int)GameplayActions.Move, MovementEnded);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e52315b65c57499981981e2507aaf7bc
|
||||
timeCreated: 1769705872
|
||||
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Code.Infrastructure.Configs;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using EventBus = Code.Infrastructure.EventBus.EventBus;
|
||||
|
||||
namespace Code.Example.Race.Racer
|
||||
{
|
||||
public interface IRacerFactory
|
||||
{
|
||||
RacerSettingsConfig GetConfig(RacerType racerType);
|
||||
UniTaskVoid LoadRacer(RacerType racerType);
|
||||
void ReleaseRacer(RacerType racerType);
|
||||
}
|
||||
|
||||
public class RacerFactory : IDisposable, IRacerFactory
|
||||
{
|
||||
private Dictionary<RacerType, RacerSettingsConfig> _racerConfigs;
|
||||
private Dictionary<RacerType, AsyncOperationHandle<GameObject>> _racerPrefabsHandle = new();
|
||||
|
||||
private string _racerConfigsLabel;
|
||||
private AsyncOperationHandle<IList<RacerSettingsConfig>> _racerConfigsHandle;
|
||||
|
||||
private EventBus _eventBus;
|
||||
|
||||
public RacerFactory(IConfigLocator configLocator, EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_racerConfigsLabel = configLocator.TryGetManyConfigAssetReferences<RacerSettingsConfig>();
|
||||
|
||||
LoadConfigs().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid LoadConfigs()
|
||||
{
|
||||
_racerConfigsHandle = Addressables.LoadAssetsAsync<RacerSettingsConfig>(_racerConfigsLabel);
|
||||
|
||||
await _racerConfigsHandle.ToUniTask();
|
||||
|
||||
_racerConfigs = _racerConfigsHandle.Result.ToDictionary(x => x.racerData.type);
|
||||
|
||||
_eventBus.RaiseEvent<IRacerFactoryInitializedHandle>(x => x.RacerFactoryInitialized());
|
||||
}
|
||||
|
||||
public RacerSettingsConfig GetConfig(RacerType racerType) => _racerConfigs[racerType];
|
||||
|
||||
public async UniTaskVoid LoadRacer(RacerType racerType)
|
||||
{
|
||||
if (_racerPrefabsHandle.ContainsKey(racerType))
|
||||
{
|
||||
_eventBus.RaiseEvent<IRacerLoadedHandle>(x => x.RacerLoaded(racerType, null));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
_racerPrefabsHandle.Add(racerType,
|
||||
Addressables.LoadAssetAsync<GameObject>(_racerConfigs[racerType].prefabReference));
|
||||
|
||||
await _racerPrefabsHandle[racerType].ToUniTask();
|
||||
var racer = _racerPrefabsHandle[racerType].Result.GetComponent<AI.Racer>();
|
||||
racer.SetData(_racerConfigs[racerType].racerData);
|
||||
|
||||
_eventBus.RaiseEvent<IRacerLoadedHandle>(x => x.RacerLoaded(racerType, racer));
|
||||
}
|
||||
|
||||
public void ReleaseRacer(RacerType racerType)
|
||||
{
|
||||
_racerPrefabsHandle[racerType].Release();
|
||||
_racerPrefabsHandle.Remove(racerType);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var prefab in _racerPrefabsHandle)
|
||||
prefab.Value.Release();
|
||||
|
||||
_racerConfigsHandle.Release();
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRacerFactoryInitializedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void RacerFactoryInitialized();
|
||||
}
|
||||
|
||||
public interface IRacerLoadedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void RacerLoaded(RacerType type, AI.Racer racer);
|
||||
public void RacerCreated(RacerType type, AI.Racer racer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ab404f94a89460eae107b9d453fa64d
|
||||
timeCreated: 1769620039
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using Code.Infrastructure.Generators;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace Code.Example.Race.Racer
|
||||
{
|
||||
[Config("Configs/Gameplay/RacerSettings", true)]
|
||||
public class RacerSettings
|
||||
{
|
||||
[ToConfig] public RacerData racerData;
|
||||
|
||||
[ToConfig] public AssetReference prefabReference;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct RacerData
|
||||
{
|
||||
public string name;
|
||||
public float speed;
|
||||
public float angularSpeed;
|
||||
public float maxAcceleration;
|
||||
public float brakeAcceleration;
|
||||
public float turnSensitivity;
|
||||
public float maxSteerAngle;
|
||||
public RacerType type;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f25b32b493144bfc9ca0c5016741d012
|
||||
timeCreated: 1769619229
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace Code.Example.Race.Racer
|
||||
{
|
||||
public enum RacerType
|
||||
{
|
||||
Player,
|
||||
AIGreen,
|
||||
AIRed
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 488f864fcf6f4632b8d50b39038f5472
|
||||
timeCreated: 1769619126
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Code.Example.Race.Racer
|
||||
{
|
||||
public class RacistSpawnListDebug
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9506da417a249929493862133eef179
|
||||
timeCreated: 1769685790
|
||||
@@ -1,14 +1,24 @@
|
||||
using Code.Example.Race.Racer.AI;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Track
|
||||
{
|
||||
public class CheckPoint : MonoBehaviour
|
||||
{
|
||||
[Inject] private EventBus _eventBus;
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
var racer = other.GetComponent<AIDebugRacer>();
|
||||
var racer = other.GetComponent<Racer.AI.Racer>();
|
||||
racer.NextWaypoint();
|
||||
|
||||
_eventBus.RaiseEvent<IRacerPassedCheckpointHandler>(h => h.OnRacerPassedCheckpoint(racer));
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRacerPassedCheckpointHandler : IGlobalSubscriber
|
||||
{
|
||||
void OnRacerPassedCheckpoint(Racer.AI.Racer racer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Track
|
||||
{
|
||||
public class RaceTrackData : MonoBehaviour
|
||||
{
|
||||
public Transform CameraPosition;
|
||||
public TrackData trackData;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct TrackData
|
||||
{
|
||||
public List<Transform> RacerPoints;
|
||||
public List<Transform> Checkpoints;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1847a22e722c47c48ec0ce7d5a929580
|
||||
timeCreated: 1769686034
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af09293375544928a9b19a6b697f214e
|
||||
timeCreated: 1770036714
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace Code.Example.Race.Track.WellEditor
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public static class CheckPointAsset
|
||||
{
|
||||
[MenuItem("GameObject/Track/CheckPoint", false, 1)]
|
||||
private static void CreateCustomPrefab()
|
||||
{
|
||||
// Define the path to your prefab in the Project (must be in an "Assets" relative path)
|
||||
var prefabPath = "Assets/Resources/Example/Misc/Point.prefab"; // Update with your actual path
|
||||
|
||||
// Load the prefab asset
|
||||
var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath);
|
||||
|
||||
if (!prefab)
|
||||
{
|
||||
Debug.LogError("Prefab not found at path: " + prefabPath);
|
||||
return;
|
||||
}
|
||||
|
||||
// Instantiate the prefab in the scene
|
||||
var newInstance = (GameObject)PrefabUtility.InstantiatePrefab(prefab);
|
||||
|
||||
// Ensure it is placed correctly in the Hierarchy and is undoable
|
||||
Undo.RegisterCreatedObjectUndo(newInstance, "Create Custom Prefab");
|
||||
Selection.activeGameObject = newInstance;
|
||||
|
||||
// Set parent if an object is selected
|
||||
if (!Selection.activeTransform)
|
||||
{
|
||||
newInstance.transform.parent = Selection.activeTransform;
|
||||
newInstance.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d55e4bcf05848eea361440799c21d7e
|
||||
timeCreated: 1770036738
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b875d3daf0cc42e997366fb0b9f0a722
|
||||
timeCreated: 1770042347
|
||||
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.UI;
|
||||
using Reflex.Attributes;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace Code.Example.Race.UI
|
||||
{
|
||||
public class PlayerScoreCounter : UIPanel, IScoreChangedHandle
|
||||
{
|
||||
[SerializeField] private TMP_Text playerScore;
|
||||
private EventBus _eventBus;
|
||||
|
||||
[Inject]
|
||||
private void Construct(EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_eventBus.Subscribe(this);
|
||||
}
|
||||
public override void Open(Action callback = null)
|
||||
{
|
||||
playerScore.gameObject.SetActive(true);
|
||||
// image.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke();
|
||||
}
|
||||
|
||||
public override void Close(Action callback = null)
|
||||
{
|
||||
playerScore.gameObject.SetActive(true);
|
||||
// image.DOColor(hiddenColor, 1f).onComplete += () => callback?.Invoke();
|
||||
}
|
||||
|
||||
public void OnRacerPassedCheckpoint(Racer.AI.Racer racer)
|
||||
{
|
||||
}
|
||||
|
||||
public void ScoreChanged(int racer, int additionalScore, List<KeyValuePair<int,int>> scores)
|
||||
{
|
||||
// if (racer.Data.type == RacerType.Player)
|
||||
string output = "";
|
||||
foreach (var score in scores) output += $@"{score.Key}: {score.Value}\n";
|
||||
playerScore.text = output;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf68a9a9d3a946f086dccd6d11741dcf
|
||||
timeCreated: 1770042362
|
||||
@@ -1,5 +1,6 @@
|
||||
using Code.Infrastructure.Audio;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Input;
|
||||
using Code.Infrastructure.UI;
|
||||
using Reflex.Attributes;
|
||||
|
||||
@@ -19,6 +20,7 @@ namespace Code.Infrastructure.App
|
||||
[Inject] public IUIService UIService { get; set; }
|
||||
[Inject] public IAudioFactory AudioFactory { get; set; }
|
||||
[Inject] public IAudioService AudioService { get; set; }
|
||||
[Inject] public IInputService InputService { get; set; }
|
||||
}
|
||||
|
||||
[Generators.StateMachine(typeof(AppStateMachineContext),typeof(AppStates))]
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Code.Debug;
|
||||
using Code.Infrastructure.Audio;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Configs;
|
||||
@@ -114,7 +115,7 @@ namespace Code.Infrastructure.App
|
||||
{
|
||||
_thatRightContainer.Resolve<CameraStateMachineContext>().cameraLoadedData = data;
|
||||
_thatRightContainer.Resolve<CameraStateMachine>().SwitchState(CameraMode.None)
|
||||
.AllowStateTransition(CameraMode.FirstPerson);
|
||||
.AllowStateTransition(CameraMode.ThirdPerson);
|
||||
|
||||
data.Camera.GetUniversalAdditionalCameraData().renderPostProcessing = true;
|
||||
|
||||
@@ -128,6 +129,7 @@ namespace Code.Infrastructure.App
|
||||
_initialLoading.DoProgress();
|
||||
|
||||
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Logo);
|
||||
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Loading);
|
||||
}
|
||||
|
||||
public void UILoaded(UIPanelType uiPanelType)
|
||||
|
||||
@@ -1,19 +1,34 @@
|
||||
using Code.Debug;
|
||||
using Code.Example.Race;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Reflex.Core;
|
||||
using Reflex.Enums;
|
||||
using UnityEngine;
|
||||
using Resolution = Reflex.Enums.Resolution;
|
||||
|
||||
namespace Code.Infrastructure.App.SceneInstallers
|
||||
{
|
||||
public class GameplaySceneInstaller : MonoBehaviour, IInstaller
|
||||
{
|
||||
[SerializeField] private RaceTrackData _raceTrackData;
|
||||
|
||||
public void InstallBindings(ContainerBuilder containerBuilder)
|
||||
{
|
||||
containerBuilder.RegisterType(typeof(RacerFactory), new[] { typeof(IRacerFactory) }, Lifetime.Scoped,
|
||||
Resolution.Lazy);
|
||||
containerBuilder.RegisterType(typeof(RaceScores), Lifetime.Scoped,
|
||||
Resolution.Lazy);
|
||||
containerBuilder.RegisterValue(_raceTrackData);
|
||||
|
||||
containerBuilder.OnContainerBuilt += PostInstall;
|
||||
}
|
||||
|
||||
private void PostInstall(Container container)
|
||||
{
|
||||
|
||||
container.Resolve<EventBus.EventBus>()
|
||||
.RaiseEvent<IOnGameplaySceneLoadedHandler>(x => x.OnGameplaySceneInitialized(container));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,12 @@
|
||||
using System.Threading;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.Audio;
|
||||
using Code.Infrastructure.Generators;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Code.Infrastructure.UI;
|
||||
using Reflex.Core;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Infrastructure.App.States
|
||||
{
|
||||
@@ -29,7 +33,7 @@ namespace Code.Infrastructure.App.States
|
||||
|
||||
protected override void OnExitState()
|
||||
{
|
||||
Context.AudioFactory.ReleaseAudios(AudioNames.UISounds);
|
||||
// Context.AudioFactory.ReleaseAudios(AudioNames.UISounds);
|
||||
Context.UIService.TryRemovePanel(UIPanelType.DebugSceneChooser);
|
||||
_eventBus.Unsubscribe(this);
|
||||
}
|
||||
@@ -40,10 +44,10 @@ namespace Code.Infrastructure.App.States
|
||||
|
||||
Context.UIService.OpenPanel(uiPanelType);
|
||||
}
|
||||
|
||||
public void OnReadyToPlay(AudioNames groupName)
|
||||
{
|
||||
Context.AudioService.PlayRepeatedly(AudioNames.UISounds,0,new CancellationTokenSource());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,102 @@
|
||||
using Code.Example.Race;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Camera.CameraStates;
|
||||
using Code.Infrastructure.Generators;
|
||||
using Code.Infrastructure.Input;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using UnityEngine;
|
||||
using Code.Infrastructure.UI;
|
||||
using Reflex.Core;
|
||||
using Reflex.Injectors;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Infrastructure.App.States
|
||||
{
|
||||
[State(typeof(AppStates),typeof(AppStateMachineContext))]
|
||||
[State(typeof(AppStates), typeof(AppStateMachineContext))]
|
||||
[StateRaisingEvent]
|
||||
public partial class GameplayState : IOnGameplaySceneLoadedHandler
|
||||
public partial class GameplayState : IOnGameplaySceneLoadedHandler, IRaceGameInitializedHandle, IRacerFactoryInitializedHandle, IUIPanelLoaded
|
||||
{
|
||||
public GameplayState(AppStateMachineContext context, EventBus.EventBus eventBus) : base(context, eventBus)
|
||||
{
|
||||
}
|
||||
|
||||
public override AppStates myState => AppStates.Gameplay;
|
||||
|
||||
private Loading _gameplayLoading;
|
||||
|
||||
protected override void OnEnterState()
|
||||
{
|
||||
EventBus.Subscribe(this);
|
||||
Context.UIService.OpenPanel(UIPanelType.Loading);
|
||||
|
||||
// Scene
|
||||
// RaceGame
|
||||
// Factory
|
||||
// PlayerCounter
|
||||
_gameplayLoading = new Loading(4, GameplayLoadingCompleted);
|
||||
Context.UIService.TryLoadPanel(UIPanelType.PlayerScoreCounter);
|
||||
Context.SceneLoader.LoadSceneAsync(SceneId.Gameplay, LoadSceneMode.Single).Forget();
|
||||
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
||||
}
|
||||
|
||||
private void GameplayLoadingCompleted()
|
||||
{
|
||||
_raceGame.PlaceRacers();
|
||||
|
||||
Context.Camera.SwitchState(CameraMode.ThirdPerson).AllowStateTransition(CameraMode.None);
|
||||
((ThirdPersonState)Context.Camera.CurrentBaseState).SetFollowTarget(_raceGame.PlacedRacers[0].gameObject.transform, _raceGame.PlacedRacers[0].CarRigidbody);
|
||||
|
||||
Context.UIService.ClosePanel(UIPanelType.Loading);
|
||||
_raceGame.StartRacers();
|
||||
}
|
||||
|
||||
protected override void OnExitState()
|
||||
{
|
||||
Context.InputService.DisableMap(ActionMappings.Gameplay);
|
||||
Context.UIService.TryRemovePanel(UIPanelType.PlayerScoreCounter);
|
||||
EventBus.Unsubscribe(this);
|
||||
}
|
||||
|
||||
public void OnGameplaySceneLoaded()
|
||||
{
|
||||
}
|
||||
|
||||
private RaceTrackData _raceTrackData;
|
||||
private RaceGame _raceGame;
|
||||
private Container UNTILTHEYFIXCONTAINERS;
|
||||
public void OnGameplaySceneInitialized(Container container)
|
||||
{
|
||||
_raceTrackData = container.Resolve<RaceTrackData>();
|
||||
|
||||
Context.Camera.Camera.transform.position = _raceTrackData.CameraPosition.transform.position;
|
||||
Context.Camera.Camera.transform.rotation = _raceTrackData.CameraPosition.transform.rotation;
|
||||
|
||||
UNTILTHEYFIXCONTAINERS = container;
|
||||
_gameplayLoading.DoProgress();
|
||||
|
||||
container.Resolve<IRacerFactory>();
|
||||
}
|
||||
|
||||
public void RaceGameReady()
|
||||
{
|
||||
_gameplayLoading.DoProgress();
|
||||
}
|
||||
|
||||
public void RacerFactoryInitialized()
|
||||
{
|
||||
_raceGame = (RaceGame)ConstructorInjector.Construct(typeof(RaceGame), UNTILTHEYFIXCONTAINERS);
|
||||
|
||||
_gameplayLoading.DoProgress();
|
||||
}
|
||||
|
||||
public void UILoaded(UIPanelType uiPanelType)
|
||||
{
|
||||
if (uiPanelType != UIPanelType.PlayerScoreCounter) return;
|
||||
|
||||
Context.UIService.OpenPanel(UIPanelType.PlayerScoreCounter);
|
||||
_gameplayLoading.DoProgress();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,10 +11,9 @@ namespace Code.Infrastructure.Audio
|
||||
[ToConfig] public int id;
|
||||
[ToConfig] public AssetReference fileReference;
|
||||
}
|
||||
[Config("Configs/Audio/AudioServiceSettings")]
|
||||
public class AudioServiceSettings
|
||||
[Config("Configs/Audio/AudioSourceSettings")]
|
||||
public class AudioSourcePrefab
|
||||
{
|
||||
[ToConfig] public AssetReference sourcePrefab;
|
||||
[ToConfig] public AssetReference mixerPrefab;
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@ namespace Code.Infrastructure.Audio
|
||||
|
||||
UniTaskVoid PlayRepeatedly(AudioNames groupName, int id,
|
||||
CancellationTokenSource cancellationTokenSource, AudioSourceType sourceType = AudioSourceType.NoBlend, AudioSource audioSource = null);
|
||||
|
||||
bool CheckClip(AudioNames groupName, int id);
|
||||
}
|
||||
|
||||
public partial class AudioService : IAudioClipsEventHandle, IAudioService
|
||||
@@ -40,7 +42,7 @@ namespace Code.Infrastructure.Audio
|
||||
for (int i = 0; i < typeof(AudioNames).GetEnumValues().Length; i++)
|
||||
_audioClips.Add((AudioNames)i, new Dictionary<int, AudioClip>());
|
||||
|
||||
InitializeMixer();
|
||||
//InitializeMixer();
|
||||
}
|
||||
|
||||
private partial void InitializeMixer();
|
||||
@@ -53,6 +55,8 @@ namespace Code.Infrastructure.Audio
|
||||
AudioSourceType sourceType = AudioSourceType.NoBlend,
|
||||
AudioSource audioSource = null)
|
||||
{
|
||||
if (!CheckClip(groupName, id)) return;
|
||||
|
||||
if (!audioSource) audioSource = _pool.GetSource(sourceType);
|
||||
|
||||
audioSource.transform.position = position;
|
||||
@@ -67,6 +71,8 @@ namespace Code.Infrastructure.Audio
|
||||
public async UniTaskVoid PlayRepeatedly(AudioNames groupName, int id,
|
||||
CancellationTokenSource cancellationTokenSource, AudioSourceType sourceType = AudioSourceType.NoBlend, AudioSource audioSource = null)
|
||||
{
|
||||
if (!CheckClip(groupName, id)) return;
|
||||
|
||||
if (!audioSource) audioSource = _pool.GetSource(sourceType);
|
||||
if(!audioSource.resource) audioSource.resource = GetClip(groupName, id);
|
||||
|
||||
@@ -91,6 +97,7 @@ namespace Code.Infrastructure.Audio
|
||||
}
|
||||
|
||||
public AudioClip GetClip(AudioNames groupName, int id) => _audioClips[groupName][id];
|
||||
public bool CheckClip(AudioNames groupName, int id) => _audioClips[groupName].ContainsKey(id);
|
||||
|
||||
public void AudioClipsLoaded(AudioNames groupname, Dictionary<int, AudioClip> clips)
|
||||
{
|
||||
@@ -100,6 +107,7 @@ namespace Code.Infrastructure.Audio
|
||||
|
||||
public void AudioClipsUnLoaded(AudioNames groupName)
|
||||
{
|
||||
_audioClips[groupName].Clear();
|
||||
_audioClips[groupName] = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Code.Infrastructure.Audio
|
||||
private string _configsLabel;
|
||||
private AsyncOperationHandle<IList<AudioSourceSettingsConfig>> _handles;
|
||||
private AssetReference _sourcePrefabConfigReference;
|
||||
private AsyncOperationHandle<AudioServiceSettingsConfig> _prefabConfigHandle;
|
||||
private AsyncOperationHandle<AudioSourcePrefabConfig> _prefabConfigHandle;
|
||||
private AsyncOperationHandle<GameObject> _prefabHandle;
|
||||
private EventBus.EventBus _eventBus;
|
||||
|
||||
@@ -42,14 +42,14 @@ namespace Code.Infrastructure.Audio
|
||||
_eventBus = eventBus;
|
||||
|
||||
_configsLabel = configLocator.TryGetManyConfigAssetReferences<AudioSourceSettingsConfig>();
|
||||
_sourcePrefabConfigReference = configLocator.TryGetConfigAssetReference<AudioServiceSettingsConfig>();
|
||||
_sourcePrefabConfigReference = configLocator.TryGetConfigAssetReference<AudioSourcePrefabConfig>();
|
||||
|
||||
LoadConfigs().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid LoadConfigs()
|
||||
{
|
||||
_prefabConfigHandle = Addressables.LoadAssetAsync<AudioServiceSettingsConfig>(_sourcePrefabConfigReference);
|
||||
_prefabConfigHandle = Addressables.LoadAssetAsync<AudioSourcePrefabConfig>(_sourcePrefabConfigReference);
|
||||
_handles = Addressables.LoadAssetsAsync<AudioSourceSettingsConfig>(_configsLabel);
|
||||
|
||||
await UniTask.WhenAll(
|
||||
@@ -102,58 +102,7 @@ namespace Code.Infrastructure.Audio
|
||||
{
|
||||
Object.Destroy(source.gameObject);
|
||||
}
|
||||
//
|
||||
// public async UniTaskVoid PlayOneShot(AudioClip clip, Vector3 position, AudioMixerGroup audioMixerGroup, AudioSourceType audioSourceType = AudioSourceType.NoBlend, Action onComplete = null)
|
||||
// {
|
||||
// AudioSource source = _pool.Get();
|
||||
// source.PlayOneShot(clip);
|
||||
// source.spatialBlend = _settings[audioSourceType].spatialBlend;
|
||||
// source.transform.position = position;
|
||||
// source.outputAudioMixerGroup = audioMixerGroup;
|
||||
//
|
||||
// await UniTask.WaitUntilValueChanged(source, x => x.isPlaying);
|
||||
// onComplete?.Invoke();
|
||||
// _pool.Release(source);
|
||||
// }
|
||||
// public async UniTaskVoid PlayOneShot(AudioClip clip, AudioMixerGroup audioMixerGroup, AudioSourceType audioSourceType = AudioSourceType.NoBlend, Action onComplete = null)
|
||||
// {
|
||||
// AudioSource source = _pool.Get();
|
||||
// source.PlayOneShot(clip);
|
||||
// source.spatialBlend = _settings[audioSourceType].spatialBlend;
|
||||
// source.outputAudioMixerGroup = audioMixerGroup;
|
||||
//
|
||||
// await UniTask.WaitUntilValueChanged(source, x => x.isPlaying);
|
||||
// onComplete?.Invoke();
|
||||
// _pool.Release(source);
|
||||
// }
|
||||
// public async UniTaskVoid PlayOneShot(AudioSource audioSource, AudioClip clip, AudioMixerGroup audioMixerGroup, AudioSourceType audioSourceType = AudioSourceType.NoBlend, Action onComplete = null)
|
||||
// {
|
||||
// audioSource.PlayOneShot(clip);
|
||||
// audioSource.spatialBlend = _settings[audioSourceType].spatialBlend;
|
||||
// audioSource.outputAudioMixerGroup = audioMixerGroup;
|
||||
//
|
||||
// // TODO Потом сделать. Можно с cancellation, но сейчас лень. Ну правда
|
||||
// await UniTask.WaitUntilValueChanged(audioSource, x => x.isPlaying);
|
||||
//
|
||||
// if (!audioSource) return;
|
||||
//
|
||||
// _pool.Release(audioSource);
|
||||
// onComplete?.Invoke();
|
||||
// }
|
||||
// public async UniTaskVoid PlayOneShot(AudioClip clip, AudioMixerGroup audioMixerGroup, CancellationTokenSource cancellationToken, AudioSourceType audioSourceType = AudioSourceType.NoBlend, Action onComplete = null)
|
||||
// {
|
||||
// AudioSource source = _pool.Get();
|
||||
// source.PlayOneShot(clip);
|
||||
// source.spatialBlend = _settings[audioSourceType].spatialBlend;
|
||||
// source.outputAudioMixerGroup = audioMixerGroup;
|
||||
//
|
||||
// var (isCanceled, _) = await UniTask.WaitUntilValueChanged(source, x => x.isPlaying, cancellationToken: cancellationToken.Token).SuppressCancellationThrow();
|
||||
//
|
||||
// _pool.Release(source);
|
||||
//
|
||||
// if(!isCanceled) onComplete?.Invoke();
|
||||
// else cancellationToken.Dispose();
|
||||
// }
|
||||
|
||||
public AudioSource GetSource(AudioSourceType sourceType)
|
||||
{
|
||||
var source = _pool.Get();
|
||||
|
||||
@@ -10,9 +10,7 @@ namespace Code.Infrastructure.Camera
|
||||
public enum CameraMode
|
||||
{
|
||||
None,
|
||||
FirstPerson,
|
||||
Static,
|
||||
Cinematic
|
||||
ThirdPerson
|
||||
}
|
||||
|
||||
[Config("Configs/Camera/CameraConfig")]
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class RacingCamera : MonoBehaviour
|
||||
{
|
||||
public enum CameraMode
|
||||
{
|
||||
Follow,
|
||||
Orbit,
|
||||
Hood,
|
||||
Bumper
|
||||
}
|
||||
|
||||
[Header("Target")]
|
||||
public Transform carTarget;
|
||||
public Rigidbody carRigidbody;
|
||||
|
||||
[Header("Camera Mode")]
|
||||
public CameraMode currentMode = CameraMode.Follow;
|
||||
public KeyCode switchKey = KeyCode.C;
|
||||
|
||||
[Header("Follow Mode Settings")]
|
||||
public Vector3 followOffset = new Vector3(0, 3, -8);
|
||||
public float followSmoothTime = 0.1f;
|
||||
|
||||
[Header("Orbit Mode Settings")]
|
||||
public float orbitDistance = 10f;
|
||||
public float orbitHeight = 3f;
|
||||
public float orbitSpeed = 2f;
|
||||
private float orbitAngle = 0f;
|
||||
|
||||
[Header("First Person Settings")]
|
||||
public Transform hoodCameraPosition;
|
||||
public Transform bumperCameraPosition;
|
||||
|
||||
[Header("Look Settings")]
|
||||
public float lookAheadDistance = 5f;
|
||||
public Vector3 lookAtOffset = new Vector3(0, 1.5f, 0);
|
||||
|
||||
private Vector3 velocity = Vector3.zero;
|
||||
private Camera cam;
|
||||
|
||||
void Start()
|
||||
{
|
||||
cam = GetComponent<Camera>();
|
||||
if (carRigidbody == null && carTarget != null)
|
||||
carRigidbody = carTarget.GetComponent<Rigidbody>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// Переключение режимов камеры
|
||||
if (Input.GetKeyDown(switchKey))
|
||||
{
|
||||
SwitchCameraMode();
|
||||
}
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if (carTarget == null) return;
|
||||
|
||||
switch (currentMode)
|
||||
{
|
||||
case CameraMode.Follow:
|
||||
UpdateFollowCamera();
|
||||
break;
|
||||
|
||||
case CameraMode.Orbit:
|
||||
UpdateOrbitCamera();
|
||||
break;
|
||||
|
||||
case CameraMode.Hood:
|
||||
UpdateFirstPersonCamera(hoodCameraPosition);
|
||||
break;
|
||||
|
||||
case CameraMode.Bumper:
|
||||
UpdateFirstPersonCamera(bumperCameraPosition);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SwitchCameraMode()
|
||||
{
|
||||
currentMode = (CameraMode)(((int)currentMode + 1) % 4);
|
||||
Debug.Log("Camera mode: " + currentMode);
|
||||
}
|
||||
|
||||
void UpdateFollowCamera()
|
||||
{
|
||||
// Рассчитываем позицию с учетом скорости
|
||||
Vector3 targetPosition = CalculateFollowPosition();
|
||||
|
||||
// Плавное перемещение
|
||||
transform.position = Vector3.SmoothDamp(
|
||||
transform.position,
|
||||
targetPosition,
|
||||
ref velocity,
|
||||
followSmoothTime
|
||||
);
|
||||
|
||||
// Направление взгляда с опережением
|
||||
Vector3 lookTarget = carTarget.position +
|
||||
carTarget.forward * lookAheadDistance +
|
||||
lookAtOffset;
|
||||
|
||||
transform.LookAt(lookTarget);
|
||||
}
|
||||
|
||||
Vector3 CalculateFollowPosition()
|
||||
{
|
||||
Vector3 basePosition = carTarget.position +
|
||||
carTarget.TransformDirection(followOffset);
|
||||
|
||||
// Динамическое смещение на основе скорости
|
||||
if (carRigidbody != null)
|
||||
{
|
||||
float speedFactor = Mathf.Clamp01(carRigidbody.linearVelocity.magnitude / 50f);
|
||||
Vector3 speedOffset = carTarget.forward * speedFactor * -3f;
|
||||
basePosition += speedOffset;
|
||||
}
|
||||
|
||||
return basePosition;
|
||||
}
|
||||
|
||||
void UpdateOrbitCamera()
|
||||
{
|
||||
// Автоматическое вращение вокруг машины
|
||||
orbitAngle += orbitSpeed * Time.deltaTime;
|
||||
|
||||
// Рассчитываем позицию по окружности
|
||||
float x = Mathf.Sin(orbitAngle) * orbitDistance;
|
||||
float z = Mathf.Cos(orbitAngle) * orbitDistance;
|
||||
|
||||
Vector3 orbitPosition = carTarget.position +
|
||||
new Vector3(x, orbitHeight, z);
|
||||
|
||||
transform.position = orbitPosition;
|
||||
transform.LookAt(carTarget.position + lookAtOffset);
|
||||
}
|
||||
|
||||
void UpdateFirstPersonCamera(Transform cameraPosition)
|
||||
{
|
||||
if (cameraPosition == null)
|
||||
{
|
||||
// Резервная позиция
|
||||
transform.position = carTarget.position +
|
||||
carTarget.forward * 1f +
|
||||
Vector3.up * 1.5f;
|
||||
transform.rotation = carTarget.rotation;
|
||||
return;
|
||||
}
|
||||
|
||||
transform.position = cameraPosition.position;
|
||||
transform.rotation = cameraPosition.rotation;
|
||||
|
||||
// Добавляем небольшую тряску на скорости
|
||||
if (carRigidbody != null)
|
||||
{
|
||||
float shakeAmount = carRigidbody.linearVelocity.magnitude * 0.001f;
|
||||
transform.position += Random.insideUnitSphere * shakeAmount;
|
||||
}
|
||||
}
|
||||
|
||||
// Визуализация в редакторе
|
||||
void OnDrawGizmosSelected()
|
||||
{
|
||||
if (carTarget != null)
|
||||
{
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawWireSphere(carTarget.position + lookAtOffset, 0.5f);
|
||||
Gizmos.DrawLine(transform.position, carTarget.position + lookAtOffset);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a6cd725a6ce4cc0b50b8a04be749bd1
|
||||
timeCreated: 1770228499
|
||||
@@ -0,0 +1,92 @@
|
||||
using Code.Infrastructure.Generators;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Infrastructure.Camera.CameraStates
|
||||
{
|
||||
[State(typeof(CameraMode),typeof(CameraStateMachineContext), true)]
|
||||
public partial class ThirdPersonState : BaseCameraState
|
||||
{
|
||||
public ThirdPersonState(CameraStateMachineContext context, EventBus.EventBus eventBus) : base(context, eventBus)
|
||||
{
|
||||
}
|
||||
|
||||
public override CameraMode myState => CameraMode.ThirdPerson;
|
||||
protected override void OnEnterState()
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnExitState()
|
||||
{
|
||||
}
|
||||
|
||||
protected override void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion q)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
private Transform _carTarget;
|
||||
private Rigidbody _carRigidbody;
|
||||
|
||||
public void SetFollowTarget(Transform carTarget, Rigidbody carRigidbody)
|
||||
{
|
||||
_carTarget = carTarget;
|
||||
_carRigidbody = carRigidbody;
|
||||
}
|
||||
|
||||
private Vector3 _lookAtOffset = new Vector3(0, 1.5f, 0);
|
||||
protected override void HandlePosition(float deltaTime, object targetRotation)
|
||||
{
|
||||
Fuck();
|
||||
}
|
||||
|
||||
private void Fuck()
|
||||
{
|
||||
// Автоматическое вращение вокруг машины
|
||||
Vector3 targetPosition = CalculateFollowPosition();
|
||||
|
||||
// Плавное перемещение
|
||||
|
||||
Vector3 velocity = _carRigidbody ? _carRigidbody.linearVelocity : new Vector3();
|
||||
// Context.cameraLoadedData.Camera.transform.DOMove(targetPosition,
|
||||
// Context.cameraLoadedData.SettingsConfigs[CameraMode.ThirdPerson].followSharpness);
|
||||
Context.cameraLoadedData.Camera.transform.position = Vector3.SmoothDamp(
|
||||
Context.cameraLoadedData.Camera.transform.position,
|
||||
targetPosition,
|
||||
ref velocity,
|
||||
Context.cameraLoadedData.SettingsConfigs[CameraMode.ThirdPerson].followSharpness
|
||||
);
|
||||
|
||||
// Направление взгляда с опережением
|
||||
Vector3 lookTarget = _carTarget.position +
|
||||
_carTarget.forward * Context.cameraLoadedData.SettingsConfigs[CameraMode.ThirdPerson].defaultDistance +
|
||||
_lookAtOffset;
|
||||
|
||||
Context.cameraLoadedData.Camera.transform.LookAt(lookTarget);
|
||||
}
|
||||
|
||||
private Vector3 _followOffset = new Vector3(0, 3, -8);
|
||||
|
||||
private Vector3 CalculateFollowPosition()
|
||||
{
|
||||
Vector3 basePosition = _carTarget.position +
|
||||
_carTarget.TransformDirection(_followOffset);
|
||||
|
||||
// Динамическое смещение на основе скорости
|
||||
if (!_carRigidbody) return basePosition;
|
||||
|
||||
var speedFactor = Mathf.Clamp01(_carRigidbody.linearVelocity.magnitude / 50f);
|
||||
var speedOffset = _carTarget.forward * (speedFactor * -3f);
|
||||
basePosition += speedOffset;
|
||||
|
||||
return basePosition;
|
||||
}
|
||||
public override void Update()
|
||||
{
|
||||
}
|
||||
|
||||
public override void LateUpdate()
|
||||
{
|
||||
Fuck();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 817473133bf54c7aab1ea3e093561e8e
|
||||
timeCreated: 1770227852
|
||||
@@ -31,6 +31,7 @@ using Code.Infrastructure.EventBus;
|
||||
public interface IOn{member.Name}SceneLoadedHandler : IGlobalSubscriber
|
||||
{{
|
||||
void On{member.Name}SceneLoaded();
|
||||
void On{member.Name}SceneInitialized(Reflex.Core.Container container); // Until its fixed
|
||||
}}
|
||||
";
|
||||
dictionaryCode += $@"
|
||||
|
||||
@@ -4,9 +4,9 @@ using Code.Infrastructure.Configs;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.Generators;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.ResourceManagement.ResourceProviders;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Infrastructure.SceneLoader
|
||||
@@ -37,15 +37,19 @@ namespace Code.Infrastructure.SceneLoader
|
||||
// TODO типилище
|
||||
public async UniTaskVoid LoadSceneAsync(SceneId id, LoadSceneMode loadMode)
|
||||
{
|
||||
await Addressables.LoadSceneAsync(_sceneInfos[id].SceneAsset, loadMode);
|
||||
_loadedScenes.Add(id,Addressables.LoadSceneAsync(_sceneInfos[id].SceneAsset, loadMode));
|
||||
|
||||
await _loadedScenes[id];
|
||||
|
||||
_scenesActions[id]();
|
||||
}
|
||||
|
||||
private Dictionary<SceneId, AsyncOperationHandle<SceneInstance>> _loadedScenes = new();
|
||||
public Scene GetScene(SceneId id) => _loadedScenes[id].Result.Scene;
|
||||
public async UniTaskVoid UnloadSceneAsync(SceneId id)
|
||||
{
|
||||
// TODO НЕВОЗМОЖНО ВЫГРУЗИТЬ БЛЯДСКИЕ СЦЕНЫ
|
||||
// await Addressables.UnloadSceneAsync(_sceneInfos[])
|
||||
await Addressables.UnloadSceneAsync(_loadedScenes[id]);
|
||||
_loadedScenes.Remove(id);
|
||||
}
|
||||
|
||||
private AsyncOperationHandle<IList<SceneInfoConfig>> _configHandle;
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Code.Infrastructure.UI
|
||||
Logo,
|
||||
Loading,
|
||||
DebugSceneChooser,
|
||||
PlayerScoreCounter,
|
||||
DebugMenu
|
||||
}
|
||||
}
|
||||
@@ -1,708 +0,0 @@
|
||||
# Fast/Live Script Reload
|
||||
|
||||
Tool will allow you to iterate quicker on your code. You simply go into play mode, make a change to any file and it'll be compiled on the fly and hot-reloaded in your running play-mode session.
|
||||
|
||||
## Getting started
|
||||
1) Import
|
||||
2) Welcome screen will open - it contains all needed info to get started as well as support links and configuration.
|
||||
`You can always get back to this screen via 'Window -> Fast/Live Script Reload -> Start Screen'`
|
||||
3) Go to Launch Demo -> Basic Example window
|
||||
4) Follow instructions listed there
|
||||
|
||||
> During startup asset will check if Unity Auto Refresh is enabled and offer to adjust it in order to work properly. Depending on your workflow you want it in 'EnabledOutsidePlaymode' or 'Disabled' - this is to ensure Unity will not trigger script compilation on changes and will let Fast Script Reload to work.
|
||||
|
||||
> Sometimes Unity can be quite stubborn and try to auto-reload scripts even with Auto-Reload turned off, if you can still see standard 'Reloading script assemblies' progress bar on change please go to:
|
||||
> 'Window -> Fast Script Reload -> Start Screen -> Reload -> Force prevent assembly reload during playmode'.
|
||||
> This way tool will lock reload in code when you enter playmode.
|
||||
|
||||
```
|
||||
Example scene 'Point' material should automatically detect URP or surface shader
|
||||
If it shows pink, please adjust by picking shader manually:
|
||||
1) URP: 'Shader Graphs/Point URP'
|
||||
2) Surface: 'Graph/Point Surface'
|
||||
```
|
||||
|
||||
## On-Device Hot-Reload - Live Script reload
|
||||
There's an addon to this tool - Live Script Reload - that'll allow you to use same functionality over the network in device build, eg:
|
||||
- android (including VR headsets like Quest 2)
|
||||
- standalone windows
|
||||
|
||||
[Find more details here](https://immersivevrtools.com/redirect/fast-script-reload/live-script-reload-extension)
|
||||
|
||||
**Live Script Reload is using Fast Script Reload as a base asset - documentation is combined, if you don't use Live Script Reload you can skip any sections in this document prefixed with [Live-Reload]**
|
||||
|
||||
## How Unity Hot Reload functionality is made? Technical Approach Breakdown
|
||||
If you'd like to know how tool works from technical point of view - have a look at blog series which gets deeper into the subject:
|
||||
|
||||
[1) How to build Hot Reload For Unity](https://immersivevrtools.com/Blog/how-to-build-hot-reload-functionality-for-unity)
|
||||
|
||||
[2) Hot Reload - on device, (eg Android / Windows Exe)](https://immersivevrtools.com/Blog/how-to-build-unity-hot-reload-on-device)
|
||||
|
||||
## Reporting Compilation Errors
|
||||
I've put lots of effort to test various code patterns in various codebases. Still - it's possible you'll find some instances where code would not compile, it's easiest to:
|
||||
1) Look at compiler error and compare with generated source code, usually it'll be very obvious why issue is occuring
|
||||
2) Refactor problematic part (look at limitations section as they'll explain how)
|
||||
3) Let me know via support email and I'll get it fixed
|
||||
|
||||
## Executing custom code on hot reload
|
||||
Custom code can be executed on hot reload by adding a method to changed script.
|
||||
|
||||
**You can see example by adjusting code in 'Graph.cs' file.**
|
||||
|
||||
```
|
||||
void OnScriptHotReload()
|
||||
{
|
||||
//do whatever you want to do with access to instance via 'this'
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
static void OnScriptHotReloadNoInstance()
|
||||
{
|
||||
//do whatever you want to do without instance
|
||||
//useful if you've added brand new type
|
||||
// or want to simply execute some code without |any instance created.
|
||||
//Like reload scene, call test function etc
|
||||
}
|
||||
```
|
||||
|
||||
## EXPERIMENTAL Adding New Fields
|
||||
Asset has an experimental support for adding new fields at runtime which will also render in Editor and allow you to tweak values - same as with normal fields.
|
||||
|
||||
To enable, please:
|
||||
`Window -> Fast Script Reload -> Start Window -> New Fields -> Enable experimental added field support`.
|
||||
|
||||
> As this is an experimental feature please expect it to break more often! It'd be great help if you could report any issues via Discord / email.
|
||||
|
||||
### New Fields - specific limitations
|
||||
|
||||
- outside classes can not call new fields added at runtime
|
||||
- new fields will only show in editor if they were already used at least once
|
||||
- eg if you've added a variable into a method, on first call that variable will be initialized and will start showing in editor
|
||||
|
||||
### New Fields - performance
|
||||
For new fields to work your code will be adjusted. Instead of calling fields directly your code will call into a method that retrieves value from dynamic dictionary.
|
||||
|
||||
Due to that there'll be some overhead with:
|
||||
- looking up proper object and new-field value in dictionary
|
||||
- initializing values
|
||||
- use of dynamic type, which will introduce some additional casts
|
||||
|
||||
> All that shouldn't really add too much overhead on dev-machine - you may lose few FPS though.
|
||||
|
||||
## EXPERIMENTAL In-editor Hot Reload (outside of playmode)
|
||||
Asset has an experimental support for hot reload outside of playmode. However with limitations as they are now - it
|
||||
is intended for some specific use cases (like iterating on editor scripts).
|
||||
|
||||
> **Feature is not intended as a replacement for Unity compile / reload mechanism**
|
||||
|
||||
To enable, please:
|
||||
`Window -> Fast Script Reload -> Start Window -> Editor Hot-Reload -> Enable Hot-Reload outside of play mode`.
|
||||
|
||||
> As this is an experimental feature please expect it to break more often! It'd be great help if you could report any issues via Discord / email.
|
||||
|
||||
## Debugging
|
||||
Debugging is fully supported although breakpoints in your original file won't be hit.
|
||||
|
||||
Once change is compiled, you'll get an option to open generated file [via clickable link in console window] in which you can set breakpoints.
|
||||
|
||||
Tool can also auto-open generated files for you on change for simpler access, you can find option via 'Window -> Fast Script Reload -> Start Screen -> Debugging -> Auto open generated source file for debugging'
|
||||
|
||||
> Debugging with Rider for Unity 2019 and 2020 is having some issues, you can only open debuggable files with auto-open feature. Clicking a file in console causes subtle static-variables reload (not full domain reload) that'll break your play-session.
|
||||
|
||||
### Adding Function Breakpoint
|
||||
If for whatever reason debugger breakpoint is not hit you can try setting Function Breakpoint in your IDE.
|
||||
|
||||
For type name you want to include `<OriginalTypeName>__Patched_`, the `__Patched_` postfix is auto-added by asset to prevent name clash.
|
||||
Function name remains unchanged.
|
||||
|
||||
## Production Build
|
||||
For Fast Script Reload asset code will be excluded from any builds.
|
||||
|
||||
For Live Script Reload you should exclude it from final production build, do that via:
|
||||
- 'Window -> Fast Script Reload -> Welcome Screen -> Build -> Enable Hot Reload For Build' - untick
|
||||
|
||||
**When building via File -> Build Settings - you'll also see Live Script Reload status under 'Build' button. You can click 'Adjust' button which will take you to build page for asset.**
|
||||
```This is designed to make sure you don't accidentally build tool into release althoguh best approach would be to ensure your release process takes care of that.```
|
||||
|
||||
## User Defined Script Overrides
|
||||
For asset to hot reload your changes it needs to make some adjustments to code. This could cause some issues as described in limitations section.
|
||||
|
||||
I continuously work on mitigating limitations. When they happen you can help yourself quickly by creating user defined script override.
|
||||
|
||||
Those are simply overrides on a per-file / method basis - when specified their contents will be used for final source code. Allowing you to simply fix any issues.
|
||||
This is especially helpful with larger files.
|
||||
|
||||
### Replacing methods
|
||||
You can replace existing methods by specifying their full signature in correct type - contents will be then replaced.
|
||||
> If no match for the method signature is found it'll be ignored
|
||||
|
||||
For example, let's look at limitation with assigning Singleton to Instance using 'this' keyword
|
||||
> That limitation is already solved although it'll serve as a clean example illustrating the feature
|
||||
|
||||
Following code:
|
||||
```
|
||||
public class MySingleton: MonoBehaviour {
|
||||
public static MySingleton Instance;
|
||||
|
||||
void Start() {
|
||||
Instance = this;
|
||||
}
|
||||
|
||||
void SomeOtherMethod() {
|
||||
//some other logic
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Would be rewritten to:
|
||||
```
|
||||
public class MySingleton__Patched_: MonoBehaviour { //FSR: name change to include __Patched_ postfix to prevent name clashes
|
||||
public static MySingleton Instance;
|
||||
|
||||
void Start() {
|
||||
//assigning 'this' (now of type MySingleton__Patched_) to
|
||||
//'Instance' of type MySingleton will now show compilation error due to type mismach
|
||||
Instance = this;
|
||||
}
|
||||
|
||||
void SomeOtherMethod() {
|
||||
//some other logic
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
In that case you can create a user script rewrite override, to do so:
|
||||
1) In Unity project panel right-click on 'MySingleton.cs'
|
||||
2) Select `Fast Script Reload -> Add \ Open User Script Rewrite Override`
|
||||
3) Asset will create override file for you with some template already in (there's also description in top comment how to use)
|
||||
|
||||
Override:
|
||||
```
|
||||
public class MySingleton__Patched_: MonoBehaviour {
|
||||
void Start() { //override will target class specified above and only defined methods, in that case Start()
|
||||
Instance = (MySingleton)(object)this; //contents will be changed as they are visible here, casting to object and then to expected type will correct the issue
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Adding types
|
||||
When your code is recompiled it lands in new assembly. This can cause some issues, for example if your class is using `internal`
|
||||
interface - after recompile it won't be able to access that interface.
|
||||
|
||||
Following code will fail to compile when changing MyClass as it won't be able to access IInterface which is `internal`:
|
||||
```
|
||||
//Defined in file MyClass.cs
|
||||
public class MyClass: IInterface {
|
||||
|
||||
}
|
||||
|
||||
//Defined in other file, IInterface.cs
|
||||
interface IInterface { //no access modifier for interfaces will infer 'internal' - only available to assembly it's defined in.
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
In that case you can create a user script rewrite override, to do so:
|
||||
1) In Unity project panel right-click on 'MyClass.cs'
|
||||
2) Select `Fast Script Reload -> Add \ Open User Script Rewrite Override`
|
||||
3) Asset will create override file for you with some template already in (there's also description in top comment how to use)
|
||||
|
||||
And put following in the override file
|
||||
```
|
||||
interface IInterface {
|
||||
// add any definitions as needed
|
||||
}
|
||||
```
|
||||
|
||||
This will then be simply added to newly compiled file and interface will be accessible.
|
||||
```
|
||||
//now both in same assembly/file when hot reloaded
|
||||
public class MyClass: IInterface {
|
||||
|
||||
}
|
||||
|
||||
|
||||
interface IInterface {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### Managing existing User Script Rewrite Overrides
|
||||
You can see all your overrides by:
|
||||
|
||||
1) Right clicking on file in Unity project panel
|
||||
2) Clicking `Fast Script Reload -> Show User Script Rewrite Overrides`
|
||||
|
||||
This will take you to tool settings window. You can also access it via:
|
||||
1) Clicking `Window -> Fast Script Reload -> Start Screen`
|
||||
2) Selecting `User Script Rewrite Overrides` side tab
|
||||
|
||||
|
||||
## Options
|
||||
You can access Welcome Screen / Options via 'Window -> Fast/Live Script Reload -> Start Screen' - it contains useful information as well as options.
|
||||
```
|
||||
Context menus will be prefixed with used version, either 'Fast Script Reload' or 'Live Script Reload'
|
||||
```
|
||||
|
||||
### Auto Hot-Reload
|
||||
By default tool will pick changes made to any file in playmode. You can add exclusions to that behaviour, more on that later.
|
||||
|
||||
You can also manually manage reload, to do so:
|
||||
1) Un-tick 'Enable auto Hot-Reload for changed files' in Options -> Reload page
|
||||
2) Click Window -> Fast Script Reload -> Force Reload to trigger
|
||||
3) or call `FastScriptReloadManager.TriggerReloadForChangedFiles()` method from code
|
||||
|
||||
> You can also use Editor -> Hotkeys to bind Force Reload to specific key.
|
||||
|
||||
|
||||
### Watch only specific files or folders
|
||||
By default FSR watches all files (as specified in global file watcher) - if you want to limit that behaviour to specific files
|
||||
please tick 'Specify watched folders/files manually' in 'Reload tab'.
|
||||
|
||||
Then you can right click on folder/file in project window and select 'Fast Script Reload -> Watch File / Folder'.
|
||||
|
||||
> Technically this adds another File Watcher behind the scenes, you can always adjust those on File Watchers tab.
|
||||
|
||||
### Custom file watcher implementation
|
||||
In some cases standard file default watcher API can cause issues. You can choose different file watcher implementations via 'Window -> Fast Script Reload -> Start Screen -> File Watchers -> File Watcher implementation'
|
||||
|
||||
> DefaultUnity - on some editor versions it could be slow or not trigger at all
|
||||
>
|
||||
> DirectWindowsApi - (experimental) uses Windows API directly, faster (symlinks not supported)
|
||||
>
|
||||
> CustomPolling - (experimental) watches files by manual polling for changes, slowest. Make sure to narrow down watchers scope to script folders
|
||||
|
||||
### [Live-Reload] Hot-Reload over Network
|
||||
With on-device build, your code changes will be distributed over the network in real-time.
|
||||
|
||||
By default running application will send a broadcast and try to discover editor running the tool.
|
||||
|
||||
Broadcast is initiated from device where build is running on (not from editor) - this means device running editor needs to allow the connection.
|
||||
|
||||
### [Live-Reload] Troubleshooting network issues
|
||||
If for whatever reason reload over network doesn't work, please:
|
||||
|
||||
1) go to 'Window -> Live Script Reload -> Options/Network'
|
||||
2) make sure port used is not already used by any other application
|
||||
3) make sure your Firewall allows connections on that port
|
||||
4) If you think broadcast doesn't work in your network it's best to specify IP Address explicitly (tick 'Force specific UP address for clients to receive Hot-Reload updates' and add IP)
|
||||
- this will allow client (build on device) connect directly to specified address
|
||||
|
||||
### [Live-Reload] Connected Client
|
||||
In playmode, message will be logged when clients connects. Also Options/Network will display connected client, eg Android phone could be identified as:
|
||||
|
||||
`SM-100232 connected from 192.189.168.68:12548`
|
||||
|
||||
**Only 1 client can be connected at any time.**
|
||||
|
||||
### [Live-Reload] Testing with Editor
|
||||
By default, editor will reflect any changes you made without using network. If you want to force editor to behave as networked client:
|
||||
1) Press play
|
||||
2) Find DontDestroyOnLoadObject 'NetworkedAssemblyChangesLoader' -
|
||||
3) tick 'IsDebug'
|
||||
4) tick 'Editor Acts as Remote Client'
|
||||
5) enable NetworkedAssemblyChangesLoader component
|
||||
|
||||
### Managing file exclusions
|
||||
Files can be excluded from auto-compilation.
|
||||
|
||||
#### via 'Project' context menu
|
||||
1) Right click on any *.cs file
|
||||
2) Click Fast Script Reload
|
||||
3) Add Hot-Reload Exclusion
|
||||
|
||||
*You can remove exclusion from same menu*
|
||||
|
||||
#### via Exclusions page
|
||||
To view all exclusions:
|
||||
1) Right click on any *.cs file
|
||||
2) Click Fast Script Reload
|
||||
3) Click Show Exclusions
|
||||
|
||||
#### via class attribute
|
||||
You can also add `[PreventHotReload]` attribute to a class to prevent hot reload for that class.
|
||||
|
||||
### Batch script changes and reload every N seconds
|
||||
Script will batch all your playmode changes and Hot-Reload them in bulk every 3 seconds - you can change duration from 'Reload' options page.
|
||||
|
||||
### Disable added/removed fields check
|
||||
By default if you add / remove fields, tool will not redirect method calls for recompiled class.
|
||||
This is to ensure there are no issues as that is generally not supported.
|
||||
|
||||
Some assets however will use IL weaving to adjust your classes (eg Mirror) as a post compile step. In that case it's quite likely hot-reload will still work.
|
||||
|
||||
### Managing reference exclusions
|
||||
Asset will reference all .dll files that original code is referencing. In some cases that causes compilation error (eg 'Type XYZ is defined in both assembly a.dll and b.dll).
|
||||
You can use those options to exclude specific references from being added.
|
||||
|
||||
> 'Start Screen -> Exclude References (Advanced) -> adjust as needed'.
|
||||
|
||||
## Performance
|
||||
|
||||
Your app performance won't be affected in any meaningful way.
|
||||
Biggest bit is additional memory used for your re-compiled code.
|
||||
Won't be visible unless you make 100s of changes in same play-session.
|
||||
|
||||
### File Watchers Performance Overhead
|
||||
In some cases watching for file changes is causing significant performance overhead. This is down to the Unity FileWatcher which I'm unable to change or provide suitable replacement for. If you're experiencing this issue please go to `Window -> Fast Script Reload -> File Watcher (Advanced Setup)` and narrow down watchers to specific path where you're working in. You can watch multiple folders in this manner.
|
||||
|
||||
## LIMITATIONS -please make sure to read those
|
||||
There are some limitation due to the approach taken to Hot-Reload your scripts. I've tried to minimise the impact to standard dev-workflow as much as possible.
|
||||
|
||||
In some cases however you may need to use workarounds as described below.
|
||||
|
||||
> In most cases you'll be able to use [User Defined Script Overrides](#user-defined-script-overrides) to overcome limitations and make hot reload code compilable.
|
||||
|
||||
### Generic methods and classes won't be Hot-Reloaded
|
||||
Unfortunately generics will not be Hot-Reloaded, to workaround you'd need to move code to non-generic class / method.
|
||||
|
||||
Tool will try to change non-generic methods in those files and will simply skip generic ones.
|
||||
|
||||
*Note - you can still Hot-Reload for class implementations that derive from generic base class but are not generic themselves, eg.*
|
||||
```
|
||||
|
||||
class SingletonImplementation: SingletonBase<SomeConcreteType> {
|
||||
public void SomeSpecificFunctionality() {
|
||||
//you can change code here and it'll be Hot-Reloaded as type itself is not generic
|
||||
}
|
||||
|
||||
public void GenericMethod<T>(T arg) {
|
||||
//changes here won't be Hot-Reloaded as method is generic
|
||||
}
|
||||
}
|
||||
|
||||
class SingletonBase<T> where T: new() {
|
||||
public T Instance;
|
||||
|
||||
public void Init() {
|
||||
Instance = new T(); //if you change this code it won't be Hot-Reloaded as it's in generic type
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### Adding new fields
|
||||
Experimental support with 1.3, minor limitations remaining:
|
||||
- outside classes can not call new fields added at runtime
|
||||
- new fields will only show in editor if they were already used at least once
|
||||
|
||||
> You need to opt in via start screen -> 'Window -> Fast Script Reload -> Start Screen -> New Fields -> enable'!
|
||||
|
||||
### Passing `this` reference to method that expect concrete class implementation
|
||||
|
||||
|
||||
`**By default experimental setting 'Enable method calls with 'this' as argument fix' is turned on in options, and should fix 'this' calls/assignment issue.
|
||||
If you see issues with that please turn setting off and get in touch via support email.**
|
||||
|
||||
Unless experimental setting is on - it'll throw compilation error `The best overloaded method match for xxx has some invalid arguments` - this is due to the fact that changed code is technically different type.
|
||||
The code will need to be adjusted to depend on some abstraction instead (before hot-reload).
|
||||
|
||||
This code would cause the above error.
|
||||
```
|
||||
public class EnemyController: MonoBehaviour {
|
||||
EnemyManager m_EnemyManager;
|
||||
|
||||
void Start()
|
||||
{
|
||||
//calling 'this' causes issues as after hot-reload the type of EnemyController will change to 'EnemyController__Patched_'
|
||||
m_EnemyManager.RegisterEnemy(this);
|
||||
}
|
||||
}
|
||||
|
||||
public class EnemyManager : MonoBehaviour {
|
||||
public void RegisterEnemy(EnemyController enemy) { //RegisterEnemy method expects parameter of concrete type (EnemyController)
|
||||
//impementation
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
It could be changed to support Hot-Reload in following way:
|
||||
|
||||
|
||||
1) Don't depend on concrete implementations, instead use interfaces/abstraction
|
||||
```
|
||||
public class EnemyController: MonoBehaviour, IRegistrableEnemy {
|
||||
EnemyManager m_EnemyManager;
|
||||
|
||||
void Start()
|
||||
{
|
||||
//calling this causes issues as after hot-reload the type of EnemyController will change
|
||||
m_EnemyManager.RegisterEnemy(this);
|
||||
}
|
||||
}
|
||||
|
||||
public class EnemyManager : MonoBehaviour {
|
||||
public void RegisterEnemy(IRegistrableEnemy enemy) { //Using interface will go around error
|
||||
//impementation
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRegistrableEnemy
|
||||
{
|
||||
//implementation
|
||||
}
|
||||
```
|
||||
|
||||
2) Adjust method param to have common base class
|
||||
```
|
||||
public class EnemyManager : MonoBehaviour {
|
||||
public void RegisterEnemy(MonoBehaviour enemy) { //Using common MonoBehaviour will go around error
|
||||
//impementation
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Assigning `this` to a field references
|
||||
Similar as above, this could cause some trouble although 'Enable method calls with 'this' as argument fix' setting will fix most of the issues.
|
||||
|
||||
Especially visible with singletons.
|
||||
eg.
|
||||
|
||||
```
|
||||
public class MySingleton: MonoBehaviour {
|
||||
public static MySingleton Instance;
|
||||
|
||||
void Start() {
|
||||
Instance = this;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Calling internal class members from changed code
|
||||
> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation
|
||||
|
||||
> fixed in unreleased 1.5 - please get in touch if you need a copy before release
|
||||
|
||||
Technically, once your changed code is compiled it'll be in a separate assembly. As a result this changed code won't be able to access internal classes from assembly it originated from.
|
||||
|
||||
### Extensive use of nested classed / structs
|
||||
> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation
|
||||
|
||||
If your code-base contains lots of nested classes - you may see more compilation errors.
|
||||
|
||||
Easy workaround is to move those nested classes away so they are top-level.
|
||||
|
||||
### Creating new public methods
|
||||
Hot-reload for new methods will only work with private methods (only called by changed code).
|
||||
|
||||
### Adding new references
|
||||
When you're trying to reference new code in play-mode session that'll fail if assembly is not yet referencing that (most often happens when using AsmDefs that are not yet referencing each other)
|
||||
|
||||
### Changing class that uses extension and passes itself as a reference
|
||||
> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation
|
||||
|
||||
Changing class that uses extension method and passes itself as a reference will create compiler error.
|
||||
|
||||
Generally that shouldn't be an issue, extension methods are primarily used as a syntatic sugar to extend a class that you do not have access to.
|
||||
You shouldn't need to create extension methods for types you own (instead those are generally instance methods or base class methods).
|
||||
|
||||
Given example:
|
||||
```
|
||||
public class ExtensionMethodTest
|
||||
{
|
||||
public string Name;
|
||||
|
||||
void Update()
|
||||
{
|
||||
this.PrintName();
|
||||
}
|
||||
}
|
||||
|
||||
//separate extension file
|
||||
public static ExtensionMethodTestExtensions
|
||||
{
|
||||
public static void PrintName(this ExtensionMethodTest obj)
|
||||
{
|
||||
Debug.Log(obj.Name);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
When changing `ExtensionMethodTest` you'll get compile error. Workaround would be to include method call in your type, eg:
|
||||
```
|
||||
public class ExtensionMethodTest {
|
||||
public string Name;
|
||||
|
||||
void Update() {
|
||||
this.PrintName();
|
||||
}
|
||||
|
||||
private void PrintName() {
|
||||
Debug.Log(Name);
|
||||
}
|
||||
}
|
||||
```
|
||||
*Arguably that's what should be done in the first place.*
|
||||
|
||||
Adjusting classes that use extension methods without passing itself as a reference - will work correctly. eg:
|
||||
```
|
||||
public class ObjectFromExternalAssembly()
|
||||
{
|
||||
//included just to illustrate example, that'd be in compiled assembly
|
||||
//that you can't change and use extension method approach
|
||||
|
||||
public string Name;
|
||||
}
|
||||
|
||||
public class ExtensionMethodTester
|
||||
{
|
||||
void Update()
|
||||
{
|
||||
var t = new ExtensionMethodTest();
|
||||
t.PrintName()
|
||||
}
|
||||
}
|
||||
|
||||
//separate extension file
|
||||
public static ObjectFromExternalAssemblyExtensions
|
||||
{
|
||||
public static void PrintName(this ObjectFromExternalAssembly obj)
|
||||
{
|
||||
Debug.Log(obj.Name);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Changing class that implements internal interface can trigger compilation error
|
||||
> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation
|
||||
|
||||
> fixed in unreleased 1.5 - please get in touch if you need a copy before release
|
||||
|
||||
If class is implementing interface that's defined in different file as internal (default for no access modifier) - then changes to that class will fail to compile.
|
||||
|
||||
eg.
|
||||
```
|
||||
//file IInterface.cs
|
||||
interface IInterface { //default interface access-modifier is 'internal'
|
||||
//declaration
|
||||
}
|
||||
|
||||
//file ClassImplementingIInterface.cs
|
||||
class ClassImplementingIInterface: IInterface {
|
||||
//changing this class will cause CS0122 'IInterface' is inaccessible due to it's protection level
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
> Quick workaround is to declare that interface as public
|
||||
>
|
||||
|
||||
### Changing class that accesses `private protected` members
|
||||
> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation
|
||||
|
||||
> fixed in unreleased 1.5 - please get in touch if you need a copy before release
|
||||
|
||||
With C# 7.2 `private protected` access modifier was introduced. It works as `protected` access modifier in a sense that inherited classes can access it but.
|
||||
Addition of `private` also limits it to same assembly. Your changes are technically compiled into separate assembly and at the moment trying to access `private protected` in changed code will produce compiler error.
|
||||
|
||||
> Easiest workaround for now is to declare those `private protected` members as `protected`.
|
||||
|
||||
### Limited debugger support for Rider when using Unity 2019 and 2020
|
||||
Once breakpoint has been hit it'll stop asset from hot-reloading in that play-session. Newer Unity versions are supporting debugging.
|
||||
|
||||
### No IL2CPP support
|
||||
Asset runs based on specific .NET functionality, IL2CPP builds will not be supported. Although as this is development workflow aid you can build your APK with Mono backend (android) and change later.
|
||||
|
||||
### Partial classes
|
||||
Experimental support (on by default). Potentially could have some performance implications as it's file-read heavy in current state. Can be disabled in options if needed.
|
||||
|
||||
Your partial class file needs to share name with actual class. eg
|
||||
`public class PartialClass`
|
||||
|
||||
Needs to be in files
|
||||
**PartialClass**XYZ
|
||||
|
||||
eg.
|
||||
- PartialClass.1.cs
|
||||
- PartialClass.2.cs
|
||||
|
||||
## FAQ
|
||||
### How is this asset different than Live Script Reload?
|
||||
Fast Script Reload
|
||||
- hot reload in editor
|
||||
|
||||
Live Script Reload
|
||||
- same hot reload in editor as FSR (includes FSR)
|
||||
+ **AND hot reload directly in builds / on-device**
|
||||
+ you don't have to download them both separately, LSR is also 1 package import
|
||||
+ standalone extension priced at $35, or if you've already bought Fast Script Reload it's $5 upgrade
|
||||
|
||||
### Editor makes full reload on any change in playmode
|
||||
|
||||
Unity Editor has an option to auto recompile changes. **For tool to work properly you want to have that either disabled or enabled only outside of playmode.**
|
||||
|
||||
You can adjusted auto-reload at any time via `Edit -> Preferences -> Asset Pipeline -> Auto Refresh`.
|
||||
|
||||
*Tool will also offer to disable auto-refresh on startup.*
|
||||
|
||||
It's possible to set auto-refresh to enabled but only outside of playmode. Depending on editor version used this can be found in:
|
||||
- `Edit -> Preferences -> General -> Script Changes While Playing -> Recompile After Finished Playing`
|
||||
- or `Edit -> Preferences -> Asset Pipeline -> Auto Refresh -> Enabled Outside Playmode`
|
||||
|
||||
### VS Code shows console shows errors
|
||||
VS Code proj file (csproj) generate with NetFramework version 4.7.1. One of the plugin DLLs is targeting version 4.8.
|
||||
Even though VS Code does not compile that code (Unity does) - it'll still show error as it didn't load the library for code-completion.
|
||||
|
||||
It's not a plugin issue as such, other dlls will have same troubles.
|
||||
Best solution I've found is to force csproj files to be generated with 4.8 version instead.
|
||||
This can be achieved with following editor script
|
||||
```
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
public class VisualStudioProjectGenerationPostProcess : AssetPostprocessor
|
||||
{
|
||||
private static void OnGeneratedCSProjectFiles()
|
||||
{
|
||||
Debug.Log("OnGeneratedCSProjectFiles");
|
||||
var dir = Directory.GetCurrentDirectory();
|
||||
var files = Directory.GetFiles(dir, "*.csproj");
|
||||
foreach (var file in files)
|
||||
ChangeTargetFrameworkInfProjectFiles(file);
|
||||
}
|
||||
|
||||
static void ChangeTargetFrameworkInfProjectFiles(string file)
|
||||
{
|
||||
var text = File.ReadAllText(file);
|
||||
var find = "TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion";
|
||||
var replace = "TargetFrameworkVersion>v4.8</TargetFrameworkVersion";
|
||||
|
||||
if (text.IndexOf(find) != -1)
|
||||
{
|
||||
text = Regex.Replace(text, find, replace);
|
||||
File.WriteAllText(file, text);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
> As a one-off you may also need to go to Edit -> Preferences -> External Tools -> click 'Regenerate project files' buttons
|
||||
|
||||
### When importing I'm getting error: 'Unable to update following assemblies: (...)/ImmersiveVRTools.Common.Runtime.dll'
|
||||
This happens occasionally, especially on upgrade between versions. It's harmless error that'll go away on play mode.
|
||||
|
||||
### When upgrading between versions, eg 1.1 to 1.2 example scene cubes are pink
|
||||
This is down to reimporting 'Point' prefab. Right now plugin will make sure it's using correct shader eg. URP / Built-in but only on initial import.
|
||||
|
||||
To fix please go to `FastScripReload\Examples\Point\Point.prefab` and search for 'Point' shader.
|
||||
|
||||
### On Mac hot reload does not trigger when changing files
|
||||
It'd seem for some code editors on Mac file changes are not picked up. This seems to be down to editors not updating LastWrite property on save and file watcher can't pick up the change.
|
||||
Unfortunately right now only workaround is to use editor that does update it, eg VSCode.
|
||||
|
||||
### I removed FSR but my scripts are still not reloading
|
||||
FSR initially asks if you want to disable Unity auto-reload. If you select yes, then it'll let you know you should now trigger full reload with CTRL + R.
|
||||
That's a Unity setting and it does not change back when removing asset.
|
||||
|
||||
> To change go to 'Edit -> Preferences -> Asset Pipeline -> Auto Refresh -> Enabled'
|
||||
|
||||
## Roadmap
|
||||
- add Mac silicon support
|
||||
- ~~add Mac/Linux support~~ (added with 1.1)
|
||||
- ~~add debugger support for hot-reloaded scripts~~ (added with 1.2)
|
||||
- ~~allow to add new fields (adjustable in Editor)~~ (added with 1.3)
|
||||
- better compiler support to work around limitations
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b15135889062bcf428b025b2fb045da8
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Documentation/documentation.md
|
||||
uploadId: 710802
|
||||
Binary file not shown.
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4d31e46efd843644b0ca6010aa753e4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Documentation/documentation.pdf
|
||||
uploadId: 710802
|
||||
@@ -1,70 +0,0 @@
|
||||
1.8
|
||||
- Added Unity 6 support
|
||||
- Improved extension methods rewriting
|
||||
- Partial classes support (contributed by Jlabarca)
|
||||
- Unity 2019 / 2020 no longer officially supported
|
||||
|
||||
1.7
|
||||
- Optional file watching can be done via direct WindowsAPI (contributed by SamPruden)
|
||||
- Extended UI to allow for easy choice of file watcher implementation
|
||||
|
||||
1.6
|
||||
- Added more Unit Tests to ensure various code patterns can be rewritten correctly
|
||||
- Added Watch Only Specific Files and Folders mode (contributed by GhatSmith)
|
||||
- Added better Odin support for dynamically added fields (contributed by GhatSmith)
|
||||
- Updated Roslyn lib version to 4.6.0 for better code parsing (contributed by SamPruden)
|
||||
- Improved error handling for code parsing (contributed by SamPruden)
|
||||
- Added Custom-File-Watcher implementation (for cases where standard FileWatcher API is causing issues) (contributed by D0rkKnight)
|
||||
|
||||
1.5
|
||||
- you can now import FSR as a package from github page
|
||||
- hot-reloading internal interfaces / classes would no longer cause compilation error
|
||||
- OnScriptHotReload method can be added at runtime
|
||||
- builder functions will be correctly rewritten
|
||||
- hot reload status (red / green) will be visible in project panel next to changed script
|
||||
- compilation error reporting will be much improved, project panel will allow to click error next to actual file for more details and workarounds
|
||||
- all type declarations that were appended with __Patched_ postfix to avoid name collisions will also have all corresponding identifiers changed
|
||||
- OnScriptHotReload methods will also be called in editor-workflow
|
||||
|
||||
1.4
|
||||
- added experimental editor-mode hot-reload, you'll need to opt in via Start Screen -> Editor Hot-Reload (please read the notes on that page, playmode workflow is still far superior)
|
||||
- you can now define User Script Rewrite Overrides - which will allow you to overcome most of existing limitations that cause compilation errors (on a one by one basis)
|
||||
- big optimization in how long hot-reload part will take, first call will be unaffected when type cache is build but subsequent calls will be significantly quicker
|
||||
- added 'Exclude References' options - this allows to remove specific dll references from dynamically compiled code (as in some cases you may get 'type defined in both assembly x.dll and y.dll'
|
||||
- destructors will no longer cause compilation error
|
||||
- (options opt-in) script rewriting can optionally emit comment - why change was made to help with troubleshooting issues
|
||||
- Unity assembly reload can be forced off via LockAssemblyReload if specified in options - sometimes even though Auto-Refresh is turned off Editor still tries to recompile changes in playmode which prevents FSR from working
|
||||
- new fields support (experimental) will be enabled by default
|
||||
|
||||
1.3.1
|
||||
|
||||
- open source release on github
|
||||
|
||||
1.3 - (Experimental) - New fields added in playmode
|
||||
|
||||
- New fields can be added and used in code
|
||||
- New fields can be adjusted in editor (same as standard fields)
|
||||
- New fields will be initialized to whatever value is specified in code or default value
|
||||
- Experimental feature - at this stage expect some issues
|
||||
- Opt-in - disabled by default to enable go to 'Window -> Fast Script Reload -> Start Screen -> New Fields -> enable'
|
||||
|
||||
1.2 - Debugger support
|
||||
|
||||
- Added debugger support (see documentation)
|
||||
|
||||
1.1 - Mac support / bug fixes
|
||||
|
||||
- Added Mac support (only INTEL editor version, SILICON still not supported)
|
||||
- Added Linux support
|
||||
- fixed namespace clash with Unity.Collections package
|
||||
- common code lib will not be included in builds
|
||||
- added check for auto-refresh in Editor - will proide guidance and option to adjust as otherwise full editor reload is triggered for changes
|
||||
- added workaround for Unity file-watcher returning wrong file path on some editor versions
|
||||
- added option to allow disabling DidFieldCountCheck - allowing to detour methods in those cases (eg for Mirror where it'll adjust IL and cause mismatch)
|
||||
- added option to configure FileWatcher paths/filters as in some cases watching root directory was causing performance issues
|
||||
- added minor initial-load optimisations - using session-state for items that do not need to be resolved on every reload
|
||||
|
||||
1.0 - First release, included features:
|
||||
|
||||
Fast script reload in editor / play-mode (compiles only changed files and hot-reloads them into current play session)
|
||||
Hot-reload on device (in build)
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd8daa3bb60e4b30b6520184de1abcda
|
||||
timeCreated: 1672842170
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Documentation/release-notes.md
|
||||
uploadId: 710802
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Andreas Pardeike
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 22053913c34700a4a9c13b853eea3317
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt
|
||||
uploadId: 710802
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c409188546e50f4a963ad9ae5deda06
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 494e757c92cba704db1d95279f80a30f
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_EDITOR || LiveScriptReload_IncludeInBuild_Enabled
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 0
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 0
|
||||
Exclude OSXUniversal: 0
|
||||
Exclude Win: 0
|
||||
Exclude Win64: 0
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll
|
||||
uploadId: 710802
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,14 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59922c0cd2ffd71478db2dea7fb3fb7a
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml
|
||||
uploadId: 710802
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fec618116c7eb7f42a3cf42dd1e125ea
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Binary file not shown.
-83
@@ -1,83 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f20b53a7360a6f40957117be6217b96
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll
|
||||
uploadId: 710802
|
||||
BIN
Binary file not shown.
-85
@@ -1,85 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42c3f40ad0520e442aa80842ab9748a9
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder:
|
||||
ImmersiveVRTools.Runtime.Common.Debug.RuntimeDebugDraw: 9990
|
||||
defineConstraints:
|
||||
- UNITY_EDITOR || LiveScriptReload_IncludeInBuild_Enabled
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 0
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 0
|
||||
Exclude OSXUniversal: 0
|
||||
Exclude Win: 0
|
||||
Exclude Win64: 0
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: x86_64
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll
|
||||
uploadId: 710802
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
This code is part of the product and can be used with same licence as the one you got it with.
|
||||
|
||||
Left in Plugins folder solely for convenience.
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 656785d4ce824de4ac3c58af77fec60d
|
||||
timeCreated: 1670158565
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt
|
||||
uploadId: 710802
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99309b63b6416e44f8c19d3f300ee1c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9bfedaf58be6fc243a48a4cc7e808d73
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa900f3e8ecf37343bb158cd68e5718d
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2019 || UNITY_2020
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.CSharp.dll
|
||||
uploadId: 710802
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6ebf747d582ac34fa013efea6bda29d
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2019 || UNITY_2020
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/Microsoft.CodeAnalysis.dll
|
||||
uploadId: 710802
|
||||
@@ -1,23 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20fdb23994f768f4e89f8a9779e20213
|
||||
timeCreated: 1670158681
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/RoslynLicense.txt
|
||||
uploadId: 710802
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef253369b6dd9f4438722b050ca92f39
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2019 || UNITY_2020
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Collections.Immutable.dll
|
||||
uploadId: 710802
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3873ad25446a8b469c55b876e3b4577
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2019 || UNITY_2020
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Reflection.Metadata.dll
|
||||
uploadId: 710802
|
||||
Binary file not shown.
-84
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c90f5e7176b3a054684c79065480027d
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2019 || UNITY_2020
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2019+/System.Threading.Tasks.Extensions.dll
|
||||
uploadId: 710802
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70d195e83e3a18d429e11445ca3df423
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 139b14934c1c2ce4dac3f527ac5e78e9
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2021_1_OR_NEWER
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.CSharp.dll
|
||||
uploadId: 710802
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aab00a18aeb22e84882f5e659c0314da
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints:
|
||||
- UNITY_2021_1_OR_NEWER
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 1
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 239351
|
||||
packageName: Fast Script Reload
|
||||
packageVersion: 1.6.1
|
||||
assetPath: Assets/FastScriptReload/Plugins/Roslyn/2021+/Microsoft.CodeAnalysis.dll
|
||||
uploadId: 710802
|
||||
@@ -1,23 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Loaded 100 of 531 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user