Compare commits
24
Commits
main
...
98e4a055fe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98e4a055fe | ||
|
|
4ecafef8ee | ||
|
|
a7872a0f8c | ||
|
|
653342d080 | ||
|
|
93819c1dd3 | ||
|
|
28125eb382 | ||
|
|
63c3549673 | ||
|
|
9f026b76d6 | ||
|
|
efcfaae647 | ||
|
|
f557c58c9d | ||
|
|
cd56b1969c | ||
|
|
a45223d0e7 | ||
|
|
b54083521f | ||
|
|
ec60c47652 | ||
|
|
1f8e14d078 | ||
|
|
0f46c63b5d | ||
|
|
72af9520df | ||
|
|
513d6d0bc5 | ||
|
|
b7527d8d68 | ||
|
|
0f0c8bab43 | ||
|
|
e2d0974b3c | ||
|
|
12a27f85c5 | ||
|
|
a3cd3e86a1 | ||
|
|
a5ce0dbd6f |
No files matched your search
+42
-1
@@ -1,2 +1,43 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
# В последующем может быть расширен или изменён, если посчитаем нужным
|
||||
|
||||
* text=auto
|
||||
|
||||
# ======================================
|
||||
# 3D МОДЕЛИ И АНИМАЦИИ
|
||||
# ======================================
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||
*.3ds filter=lfs diff=lfs merge=lfs -text
|
||||
*.dae filter=lfs diff=lfs merge=lfs -text
|
||||
*.max filter=lfs diff=lfs merge=lfs -text
|
||||
*.c4d filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# ======================================
|
||||
# ГРАФИКА (ИСХОДНИКИ)
|
||||
# ======================================
|
||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||
*.skp filter=lfs diff=lfs merge=lfs -text
|
||||
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# ======================================
|
||||
# АУДИО (ИСХОДНИКИ)
|
||||
# ======================================
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.aiff filter=lfs diff=lfs merge=lfs -text
|
||||
*.flac filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# ======================================
|
||||
# ВИДЕО И КИНЕМАТИКА
|
||||
# ======================================
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
+154
-44
@@ -1,75 +1,185 @@
|
||||
# This .gitignore file should be placed at the root of your Unity project directory
|
||||
#
|
||||
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
|
||||
#
|
||||
.utmp/
|
||||
# ======================================
|
||||
# UNITY - ОСНОВНЫЕ ИГНОРИРУЕМЫЕ ПАПКИ
|
||||
# ======================================
|
||||
|
||||
# Автогенерируемые Unity папки
|
||||
|
||||
# Кэш и временные файлы Unity
|
||||
/[Ll]ibrary/
|
||||
# Временные файлы компиляции
|
||||
/[Tt]emp/
|
||||
# Файлы объектов компиляции
|
||||
/[Oo]bj/
|
||||
# Сборки проекта
|
||||
/[Bb]uild/
|
||||
# Дополнительные сборки
|
||||
/[Bb]uilds/
|
||||
# Логи Unity
|
||||
/[Ll]ogs/
|
||||
/[Uu]ser[Ss]ettings/
|
||||
# Пользовательские настройки
|
||||
/[Uu]ser[Ss]ettings/
|
||||
# Временные файлы Unity
|
||||
.utmp/
|
||||
|
||||
# Файлы логов
|
||||
*.log
|
||||
|
||||
# MemoryCaptures can get excessive in size.
|
||||
# They also could contain extremely sensitive data
|
||||
/[Mm]emoryCaptures/
|
||||
# Файлы Blender (резервные копии)
|
||||
*.blend1
|
||||
*.blend1.meta
|
||||
|
||||
# Recordings can get excessive in size
|
||||
# Записи и дампы памяти (могут быть очень большими)
|
||||
|
||||
# Дампы памяти (содержат чувствительные данные)
|
||||
/[Mm]emoryCaptures/
|
||||
# Записи (могут занимать много места)
|
||||
/[Rr]ecordings/
|
||||
|
||||
# Uncomment this line if you wish to ignore the asset store tools plugin
|
||||
# /[Aa]ssets/AssetStoreTools*
|
||||
|
||||
# Autogenerated Jetbrains Rider plugin
|
||||
# Автогенерируемые плагины Rider
|
||||
/[Aa]ssets/Plugins/Editor/JetBrains*
|
||||
|
||||
# Visual Studio cache directory
|
||||
# ======================================
|
||||
# ФАЙЛЫ СБОРОК И ПАКЕТОВ
|
||||
# ======================================
|
||||
|
||||
# Готовые сборки и пакеты
|
||||
|
||||
# Android приложение
|
||||
*.apk
|
||||
|
||||
# Android App Bundle
|
||||
*.aab
|
||||
|
||||
# Пакет для Asset Store
|
||||
*.unitypackage
|
||||
|
||||
# Meta файлы пакетов
|
||||
*.unitypackage.meta
|
||||
|
||||
# macOS приложение
|
||||
*.app
|
||||
|
||||
# Windows приложение
|
||||
*.exe
|
||||
|
||||
# Addressables
|
||||
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
|
||||
/ServerData
|
||||
/[Aa]ssets/StreamingAssets/aa*
|
||||
/[Aa]ssets/AddressableAssetsData/link.xml*
|
||||
/[Aa]ssets/Addressables_Temp*
|
||||
|
||||
# Временные Android Assets
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa.meta
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa/*
|
||||
|
||||
# ======================================
|
||||
# VISUAL STUDIO / RIDER / VS CODE
|
||||
# ======================================
|
||||
|
||||
# Visual Studio
|
||||
|
||||
# Кэш Visual Studio
|
||||
.vs/
|
||||
|
||||
# Gradle cache directory
|
||||
.gradle/
|
||||
|
||||
# Autogenerated VS/MD/Consulo solution and project files
|
||||
ExportedObj/
|
||||
.consulo/
|
||||
# Файлы проектов C#
|
||||
*.csproj
|
||||
*.unityproj
|
||||
# Файл решения
|
||||
*.sln
|
||||
# Пользовательские настройки решения
|
||||
*.suo
|
||||
*.tmp
|
||||
# Пользовательские настройки проекта
|
||||
*.user
|
||||
# Пользовательские настройки
|
||||
*.userprefs
|
||||
*.userosscache
|
||||
*.rsuser
|
||||
|
||||
# JetBrains Rider
|
||||
|
||||
# Все файлы Rider
|
||||
.idea/
|
||||
# Файлы модулей
|
||||
*.iml
|
||||
# Файлы проектов
|
||||
*.ipr
|
||||
# Файлы рабочих пространств
|
||||
*.iws
|
||||
# Персональные настройки Rider
|
||||
*.DotSettings.user
|
||||
|
||||
# VS Code
|
||||
|
||||
# Все настройки VS Code
|
||||
.vscode/
|
||||
# Игнорировать рабочие пространства
|
||||
*.code-workspace
|
||||
# Игнорировать установленные расширения
|
||||
*.vsix
|
||||
|
||||
# ======================================
|
||||
# ВСПОМОГАТЕЛЬНЫЕ ФАЙЛЫ СРЕД РАЗРАБОТКИ
|
||||
# ======================================
|
||||
|
||||
# Общие временные файлы
|
||||
|
||||
# База данных отладки MonoDevelop
|
||||
*.pidb
|
||||
# База данных программ
|
||||
*.pdb
|
||||
# База данных Mono Debugging
|
||||
*.mdb
|
||||
# Открытая база данных
|
||||
*.opendb
|
||||
# База данных Visual C++
|
||||
*.VC.db
|
||||
*.booproj
|
||||
*.svd
|
||||
*.pdb
|
||||
*.mdb
|
||||
*.opendb
|
||||
*.VC.db
|
||||
*.tmp
|
||||
*.unityproj
|
||||
|
||||
# Unity3D generated meta files
|
||||
# Mono crash файлы
|
||||
mono_crash.*
|
||||
|
||||
# Файлы отчетов и системной информации
|
||||
|
||||
# Системная информация при крашах
|
||||
sysinfo.txt
|
||||
|
||||
# ======================================
|
||||
# META-ФАЙЛЫ
|
||||
# ======================================
|
||||
|
||||
# Игнорировать только meta-файлы для временных файлов
|
||||
*.pidb.meta
|
||||
*.pdb.meta
|
||||
*.mdb.meta
|
||||
|
||||
# Unity3D generated file on crash reports
|
||||
sysinfo.txt
|
||||
# ======================================
|
||||
# ТЕСТЫ И ВИЗУАЛЬНЫЕ СКРИПТЫ
|
||||
# ======================================
|
||||
|
||||
# Builds
|
||||
*.apk
|
||||
*.aab
|
||||
*.unitypackage
|
||||
*.unitypackage.meta
|
||||
*.app
|
||||
# Файлы TestRunner
|
||||
InitTestScene*.unity*
|
||||
|
||||
# Crashlytics generated file
|
||||
crashlytics-build.properties
|
||||
# Автогенерированные сцены тестов
|
||||
/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity*
|
||||
|
||||
# Packed Addressables
|
||||
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
|
||||
# Visual Scripting auto-generated files
|
||||
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
|
||||
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
|
||||
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
|
||||
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
|
||||
|
||||
# Temporary auto-generated Android Assets
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa.meta
|
||||
/[Aa]ssets/[Ss]treamingAssets/aa/*
|
||||
# ======================================
|
||||
# ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ
|
||||
# ======================================
|
||||
|
||||
# Gradle (для Android сборок)
|
||||
.gradle/
|
||||
|
||||
# Другие автосгенерированные файлы
|
||||
ExportedObj/
|
||||
.consulo/
|
||||
|
||||
# Crashlytics
|
||||
crashlytics-build.properties
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RiderProjectSettingsUpdater">
|
||||
<option name="singleClickDiffPreview" value="1" />
|
||||
<option name="vcsConfiguration" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+193
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="7a4e4e1b-6c5f-4c8d-968e-512e90aa8c7c" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infra/.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/Example/Platformer/Entity/PlatformerEntitySettings.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEntitySettings.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Player/Player.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Player/Player.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/Example/Platformer/Bee.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Bee.prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Boar.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Boar.prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Cinemachine2DFollower.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Cinemachine2DFollower.prefab" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Snail.prefab" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Snail.prefab.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioInfoConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioInfoConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourceSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourceSettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CanvasSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CanvasSettingsConfig.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/GameCameraConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEntitySettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEntitySettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerPlayerSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerPlayerSettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.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$/Assets/UnityCodeGen.Generated/UIPanelSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/UIPanelSettingsConfig.Generated.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/VolumeSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/VolumeSettingsConfig.Generated.cs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" root0="FORCE_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/Generics/DisposableCollection.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1eb9db207454431c84a47bcd81e79c3746ae00/50/ee0759d6/Dictionary`2.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/493b407efcb64dddad59f28bb0b831d3212400/94/af20347f/Object.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 2
|
||||
}</component>
|
||||
<component name="ProjectId" id="38WaBM3xnp06hWLmWixBiTqujw8" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Attach to Unity Editor.Attach to Unity Editor.executor": "Debug",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "NotLiminalPCG",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}</component>
|
||||
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
|
||||
<configuration name="Standalone Player" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="$PROJECT_DIR$/../../Builds/Logo\Infratest.exe" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="A:\Builds\Logo" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.10f1\Editor\Unity.exe" />
|
||||
<option name="PROGRAM_PARAMETERS" value="-projectPath A:\Projects\Infra -debugCodeOptimization" />
|
||||
<option name="WORKING_DIRECTORY" value="A:\Projects\Infra" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.10f1\Editor\Unity.exe" />
|
||||
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath A:\Projects\Infra -testResults Logs/results.xml -logFile Logs/Editor.log -testPlatform EditMode -debugCodeOptimization" />
|
||||
<option name="WORKING_DIRECTORY" value="A:\Projects\Infra" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" 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">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<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="3836">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" value="3836" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="7a4e4e1b-6c5f-4c8d-968e-512e90aa8c7c" name="Changes" comment="" />
|
||||
<created>1768917644200</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1768917644200</updated>
|
||||
<workItem from="1768917645584" duration="9243000" />
|
||||
<workItem from="1768978880434" duration="5920000" />
|
||||
<workItem from="1769169358065" duration="12883000" />
|
||||
<workItem from="1769342663511" duration="4805000" />
|
||||
<workItem from="1769350118757" duration="196000" />
|
||||
<workItem from="1769608253594" duration="3971000" />
|
||||
<workItem from="1770363329441" duration="12586000" />
|
||||
<workItem from="1770407896165" duration="404000" />
|
||||
<workItem from="1770451319773" duration="10815000" />
|
||||
<workItem from="1770634886406" duration="8191000" />
|
||||
<workItem from="1771758321259" duration="9067000" />
|
||||
<workItem from="1772187561867" duration="2127000" />
|
||||
<workItem from="1773044760422" duration="3994000" />
|
||||
<workItem from="1773048811603" duration="11294000" />
|
||||
<workItem from="1773135989680" duration="4838000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="UnityProjectConfiguration" hasMinimizedUI="true" />
|
||||
<component name="UnityProjectDiscoverer">
|
||||
<option name="hasUnityReference" value="true" />
|
||||
<option name="unityProject" value="true" />
|
||||
<option name="unityProjectFolder" value="true" />
|
||||
</component>
|
||||
<component name="UnityUnitTestConfiguration" currentTestLauncher="Both" />
|
||||
<component name="VcsManagerConfiguration">
|
||||
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
|
||||
<line>68</line>
|
||||
<properties documentPath="A:\Projects\Infra\Assets\Code\Example\Platformer\PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'Dispose'">
|
||||
<startOffsets>
|
||||
<option value="2442" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="2491" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="1" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
</project>
|
||||
@@ -2,6 +2,7 @@
|
||||
<project version="4">
|
||||
<component name="RiderProjectSettingsUpdater">
|
||||
<option name="singleClickDiffPreview" value="1" />
|
||||
<option name="unhandledExceptionsIgnoreList" value="1" />
|
||||
<option name="vcsConfiguration" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
+227
-173
@@ -5,130 +5,12 @@
|
||||
</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/Liminal.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Character.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Character/LiminalCharacterController.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Character/LiminalCharacterController.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerAnimator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerAnimator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerFactory.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerFactory.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerMovementController.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Liminal/Player/PlayerMovementController.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraFactory.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraFactory.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraSettings.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraSettings.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachineRunner.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachineRunner.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/FirstPersonCameraState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/FirstPersonCameraState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Configs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Configs/ConfigLocator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Configs/ConfigLocator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Configs/SystemConfigsReferences.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Configs/SystemConfigsReferences.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/ActionMappings.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/ActionMappings.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/IInputService.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/IInputService.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/InputService.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Input/InputService.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings/Loading.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings/Loading.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneId.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneId.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/ScenesAssetReferences.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/ScenesAssetReferences.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/StateMachine/AbstractStateMachine.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/StateMachine/BaseState.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/IConfigLocator.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/IConfigLocator.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.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/Code/Debug.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/DebugInstaller.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/DebugInstaller.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/DebugStateMachine.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/DebugStateMachine.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/States.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/States/FirstState.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/States/FirstState.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Generators.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Generators/Attributes.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Generators/Attributes.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Generators/StateMachineGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Generators/StateMachineGenerator.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/StateMachine.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/StateMachine.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/StateMachine/AbstractStateMachine.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/StateMachine/AbstractStateMachine.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/StateMachine/AbstractStateMachine.cs.meta" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/StateMachine/BaseState.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/StateMachine/BaseState.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/StateMachine/BaseState.cs.meta" afterDir="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/Readme.asset" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Readme.asset.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/SampleScene.unity" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/SampleScene.unity.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Settings/Mobile_RPAsset.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Settings/Mobile_RPAsset.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Icons.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Icons/URP.png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Icons/URP.png.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Layout.wlt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Layout.wlt.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts/Editor.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts/Readme.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/TutorialInfo/Scripts/Readme.cs.meta" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Debug.DebugStateMachine.Generated.cs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Debug.DebugStateMachine.Generated.cs.meta" beforeDir="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" />
|
||||
<change beforePath="$PROJECT_DIR$/ProjectSettings/EditorBuildSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/EditorBuildSettings.asset" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/EntityHealth.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/EntityHealth.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -136,28 +18,75 @@
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="DpaMonitoringSettings">
|
||||
<option name="autoShow" value="false" />
|
||||
<option name="firstShow" value="false" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1a795a29c7af4385b159eb69f68237b8468c00/4e/b1d2d6b8/CollectionExtensions.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1a795a29c7af4385b159eb69f68237b8468c00/b1/26a57819/InvalidCastException.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1a795a29c7af4385b159eb69f68237b8468c00/e6/7aba13ff/ThrowHelper.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1a795a29c7af4385b159eb69f68237b8468c00/f4/be902eb3/List`1.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/30cb9806a8774f11bb35ea6b11076cb4110400/9e/e04a9ad9/Enumerable.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6a608067b36b43a4b2b9c2c9f46aac8b212200/95/3a3a110c/Vector3.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6a608067b36b43a4b2b9c2c9f46aac8b212200/ed/c16ca097/Vector2.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/BeeRadar.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Snail.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Level/PlatformerLevelData.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneData.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/UI/PlatformerCanvas.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/AIRacerID.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Agent.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/AgentBehaviour.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Flee.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Pursue.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Seek.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Steering.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/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/App/AppStateMachine.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.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/CameraFactory.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.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/NoneCameraState.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/Code/Infrastructure/SceneLoader/SceneId.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@b77d36a82a21/Core/Container.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@b77d36a82a21/Core/SceneScope.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@b77d36a82a21/Extensions/SceneExtensions.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@b77d36a82a21/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@45e9abf44299/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@45e9abf44299/Runtime/ResourceManager/AsyncOperations/AsyncOperationHandle.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@45e9abf44299/Runtime/ResourceManager/AsyncOperations/ChainOperation.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@45e9abf44299/Runtime/ResourceManager/Util/DelegateList.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@45e9abf44299/Runtime/ResourceManager/Util/MonoBehaviourCallbackHooks.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1eb9db207454431c84a47bcd81e79c3746ae00/50/ee0759d6/Dictionary`2.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/493b407efcb64dddad59f28bb0b831d3212400/1d/b6f4672d/Vector2.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/493b407efcb64dddad59f28bb0b831d3212400/e6/06b4bbec/Component.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6faa6124236442759eb396cfbfdad50810fc00/3f/3a201145/Enumerable.cs" root0="FORCE_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/Core/IInstaller.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.gustavopsantos.reflex@fabfbc86f712/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"customColor": "",
|
||||
@@ -168,57 +97,121 @@
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Attach to Unity Editor.Attach to Unity Editor.executor": "Debug",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"XThreadsFramesViewSplitterKey": "0.31173185",
|
||||
"git-widget-placeholder": "main",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"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",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
|
||||
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.1f1\Editor\Unity.exe" />
|
||||
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.10f1/Editor/Unity" />
|
||||
<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="MIXED_MODE_DEBUG" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.5f2/Editor/Unity" />
|
||||
<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="ENV_FILE_PATHS" value="" />
|
||||
<option name="REDIRECT_INPUT_PATH" value="" />
|
||||
<option name="MIXED_MODE_DEBUG" value="0" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.1f1\Editor\Unity.exe" />
|
||||
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.10f1/Editor/Unity" />
|
||||
<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="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="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.5f2/Editor/Unity" />
|
||||
<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="ENV_FILE_PATHS" value="" />
|
||||
<option name="REDIRECT_INPUT_PATH" value="" />
|
||||
<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" useMixedMode="false">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list />
|
||||
</option>
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<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="3060">
|
||||
<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" value="3060" />
|
||||
<option name="pid" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list />
|
||||
</option>
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<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" useMixedMode="false">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list />
|
||||
</option>
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<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" useMixedMode="false">
|
||||
<option name="allowRunningInParallel" value="false" />
|
||||
<option name="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list />
|
||||
</option>
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
</option>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Attach to" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="Attach to" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
@@ -262,6 +255,43 @@
|
||||
<workItem from="1767345100869" duration="2686000" />
|
||||
<workItem from="1768124782138" duration="5579000" />
|
||||
<workItem from="1768228201670" duration="4137000" />
|
||||
<workItem from="1768237217087" duration="2844000" />
|
||||
<workItem from="1769439297620" duration="1762000" />
|
||||
<workItem from="1769443636668" duration="4743000" />
|
||||
<workItem from="1769457001410" duration="1827000" />
|
||||
<workItem from="1769468220482" duration="3957000" />
|
||||
<workItem from="1769499590280" duration="4392000" />
|
||||
<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" />
|
||||
<workItem from="1770394380051" duration="4532000" />
|
||||
<workItem from="1770647985793" duration="3000" />
|
||||
<workItem from="1770649909847" duration="667000" />
|
||||
<workItem from="1770653445227" duration="6602000" />
|
||||
<workItem from="1770735223876" duration="2059000" />
|
||||
<workItem from="1770992672025" duration="8533000" />
|
||||
<workItem from="1771345358380" duration="3534000" />
|
||||
<workItem from="1771422036487" duration="1920000" />
|
||||
<workItem from="1771429673395" duration="3644000" />
|
||||
<workItem from="1771433586006" duration="1485000" />
|
||||
<workItem from="1773065611992" duration="4340000" />
|
||||
<workItem from="1773758943752" duration="396000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
@@ -284,29 +314,53 @@
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Liminal/Character/LiminalCharacterController.cs</url>
|
||||
<line>239</line>
|
||||
<properties documentPath="A:\Projects\Infratest\Assets\Code\Example\Liminal\Character\LiminalCharacterController.cs" containingFunctionPresentation="Method 'UpdateRotation'">
|
||||
<startOffsets>
|
||||
<option value="8514" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="8672" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<properties documentPath="A:\Projects\Infratest\Assets\Code\Example\Liminal\Character\LiminalCharacterController.cs" containingFunctionPresentation="Method 'UpdateRotation'" />
|
||||
<option name="timeStamp" value="57" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Liminal/Character/LiminalCharacterController.cs</url>
|
||||
<line>245</line>
|
||||
<properties documentPath="A:\Projects\Infratest\Assets\Code\Example\Liminal\Character\LiminalCharacterController.cs" containingFunctionPresentation="Method 'UpdateRotation'">
|
||||
<startOffsets>
|
||||
<option value="8967" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="9010" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<properties documentPath="A:\Projects\Infratest\Assets\Code\Example\Liminal\Character\LiminalCharacterController.cs" containingFunctionPresentation="Method 'UpdateRotation'" />
|
||||
<option name="timeStamp" value="58" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
|
||||
<line>45</line>
|
||||
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'OnContainerBuild'">
|
||||
<startOffsets>
|
||||
<option value="1817" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="1840" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="75" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
|
||||
<line>51</line>
|
||||
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'PlatformerEnemyFactoryInitialized'">
|
||||
<startOffsets>
|
||||
<option value="1967" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="1991" />
|
||||
</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" />
|
||||
<option name="timeStamp" value="62" />
|
||||
</breakpoint>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.Threading.Tasks.TaskCanceledException" breakIfHandledByOtherCode="false" displayValue="System.Threading.Tasks.TaskCanceledException" />
|
||||
<option name="timeStamp" value="63" />
|
||||
</breakpoint>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.Threading.ThreadAbortException" breakIfHandledByOtherCode="false" displayValue="System.Threading.ThreadAbortException" />
|
||||
<option name="timeStamp" value="64" />
|
||||
</breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RiderProjectSettingsUpdater">
|
||||
<option name="singleClickDiffPreview" value="1" />
|
||||
<option name="unhandledExceptionsIgnoreList" value="1" />
|
||||
<option name="vcsConfiguration" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+90
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="f63980da-ead4-405c-827d-acf0244b2268" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs.meta" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioNames.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioNames.cs.meta" 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" />
|
||||
<change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioNames.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"associatedIndex": 3
|
||||
}]]></component>
|
||||
<component name="ProjectId" id="38nZCoa05XMGjvCiidouET2bKxO" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"git-widget-placeholder": "NotLiminalPCG",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="f63980da-ead4-405c-827d-acf0244b2268" name="Changes" comment="" />
|
||||
<created>1769437172471</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1769437172471</updated>
|
||||
<workItem from="1769437174936" duration="1797000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="UnityProjectConfiguration" hasMinimizedUI="false" />
|
||||
<component name="UnityProjectDiscoverer">
|
||||
<option name="unityProjectFolder" value="true" />
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
|
||||
<option name="timeStamp" value="1" />
|
||||
</breakpoint>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.Threading.Tasks.TaskCanceledException" breakIfHandledByOtherCode="false" displayValue="System.Threading.Tasks.TaskCanceledException" />
|
||||
<option name="timeStamp" value="2" />
|
||||
</breakpoint>
|
||||
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
|
||||
<properties exception="System.Threading.ThreadAbortException" breakIfHandledByOtherCode="false" displayValue="System.Threading.ThreadAbortException" />
|
||||
<option name="timeStamp" value="3" />
|
||||
</breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dea69d41f90c6ea4fa55c27c1d60c145, type: 3}
|
||||
m_Name: AddressableAssetGroupSortSettings
|
||||
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.AddressableAssetGroupSortSettings
|
||||
sortOrder:
|
||||
- d790534e015d692428ac5a9ce7d2ceb6
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f146779bcd07c524097072c871162bff
|
||||
guid: d4769b93af55e1195a9506acfa3d9c28
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
m_DefaultGroup: d790534e015d692428ac5a9ce7d2ceb6
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
Hash: 6ac6f4ebd726e03a1c07efe42bb1b362
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
@@ -42,6 +42,7 @@ MonoBehaviour:
|
||||
m_BundleRedirectLimit: -1
|
||||
m_SharedBundleSettings: 0
|
||||
m_SharedBundleSettingsCustomGroupIndex: 0
|
||||
m_simulatedLoadDelay: 0.1
|
||||
m_ContiguousBundles: 1
|
||||
m_StripUnityVersionFromBundleBuild: 0
|
||||
m_DisableVisibleSubAssetRepresentations: 0
|
||||
@@ -102,6 +103,13 @@ MonoBehaviour:
|
||||
- default
|
||||
- SceneConfig
|
||||
- CameraConfig
|
||||
- UIPanelConfig
|
||||
- PostProccessVolume
|
||||
- AudioInfoConfig
|
||||
- AudioSettingsConfig
|
||||
- RacerConfig
|
||||
- LayerMaskConfig
|
||||
- PlatformerEntity
|
||||
m_SchemaTemplates: []
|
||||
m_GroupTemplateObjects:
|
||||
- {fileID: 11400000, guid: af0b5782a0090884db056705d7776701, type: 2}
|
||||
|
||||
@@ -15,6 +15,121 @@ MonoBehaviour:
|
||||
m_GroupName: Default Local Group
|
||||
m_GUID: d790534e015d692428ac5a9ce7d2ceb6
|
||||
m_SerializeEntries:
|
||||
- m_GUID: 00279b1c6fbb7ac80868388a292b0c44
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- PlatformerEntity
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 0d2cf1d8a32701f56851c8b734cf7928
|
||||
m_Address: Assets/Resources_moved/UI/Panels/PlayerCounter.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 0eb645a0c96b1c437bf0712d6b856b7c
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Bee.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
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 10228ea17914708e586b8da1daae92ec
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlatformerCamera.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- CameraConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 13852bf3f3ccace4e9deefd844eebb23
|
||||
m_Address: Assets/Resources_moved/UI/Panels/LoadingPanel.prefab
|
||||
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
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 1983ca5906382590d9638c6c751d8571
|
||||
m_Address: Assets/Resources_moved/Audio/UI/launch_dnmenu1.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 1dca3345d7b309d70a26b3f646ccad08
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/CinemachineCamera.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 2044ec9a33380e7239855e26a9d8bcc5
|
||||
m_Address: Assets/Resources_moved/Audio/UI/launch_selectmenu.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 234ab51636edcbab88dbadfdb7fbfe65
|
||||
m_Address: Example/Platformer/Characters/Player/Player
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 2471ee3760db4ecfe8c313bb2c00daf0
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Audio Source.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 292439c50bbcbb638889b0959c637d18
|
||||
m_Address: Example/Platformer/Configs/Platformer
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- SceneConfig
|
||||
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
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 2f99b96d93cb35086b74d1b8c4111f90
|
||||
m_Address: Assets/Resources_moved/Example/Race/SceneChooser.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 30778c5a4d5c3f74bac4e5340344cdad
|
||||
m_Address: Assets/Resources_moved/Configs/Volumes/MenuRetro.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- PostProccessVolume
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 3a4a23e1c0a57dd49b451aa86b9baa3a
|
||||
m_Address: Assets/Resources_moved/Configs/Scenes/SoundTest.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- SceneConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 3f2b0a19832dd31578147a7bb53cf931
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/GroundLayerMask.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- LayerMaskConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 456d3ecaf92ca5a4a817184de151ad9f
|
||||
m_Address: Assets/Resources_moved/Camera/CinemachineCameraCarFollow.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 4a97987e3a94e0f43b1b57b6ddccac23
|
||||
m_Address: Assets/Resources_moved/Configs/Camera/CameraSettingsConfig.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -27,16 +142,150 @@ MonoBehaviour:
|
||||
m_SerializedLabels:
|
||||
- SceneConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 8d54a5646fc9ef34383c560ce3c3d6ff
|
||||
m_Address: Liminal/Settings/InputServiceConfig
|
||||
- m_GUID: 4bf97e6c7f046f849912182e4ded6c9e
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Settings/AudioSourceSettingsConfig
|
||||
1.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioSettingsConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 4c9ce2b91ab2587cf8279e7d743d348b
|
||||
m_Address: Assets/Resources_moved/Audio/UI/613916__drni__solar-inverter-humming-static-noise.flac
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: a78f552da8f156b469b95652e4b0209d
|
||||
m_Address: DebugClassConfig
|
||||
- m_GUID: 4fcdb7f979b60194db1fb5c03b81bf8c
|
||||
m_Address: UI/Panels/LoadingPanel
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 559cfec8b5fd0dbd2b7c4c9f00ade374
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/ButtonClick.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 55c3ef7828ec424a59b3d4ceb1cdaece
|
||||
m_Address: Assets/Resources_moved/Audio/UI/launch_upmenu1.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 55ccf07d7c51c2a409a42ddcda3b3b30
|
||||
m_Address: Assets/Resources_moved/Configs/UI/WinScreen.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 62388720cc90ef87f9d8ed5328dbc6fe
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/AudioInfoConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 670b67ade842b46af81fee330d074f9f
|
||||
m_Address: Assets/Resources_moved/Audio/UI/buttonclickrelease.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 69e720c0a88f4f9499af76a887cd9fdf
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Player.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- LayerMaskConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 6a86e03165bcd491ba987514d0da38bd
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchSelect1.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 6c22f498979461d3ea35e12a19f9be78
|
||||
m_Address: Assets/Resources_moved/Example/Race/PlayerScores.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 749408a9b44d2581783d04d903ec0f72
|
||||
m_Address: Assets/Resources_moved/Audio/UI/valve_sound.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 77a268730c52ad461920f3459fdda1a0
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Snail.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 78f36de38978ecc0a9d9dff2ca9cf488
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- PlatformerEntity
|
||||
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
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 86d0b6ef35383e7409df5a352637fea7
|
||||
m_Address: UI/Panels/SceneSelectPanel
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 89a9e669f83bef966b15cdd2da6d4f77
|
||||
m_Address: Assets/Resources_moved/Audio/UI/buttonrollover.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 8fdc11fcf9c4c2e279902e8d1b6df718
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/ButtonClickRelease.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 9472c0e087e023ce9b93dfc75ffff25b
|
||||
m_Address: Assets/Resources_moved/Audio/UI/buttonclick.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 95e6f3e122b08b58e96fe087fb5ce397
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchDownMenu.asset
|
||||
m_ReadOnly: 0
|
||||
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
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: a9d36f968917dc35cb0e534af9ea6e59
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchSelectMenu.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- AudioInfoConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: ab3f2ccf1b11afd4a81cb222d4e4bc16
|
||||
m_Address: Assets/Resources_moved/Volumes/MenuRetro.prefab
|
||||
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
|
||||
@@ -52,8 +301,41 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d54fabdcc748a594aa0551dcd235c7c2
|
||||
m_Address: ScenesAssetReferences
|
||||
- m_GUID: cbab6f2c86f23fd48b3ec4b8885b9889
|
||||
m_Address: Assets/Scenes/SoundTest.unity
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: cc76fd76d78cd364880ebe8330a05834
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Enemies.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- LayerMaskConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d0a994964f42e0c0dad3da32f7b52c90
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Boar.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d2750e654bd192d41a48144c43b41302
|
||||
m_Address: Assets/Resources_moved/Configs/UI/Logo.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d7dd69cfadda3d6e18ec390724be0d80
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/AudioSourcePrefabConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d87857258eeea2345a3b926b3c671002
|
||||
m_Address: Assets/Resources_moved/Configs/UI/Loading.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- UIPanelConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: d9b04c3e60dd01e77807be9f484d8e82
|
||||
m_Address: Assets/Resources_moved/Audio/UI/launch_select1.wav
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
@@ -62,11 +344,48 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f146779bcd07c524097072c871162bff
|
||||
m_Address: Assets/Resources_moved/Configs/Camera/FPSConfig.asset
|
||||
- m_GUID: e1fbe5b2798657342b569f723d16c9de
|
||||
m_Address: UI/Canvas
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: eab71c0cf90c4b94294e497d3734cfe1
|
||||
m_Address: Assets/Resources_moved/Configs/InputServiceConfig.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: eb0c68c73dadde3479d639ba9b2f7395
|
||||
m_Address: Assets/Resources_moved/Configs/UI/Logo 1.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- CameraConfig
|
||||
- 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: ef1b55458defd6ca99e4006b21b9cb02
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels:
|
||||
- PlatformerEntity
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f281706c5b7913f43891c237c5210d40
|
||||
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlayerSettings.asset
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f5d189d2c8569c2489fe942137ea0f24
|
||||
m_Address: Assets/Resources_moved/Camera/CinemachineCamera.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f5e16d3d2576c5a4ca27ea09aeb18733
|
||||
m_Address: Assets/Resources_moved/Configs/Scenes/MainMenu.asset
|
||||
@@ -74,6 +393,28 @@ MonoBehaviour:
|
||||
m_SerializedLabels:
|
||||
- SceneConfig
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f60baf3e133aa2644a106742a1f2c2fb
|
||||
m_Address: Assets/Resources_moved/Example/Race/WinScreen.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f75fc43e1e6bd3ca5b4c90a98a790033
|
||||
m_Address: Example/Platformer
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f7cebe94899e9257497d042d1ec4fd76
|
||||
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/ButtonRollOver.asset
|
||||
m_ReadOnly: 0
|
||||
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,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2effcda6ca972d34c85ec6e106aa4021
|
||||
guid: 5313cc04f8ca14597b338b65bee3093d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,28 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7e3976da977cb49238499ea3b4c237ae, type: 3}
|
||||
m_Name: ProfileDataSourceSettings
|
||||
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.ProfileDataSourceSettings
|
||||
profileGroupTypes:
|
||||
- m_GroupTypePrefix: Built-In
|
||||
m_Variables:
|
||||
- m_Suffix: BuildPath
|
||||
m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
|
||||
- m_Suffix: LoadPath
|
||||
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
|
||||
environments: []
|
||||
currentEnvironment:
|
||||
id:
|
||||
projectId:
|
||||
projectGenesisId:
|
||||
name:
|
||||
isDefault: 0
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a78f552da8f156b469b95652e4b0209d
|
||||
guid: a5b15ef261c372546828bde22c50fbb3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a849b8376c6cae04b8dd2b8743cf2fb1
|
||||
guid: 5fd003c2e081890428485bfb959fa404
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d6b79a067be4ebc97601337f35b808a
|
||||
timeCreated: 1769346033
|
||||
@@ -0,0 +1,41 @@
|
||||
using System.Collections.Generic;
|
||||
using Code.Infrastructure.App;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
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.Additive).Forget();
|
||||
}
|
||||
|
||||
public void ChooseState(int id)
|
||||
{
|
||||
_stateMachine.SwitchState((AppStates)id);
|
||||
}
|
||||
|
||||
public void SwitchGameplay()
|
||||
{
|
||||
_stateMachine.SwitchState(AppStates.Gameplay).AllowStateTransition(AppStates.MainMenu);
|
||||
}
|
||||
public void SwitchPlatformer()
|
||||
{
|
||||
_stateMachine.SwitchState(AppStates.Platformer).AllowStateTransition(AppStates.MainMenu);
|
||||
}
|
||||
|
||||
[SerializeField] private List<Button> buttons;
|
||||
|
||||
public void EnableButtons()
|
||||
{
|
||||
foreach (var button in buttons) button.interactable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72527bc5589647428bb4575953d13a90
|
||||
timeCreated: 1769346042
|
||||
@@ -1,3 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 07cf07a937934e0094469237b5865b60
|
||||
timeCreated: 1766350980
|
||||
guid: 2f828f4a304e46578e63d3803c9a889d
|
||||
timeCreated: 1769522070
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b03c560586d24e78b3fee9249e2f3d61
|
||||
timeCreated: 1766605332
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b44837d95edd481087730e30635ab5fc
|
||||
timeCreated: 1766605342
|
||||
@@ -1,483 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using KinematicCharacterController;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Liminal.Character
|
||||
{
|
||||
public enum CharacterState
|
||||
{
|
||||
Default,
|
||||
}
|
||||
|
||||
public enum OrientationMethod
|
||||
{
|
||||
TowardsCamera,
|
||||
TowardsMovement,
|
||||
}
|
||||
|
||||
public class PlayerCharacterInputs
|
||||
{
|
||||
public float MoveAxisForward;
|
||||
public float MoveAxisRight;
|
||||
public Quaternion CameraRotation;
|
||||
public bool CrouchDown;
|
||||
public bool CrouchUp;
|
||||
}
|
||||
|
||||
public struct AICharacterInputs
|
||||
{
|
||||
public Vector3 MoveVector;
|
||||
public Vector3 LookVector;
|
||||
}
|
||||
|
||||
public enum BonusOrientationMethod
|
||||
{
|
||||
None,
|
||||
TowardsGravity,
|
||||
TowardsGroundSlopeAndGravity,
|
||||
}
|
||||
|
||||
public class LiminalCharacterController : MonoBehaviour, ICharacterController
|
||||
{
|
||||
public KinematicCharacterMotor Motor;
|
||||
|
||||
[Header("Stable Movement")] public float MaxStableMoveSpeed = 10f;
|
||||
public float StableMovementSharpness = 15f;
|
||||
public float OrientationSharpness = 10f;
|
||||
public bool InfinitelySharpRotation;
|
||||
public OrientationMethod OrientationMethod = OrientationMethod.TowardsCamera;
|
||||
|
||||
[Header("Air Movement")] public float MaxAirMoveSpeed = 15f;
|
||||
public float AirAccelerationSpeed = 15f;
|
||||
public float Drag = 0.1f;
|
||||
|
||||
[Header("Misc")] public List<Collider> IgnoredColliders = new List<Collider>();
|
||||
public BonusOrientationMethod BonusOrientationMethod = BonusOrientationMethod.None;
|
||||
public float BonusOrientationSharpness = 10f;
|
||||
|
||||
public Vector3 Gravity = new Vector3(0, -30f, 0);
|
||||
|
||||
// public Transform MeshRoot;
|
||||
public float CrouchedCapsuleHeight = 1f;
|
||||
|
||||
public CharacterState CurrentCharacterState { get; private set; }
|
||||
|
||||
private Collider[] _probedColliders = new Collider[8];
|
||||
private RaycastHit[] _probedHits = new RaycastHit[8];
|
||||
private Vector3 _moveInputVector;
|
||||
private Vector3 _lookInputVector;
|
||||
private Vector3 _internalVelocityAdd = Vector3.zero;
|
||||
private bool _shouldBeCrouching = false;
|
||||
private bool _isCrouching = false;
|
||||
|
||||
|
||||
public void Teleport(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
Motor.SetPosition(position);
|
||||
Motor.SetRotation(rotation);
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// Handle initial state
|
||||
TransitionToState(CharacterState.Default);
|
||||
|
||||
// Assign the characterController to the motor
|
||||
Motor.CharacterController = this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles movement state transitions and enter/exit callbacks
|
||||
/// </summary>
|
||||
public void TransitionToState(CharacterState newState)
|
||||
{
|
||||
CharacterState tmpInitialState = CurrentCharacterState;
|
||||
OnStateExit(tmpInitialState, newState);
|
||||
CurrentCharacterState = newState;
|
||||
OnStateEnter(newState, tmpInitialState);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event when entering a state
|
||||
/// </summary>
|
||||
private void OnStateEnter(CharacterState state, CharacterState fromState)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event when exiting a state
|
||||
/// </summary>
|
||||
private void OnStateExit(CharacterState state, CharacterState toState)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called every frame by ExamplePlayer in order to tell the character what its inputs are
|
||||
/// </summary>
|
||||
public void SetInputs(PlayerCharacterInputs inputs)
|
||||
{
|
||||
// Clamp input
|
||||
Vector3 moveInputVector =
|
||||
Vector3.ClampMagnitude(new Vector3(inputs.MoveAxisRight, 0f, inputs.MoveAxisForward), 1f);
|
||||
|
||||
// Calculate camera direction and rotation on the character plane
|
||||
Vector3 cameraPlanarDirection =
|
||||
Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.forward, Motor.CharacterUp).normalized;
|
||||
if (cameraPlanarDirection.sqrMagnitude == 0f)
|
||||
{
|
||||
cameraPlanarDirection = Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.up, Motor.CharacterUp)
|
||||
.normalized;
|
||||
}
|
||||
|
||||
Quaternion cameraPlanarRotation = Quaternion.LookRotation(cameraPlanarDirection, Motor.CharacterUp);
|
||||
|
||||
switch (CurrentCharacterState)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
// Move and look inputs
|
||||
_moveInputVector = cameraPlanarRotation * moveInputVector;
|
||||
|
||||
switch (OrientationMethod)
|
||||
{
|
||||
case OrientationMethod.TowardsCamera:
|
||||
_lookInputVector = cameraPlanarDirection;
|
||||
break;
|
||||
case OrientationMethod.TowardsMovement:
|
||||
_lookInputVector = _moveInputVector.normalized;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Crouching input
|
||||
if (inputs.CrouchDown)
|
||||
{
|
||||
_shouldBeCrouching = true;
|
||||
|
||||
if (!_isCrouching)
|
||||
{
|
||||
_isCrouching = true;
|
||||
Motor.SetCapsuleDimensions(0.5f, CrouchedCapsuleHeight, CrouchedCapsuleHeight * 0.5f);
|
||||
// MeshRoot.localScale = new Vector3(1f, 0.5f, 1f);
|
||||
}
|
||||
}
|
||||
else if (inputs.CrouchUp)
|
||||
{
|
||||
_shouldBeCrouching = false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called every frame by the AI script in order to tell the character what its inputs are
|
||||
/// </summary>
|
||||
public void SetInputs(ref AICharacterInputs inputs)
|
||||
{
|
||||
_moveInputVector = inputs.MoveVector;
|
||||
_lookInputVector = inputs.LookVector;
|
||||
}
|
||||
|
||||
private Quaternion _tmpTransientRot;
|
||||
|
||||
/// <summary>
|
||||
/// (Called by KinematicCharacterMotor during its update cycle)
|
||||
/// This is called before the character begins its movement update
|
||||
/// </summary>
|
||||
public void BeforeCharacterUpdate(float deltaTime)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// (Called by KinematicCharacterMotor during its update cycle)
|
||||
/// This is where you tell your character what its rotation should be right now.
|
||||
/// This is the ONLY place where you should set the character's rotation
|
||||
/// </summary>
|
||||
public void UpdateRotation(ref Quaternion currentRotation, float deltaTime)
|
||||
{
|
||||
switch (CurrentCharacterState)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
if (!InfinitelySharpRotation)
|
||||
{
|
||||
if (_lookInputVector.sqrMagnitude > 0f && OrientationSharpness > 0f)
|
||||
{
|
||||
// Smoothly interpolate from current to target look direction
|
||||
Vector3 smoothedLookInputDirection = Vector3.Slerp(Motor.CharacterForward,
|
||||
_lookInputVector, 1 - Mathf.Exp(-OrientationSharpness * deltaTime)).normalized;
|
||||
|
||||
// Set the current rotation (which will be used by the KinematicCharacterMotor)
|
||||
currentRotation =
|
||||
Quaternion.LookRotation(smoothedLookInputDirection, Motor.CharacterUp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
currentRotation = Quaternion.LookRotation(_lookInputVector, Motor.CharacterUp);
|
||||
}
|
||||
|
||||
Vector3 currentUp = (currentRotation * Vector3.up);
|
||||
if (BonusOrientationMethod == BonusOrientationMethod.TowardsGravity)
|
||||
{
|
||||
// Rotate from current up to invert gravity
|
||||
Vector3 smoothedGravityDir = Vector3.Slerp(currentUp, -Gravity.normalized,
|
||||
1 - Mathf.Exp(-BonusOrientationSharpness * deltaTime));
|
||||
currentRotation = Quaternion.FromToRotation(currentUp, smoothedGravityDir) * currentRotation;
|
||||
}
|
||||
else if (BonusOrientationMethod == BonusOrientationMethod.TowardsGroundSlopeAndGravity)
|
||||
{
|
||||
if (Motor.GroundingStatus.IsStableOnGround)
|
||||
{
|
||||
Vector3 initialCharacterBottomHemiCenter =
|
||||
Motor.TransientPosition + (currentUp * Motor.Capsule.radius);
|
||||
|
||||
Vector3 smoothedGroundNormal = Vector3.Slerp(Motor.CharacterUp,
|
||||
Motor.GroundingStatus.GroundNormal,
|
||||
1 - Mathf.Exp(-BonusOrientationSharpness * deltaTime));
|
||||
currentRotation = Quaternion.FromToRotation(currentUp, smoothedGroundNormal) *
|
||||
currentRotation;
|
||||
|
||||
// Move the position to create a rotation around the bottom hemi center instead of around the pivot
|
||||
Motor.SetTransientPosition(initialCharacterBottomHemiCenter +
|
||||
(currentRotation * Vector3.down * Motor.Capsule.radius));
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 smoothedGravityDir = Vector3.Slerp(currentUp, -Gravity.normalized,
|
||||
1 - Mathf.Exp(-BonusOrientationSharpness * deltaTime));
|
||||
currentRotation = Quaternion.FromToRotation(currentUp, smoothedGravityDir) *
|
||||
currentRotation;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 smoothedGravityDir = Vector3.Slerp(currentUp, Vector3.up,
|
||||
1 - Mathf.Exp(-BonusOrientationSharpness * deltaTime));
|
||||
currentRotation = Quaternion.FromToRotation(currentUp, smoothedGravityDir) * currentRotation;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// (Called by KinematicCharacterMotor during its update cycle)
|
||||
/// This is where you tell your character what its velocity should be right now.
|
||||
/// This is the ONLY place where you can set the character's velocity
|
||||
/// </summary>
|
||||
public void UpdateVelocity(ref Vector3 currentVelocity, float deltaTime)
|
||||
{
|
||||
switch (CurrentCharacterState)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
// Ground movement
|
||||
if (Motor.GroundingStatus.IsStableOnGround)
|
||||
{
|
||||
float currentVelocityMagnitude = currentVelocity.magnitude;
|
||||
|
||||
Vector3 effectiveGroundNormal = Motor.GroundingStatus.GroundNormal;
|
||||
|
||||
// Reorient velocity on slope
|
||||
currentVelocity = Motor.GetDirectionTangentToSurface(currentVelocity, effectiveGroundNormal) *
|
||||
currentVelocityMagnitude;
|
||||
|
||||
// Calculate target velocity
|
||||
Vector3 inputRight = Vector3.Cross(_moveInputVector, Motor.CharacterUp);
|
||||
Vector3 reorientedInput = Vector3.Cross(effectiveGroundNormal, inputRight).normalized *
|
||||
_moveInputVector.magnitude;
|
||||
Vector3 targetMovementVelocity = reorientedInput * MaxStableMoveSpeed;
|
||||
|
||||
// Smooth movement Velocity
|
||||
currentVelocity = Vector3.Lerp(currentVelocity, targetMovementVelocity,
|
||||
1f - Mathf.Exp(-StableMovementSharpness * deltaTime));
|
||||
}
|
||||
// Air movement
|
||||
else
|
||||
{
|
||||
// Add move input
|
||||
if (_moveInputVector.sqrMagnitude > 0f)
|
||||
{
|
||||
Vector3 addedVelocity = _moveInputVector * AirAccelerationSpeed * deltaTime;
|
||||
|
||||
Vector3 currentVelocityOnInputsPlane =
|
||||
Vector3.ProjectOnPlane(currentVelocity, Motor.CharacterUp);
|
||||
|
||||
// Limit air velocity from inputs
|
||||
if (currentVelocityOnInputsPlane.magnitude < MaxAirMoveSpeed)
|
||||
{
|
||||
// clamp addedVel to make total vel not exceed max vel on inputs plane
|
||||
Vector3 newTotal = Vector3.ClampMagnitude(currentVelocityOnInputsPlane + addedVelocity,
|
||||
MaxAirMoveSpeed);
|
||||
addedVelocity = newTotal - currentVelocityOnInputsPlane;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Make sure added vel doesn't go in the direction of the already-exceeding velocity
|
||||
if (Vector3.Dot(currentVelocityOnInputsPlane, addedVelocity) > 0f)
|
||||
{
|
||||
addedVelocity = Vector3.ProjectOnPlane(addedVelocity,
|
||||
currentVelocityOnInputsPlane.normalized);
|
||||
}
|
||||
}
|
||||
|
||||
// Prevent air-climbing sloped walls
|
||||
if (Motor.GroundingStatus.FoundAnyGround)
|
||||
{
|
||||
if (Vector3.Dot(currentVelocity + addedVelocity, addedVelocity) > 0f)
|
||||
{
|
||||
Vector3 perpenticularObstructionNormal = Vector3
|
||||
.Cross(Vector3.Cross(Motor.CharacterUp, Motor.GroundingStatus.GroundNormal),
|
||||
Motor.CharacterUp).normalized;
|
||||
addedVelocity =
|
||||
Vector3.ProjectOnPlane(addedVelocity, perpenticularObstructionNormal);
|
||||
}
|
||||
}
|
||||
|
||||
// Apply added velocity
|
||||
currentVelocity += addedVelocity;
|
||||
}
|
||||
|
||||
// Gravity
|
||||
currentVelocity += Gravity * deltaTime;
|
||||
|
||||
// Drag
|
||||
currentVelocity *= (1f / (1f + (Drag * deltaTime)));
|
||||
}
|
||||
|
||||
// Take into account additive velocity
|
||||
if (_internalVelocityAdd.sqrMagnitude > 0f)
|
||||
{
|
||||
currentVelocity += _internalVelocityAdd;
|
||||
_internalVelocityAdd = Vector3.zero;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// (Called by KinematicCharacterMotor during its update cycle)
|
||||
/// This is called after the character has finished its movement update
|
||||
/// </summary>
|
||||
public void AfterCharacterUpdate(float deltaTime)
|
||||
{
|
||||
switch (CurrentCharacterState)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
// Handle uncrouching
|
||||
if (_isCrouching && !_shouldBeCrouching)
|
||||
{
|
||||
// Do an overlap test with the character's standing height to see if there are any obstructions
|
||||
Motor.SetCapsuleDimensions(0.5f, 2f, 1f);
|
||||
if (Motor.CharacterOverlap(
|
||||
Motor.TransientPosition,
|
||||
Motor.TransientRotation,
|
||||
_probedColliders,
|
||||
Motor.CollidableLayers,
|
||||
QueryTriggerInteraction.Ignore) > 0)
|
||||
{
|
||||
// If obstructions, just stick to crouching dimensions
|
||||
Motor.SetCapsuleDimensions(0.5f, CrouchedCapsuleHeight, CrouchedCapsuleHeight * 0.5f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// If no obstructions, uncrouch
|
||||
// MeshRoot.localScale = new Vector3(1f, 1f, 1f);
|
||||
_isCrouching = false;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void PostGroundingUpdate(float deltaTime)
|
||||
{
|
||||
// Handle landing and leaving ground
|
||||
if (Motor.GroundingStatus.IsStableOnGround && !Motor.LastGroundingStatus.IsStableOnGround)
|
||||
{
|
||||
OnLanded();
|
||||
}
|
||||
else if (!Motor.GroundingStatus.IsStableOnGround && Motor.LastGroundingStatus.IsStableOnGround)
|
||||
{
|
||||
OnLeaveStableGround();
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsColliderValidForCollisions(Collider coll)
|
||||
{
|
||||
if (IgnoredColliders.Count == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (IgnoredColliders.Contains(coll))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnGroundHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint,
|
||||
ref HitStabilityReport hitStabilityReport)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint,
|
||||
ref HitStabilityReport hitStabilityReport)
|
||||
{
|
||||
}
|
||||
|
||||
public void AddVelocity(Vector3 velocity)
|
||||
{
|
||||
switch (CurrentCharacterState)
|
||||
{
|
||||
case CharacterState.Default:
|
||||
{
|
||||
_internalVelocityAdd += velocity;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessHitStabilityReport(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint,
|
||||
Vector3 atCharacterPosition, Quaternion atCharacterRotation, ref HitStabilityReport hitStabilityReport)
|
||||
{
|
||||
}
|
||||
|
||||
protected void OnLanded()
|
||||
{
|
||||
}
|
||||
|
||||
protected void OnLeaveStableGround()
|
||||
{
|
||||
}
|
||||
|
||||
public void OnDiscreteCollisionDetected(Collider hitCollider)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba1cb0200be742ec8d680ad8b2d662cb
|
||||
timeCreated: 1766610552
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7569a6973424ff5802b1635c5338316
|
||||
timeCreated: 1766611137
|
||||
@@ -1,18 +0,0 @@
|
||||
using KinematicCharacterController;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Liminal.Player
|
||||
{
|
||||
public class PlayerAnimator : MonoBehaviour
|
||||
{
|
||||
private static readonly int Velocity = Animator.StringToHash("Velocity");
|
||||
|
||||
[SerializeField] private Animator animator;
|
||||
[SerializeField] private KinematicCharacterMotor characterMotor;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
animator.SetFloat(Velocity, characterMotor.Velocity.magnitude);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e79636518658432a99481e476aeebc66
|
||||
timeCreated: 1766610269
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace Code.Example.Liminal.Player
|
||||
{
|
||||
public class PlayerFactory
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 60b7c1aa1c8c4189a2b442d2b4c628eb
|
||||
timeCreated: 1766652945
|
||||
@@ -1,74 +0,0 @@
|
||||
using System;
|
||||
using Code.Example.Liminal.Character;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Camera.CameraStates;
|
||||
using Code.Infrastructure.Input;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Code.Example.Liminal.Player
|
||||
{
|
||||
public class PlayerMovementController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private LiminalCharacterController characterController;
|
||||
private PlayerCharacterInputs _currentInputs = new();
|
||||
private IInputService _inputService;
|
||||
|
||||
private CameraStateMachine _cameraStateMachine;
|
||||
|
||||
public Transform PlayerHeadPoint;
|
||||
|
||||
[Inject]
|
||||
private void Construct(IInputService inputService, CameraStateMachine stateMachine)
|
||||
{
|
||||
_inputService = inputService;
|
||||
_inputService.BindActionPerformed((int) ActionMappings.Gameplay, (int) GameplayActions.Move, OnMovePerformed);
|
||||
_inputService.BindActionCancel((int) ActionMappings.Gameplay, (int) GameplayActions.Move, OnMoveCanceled);
|
||||
_inputService.BindActionPerformed((int) ActionMappings.Gameplay, (int) GameplayActions.Crouch, OnCrouchPerformed);
|
||||
_inputService.BindActionCancel((int) ActionMappings.Gameplay, (int) GameplayActions.Crouch, OnCrouchCanceled);
|
||||
|
||||
_cameraStateMachine = stateMachine;
|
||||
((FirstPersonCameraState)stateMachine.CurrentBaseState).SetPlayer(this);
|
||||
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_currentInputs.MoveAxisForward = 0;
|
||||
_currentInputs.MoveAxisRight = 0;
|
||||
_currentInputs.CrouchUp = true;
|
||||
_currentInputs.CrouchDown = false;
|
||||
_currentInputs.CameraRotation = Quaternion.identity;
|
||||
}
|
||||
|
||||
public void SetCameraRotation(Quaternion rotation) => _currentInputs.CameraRotation = rotation;
|
||||
private void OnMovePerformed(InputAction.CallbackContext context)
|
||||
{
|
||||
_currentInputs.MoveAxisForward = context.ReadValue<Vector2>().y;
|
||||
_currentInputs.MoveAxisRight = context.ReadValue<Vector2>().x;
|
||||
}
|
||||
|
||||
private void OnMoveCanceled(InputAction.CallbackContext context)
|
||||
{
|
||||
_currentInputs.MoveAxisForward = 0;
|
||||
_currentInputs.MoveAxisRight = 0;
|
||||
}
|
||||
|
||||
private void OnCrouchPerformed(InputAction.CallbackContext context)
|
||||
{
|
||||
_currentInputs.CrouchDown = true;
|
||||
_currentInputs.CrouchUp = false;
|
||||
}
|
||||
|
||||
private void OnCrouchCanceled(InputAction.CallbackContext context)
|
||||
{
|
||||
_currentInputs.CrouchUp = true;
|
||||
_currentInputs.CrouchDown = false;
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
characterController.SetInputs(_currentInputs);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8dd688d33c434f999d0ff7cd0553f1ee
|
||||
timeCreated: 1766611089
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36ea829cf56649b4a025c709390a457c
|
||||
timeCreated: 1770736333
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95e867912f25463e8ae222819491ee0d
|
||||
timeCreated: 1770905985
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9df78f95b3ad416cb1a0a786f0b22365
|
||||
timeCreated: 1771423438
|
||||
@@ -0,0 +1,62 @@
|
||||
using System.Collections.Generic;
|
||||
using PrimeTween;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity.Enemies
|
||||
{
|
||||
public class Bee : Entity
|
||||
{
|
||||
[SerializeField] private List<Transform> partolPoints;
|
||||
[SerializeField] private bool onPatrol = true;
|
||||
private int _currentPatrolPoint;
|
||||
|
||||
private Vector3 _velocity = new Vector3(1,1,1);
|
||||
[SerializeField] private Transform _currentTarget;
|
||||
|
||||
private Tween _patrolAction;
|
||||
|
||||
protected override void Move()
|
||||
{
|
||||
if (onPatrol && !_patrolAction.isAlive)
|
||||
{
|
||||
_patrolAction = Tween
|
||||
.PositionAtSpeed(transform,partolPoints[_currentPatrolPoint].position, 0.5f)
|
||||
.OnComplete(target: this, target => target.OnControlPointReached());
|
||||
}
|
||||
else if(_currentTarget)
|
||||
{
|
||||
|
||||
var direction = _currentTarget.position - transform.position;
|
||||
direction.Normalize();
|
||||
var targetPosition = _currentTarget.position + direction * -2f;
|
||||
|
||||
UnityEngine.Debug.DrawLine(transform.position, targetPosition, Color.red);
|
||||
|
||||
transform.position = Vector3.SmoothDamp(transform.position,_currentTarget.position,ref _velocity, 1f);
|
||||
// Tween
|
||||
// .PositionAtSpeed(transform, _currentTarget.position, 1f).OnUpdate(transform, );
|
||||
// // .OnComplete(OnControlPointReached);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnControlPointReached()
|
||||
{
|
||||
if (++_currentPatrolPoint >= partolPoints.Count) _currentPatrolPoint = 0;
|
||||
}
|
||||
|
||||
public void GotTarget(Transform other)
|
||||
{
|
||||
onPatrol = false;
|
||||
|
||||
_currentTarget = other;
|
||||
|
||||
_patrolAction.Stop();
|
||||
}
|
||||
|
||||
public void LostTarget()
|
||||
{
|
||||
onPatrol = true;
|
||||
_currentTarget = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2abf74ae7a894c5abc850fe852fdf4e7
|
||||
timeCreated: 1771433363
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity.Enemies
|
||||
{
|
||||
public class BeeRadar : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Bee bee;
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other) => bee.GotTarget(other.transform);
|
||||
|
||||
private void OnTriggerExit2D(Collider2D other) => bee.LostTarget();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 582294c360404f6d952d9e28bde1fbea
|
||||
timeCreated: 1771434696
|
||||
@@ -0,0 +1,60 @@
|
||||
using Code.Infrastructure.Configs;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity.Enemies
|
||||
{
|
||||
public class Boar : Entity
|
||||
{
|
||||
[SerializeField] private Vector2 groundLeft;
|
||||
[SerializeField] private Vector2 groundRight;
|
||||
private bool _directionRight;
|
||||
|
||||
private float _acceleration = 3f;
|
||||
|
||||
protected override void Move()
|
||||
{
|
||||
if (_target)
|
||||
{
|
||||
_directionRight = ((_target.position - transform.position)).x > float.Epsilon;
|
||||
UnityEngine.Debug.DrawLine(transform.position, (transform.position + (_target.position - transform.position)), Color.salmon);
|
||||
|
||||
CheckupDirection();
|
||||
|
||||
rigidbody2D.linearVelocityX = _directionRight ? 0.5f : -0.5f;
|
||||
rigidbody2D.linearVelocityX *= _acceleration;
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckupDirection();
|
||||
|
||||
rigidbody2D.linearVelocityX = _directionRight ? 0.5f : -0.5f;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void HandleFlipX() => spriteRenderer.flipX = rigidbody2D.linearVelocity.x > -0.01f;
|
||||
|
||||
private void CheckupDirection()
|
||||
{
|
||||
if (_directionRight)
|
||||
{
|
||||
if (!Physics2D.OverlapPoint((Vector2)transform.position + groundRight,
|
||||
LayerMasks.Masks[LayerMaskType.PlatformerGround]))
|
||||
_directionRight = false;
|
||||
}
|
||||
else if (!Physics2D.OverlapPoint((Vector2)transform.position + groundLeft,
|
||||
LayerMasks.Masks[LayerMaskType.PlatformerGround]))
|
||||
_directionRight = true;
|
||||
}
|
||||
|
||||
private Transform _target;
|
||||
|
||||
public void GotTarget(Transform target)
|
||||
{
|
||||
_target = target;
|
||||
}
|
||||
public void LostTarget()
|
||||
{
|
||||
_target = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a21daf0f518490daeacea92cc2dee2d
|
||||
timeCreated: 1772187830
|
||||
@@ -0,0 +1,19 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity.Enemies
|
||||
{
|
||||
public class BoarRadar : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Boar boar;
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
boar.GotTarget(other.transform);
|
||||
}
|
||||
|
||||
private void OnTriggerExit2D(Collider2D other)
|
||||
{
|
||||
boar.LostTarget();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e0976ba0c1904671ac17f194f8694aa1
|
||||
timeCreated: 1772187891
|
||||
@@ -0,0 +1,32 @@
|
||||
using Code.Infrastructure.Configs;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity.Enemies
|
||||
{
|
||||
public class Snail : Entity
|
||||
{
|
||||
[SerializeField] private Vector2 groundLeft;
|
||||
[SerializeField] private Vector2 groundRight;
|
||||
[SerializeField] private bool _directionRight;
|
||||
|
||||
protected override void Move()
|
||||
{
|
||||
CheckupDirection();
|
||||
rigidbody2D.linearVelocityX = _directionRight ? 0.5f : -0.5f;
|
||||
}
|
||||
protected override void HandleFlipX() => spriteRenderer.flipX = rigidbody2D.linearVelocity.x > -0.01f;
|
||||
|
||||
private void CheckupDirection()
|
||||
{
|
||||
if (_directionRight)
|
||||
{
|
||||
if (!Physics2D.OverlapPoint((Vector2)transform.position + groundRight,
|
||||
LayerMasks.Masks[LayerMaskType.PlatformerGround]))
|
||||
_directionRight = false;
|
||||
}
|
||||
else if (!Physics2D.OverlapPoint((Vector2)transform.position + groundLeft,
|
||||
LayerMasks.Masks[LayerMaskType.PlatformerGround]))
|
||||
_directionRight = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4bb753139de944f69f426cbc1ec9ec92
|
||||
timeCreated: 1771430576
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using Code.Infrastructure.Configs;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
public abstract class Entity : MonoBehaviour
|
||||
{
|
||||
private static readonly int VelocityY = Animator.StringToHash("VelocityY");
|
||||
private static readonly int VelocityX = Animator.StringToHash("VelocityX");
|
||||
private static readonly int OnGround = Animator.StringToHash("OnGround");
|
||||
|
||||
[SerializeField] protected Rigidbody2D rigidbody2D;
|
||||
[SerializeField] protected Animator animator;
|
||||
[SerializeField] protected SpriteRenderer spriteRenderer;
|
||||
[SerializeField] private Vector2 groundPoint;
|
||||
|
||||
private PlatformerEntityData _data;
|
||||
|
||||
public void SetData(PlatformerEntityData data)
|
||||
{
|
||||
_data = data;
|
||||
}
|
||||
|
||||
protected bool onGround;
|
||||
|
||||
protected virtual void Update()
|
||||
{
|
||||
animator.SetFloat(VelocityX, rigidbody2D.linearVelocityX);
|
||||
animator.SetFloat(VelocityY, rigidbody2D.linearVelocityY);
|
||||
}
|
||||
|
||||
protected virtual void HandleFlipX() => spriteRenderer.flipX = rigidbody2D.linearVelocity.x < 0.01f;
|
||||
|
||||
protected virtual void FixedUpdate()
|
||||
{
|
||||
onGround = CheckGround();
|
||||
animator.SetBool(OnGround, onGround);
|
||||
|
||||
Move();
|
||||
|
||||
if(rigidbody2D.linearVelocity.x is > 0.01f or < -0.01f) HandleFlipX();
|
||||
}
|
||||
|
||||
protected virtual bool CheckGround()
|
||||
{
|
||||
UnityEngine.Debug.DrawLine(transform.position,(Vector2)transform.position + groundPoint, Color.green);
|
||||
return Physics2D.OverlapPoint((Vector2)transform.position + groundPoint, LayerMasks.Masks[LayerMaskType.PlatformerGround]);
|
||||
}
|
||||
|
||||
protected abstract void Move();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4b8cd0fdb9e4c258acd1f5898f193d1
|
||||
timeCreated: 1770905992
|
||||
@@ -0,0 +1,26 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
public class EntityHealth : MonoBehaviour
|
||||
{
|
||||
private int _health;
|
||||
private int _maxHealth;
|
||||
public void SetMaxHealth(int maxHealth) => _maxHealth = maxHealth;
|
||||
public bool IsDead { get; private set; }
|
||||
|
||||
public void GiveDamage(int damage)
|
||||
{
|
||||
_health -= damage;
|
||||
|
||||
if(_health <= 0) IsDead = true;
|
||||
}
|
||||
|
||||
public void Heal(int heal)
|
||||
{
|
||||
if (IsDead) return;
|
||||
if (_health + heal > _maxHealth) _health = _maxHealth;
|
||||
else _health += heal;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3078030faef42b5bddd46a7c5c91d95
|
||||
timeCreated: 1773058870
|
||||
@@ -0,0 +1,114 @@
|
||||
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;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
public interface IPlatformerEnemyFactory
|
||||
{
|
||||
UniTaskVoid WarmEnemy(PlatformerEntityType enemyType);
|
||||
void ReleaseEnemy(PlatformerEntityType racerType);
|
||||
|
||||
UniTaskVoid SpawnEnemy(
|
||||
PlatformerEntityType enemyType,
|
||||
Vector3 position);
|
||||
}
|
||||
|
||||
public class PlatformerEnemyFactory : IPlatformerEnemyFactory, IDisposable
|
||||
{
|
||||
private EventBus _eventBus;
|
||||
|
||||
private string _enemyConfigsLabel;
|
||||
private AsyncOperationHandle<IList<PlatformerEntitySettingsConfig>> _enemyConfigsHandle;
|
||||
private Dictionary<PlatformerEntityType, AsyncOperationHandle<GameObject>> _enemyPrefabsHandle = new();
|
||||
|
||||
private Dictionary<PlatformerEntityType, PlatformerEntitySettingsConfig> _enemyConfigs;
|
||||
|
||||
public PlatformerEnemyFactory(IConfigLocator configLocator, EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_enemyConfigsLabel = configLocator.TryGetManyConfigAssetReferences<PlatformerEntitySettingsConfig>();
|
||||
|
||||
LoadConfigs().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid LoadConfigs()
|
||||
{
|
||||
_enemyConfigsHandle = Addressables.LoadAssetsAsync<PlatformerEntitySettingsConfig>(_enemyConfigsLabel);
|
||||
|
||||
await _enemyConfigsHandle.ToUniTask();
|
||||
|
||||
_enemyConfigs = _enemyConfigsHandle.Result.ToDictionary(x => x.EntityData.type);
|
||||
|
||||
_eventBus.RaiseEvent<IPlatformerEnemyFactoryInitializedHandle>(x => x.PlatformerEnemyFactoryInitialized());
|
||||
}
|
||||
|
||||
public async UniTaskVoid WarmEnemy(PlatformerEntityType enemyType)
|
||||
{
|
||||
if (enemyType == PlatformerEntityType.Player) return;
|
||||
|
||||
if (_enemyPrefabsHandle.ContainsKey(enemyType))
|
||||
{
|
||||
_eventBus.RaiseEvent<IPlatformerEnemyLoadedHandle>(x => x.PlatformerEnemyLoaded(enemyType, null));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
UnityEngine.Debug.LogWarning($"Enemy loaded {enemyType}");
|
||||
_enemyPrefabsHandle.Add(enemyType,
|
||||
Addressables.LoadAssetAsync<GameObject>(_enemyConfigs[enemyType].prefabReference));
|
||||
|
||||
await _enemyPrefabsHandle[enemyType].ToUniTask();
|
||||
|
||||
var entity = _enemyPrefabsHandle[enemyType].Result.GetComponent<Entity>();
|
||||
entity.SetData(_enemyConfigs[enemyType].EntityData);
|
||||
|
||||
var health = _enemyPrefabsHandle[enemyType].Result.GetComponent<EntityHealth>();
|
||||
health.SetMaxHealth(_enemyConfigs[enemyType].EntityData.maxHealth);
|
||||
|
||||
_eventBus.RaiseEvent<IPlatformerEnemyLoadedHandle>(x => x.PlatformerEnemyLoaded(enemyType, entity));
|
||||
}
|
||||
|
||||
public void ReleaseEnemy(PlatformerEntityType racerType)
|
||||
{
|
||||
_enemyPrefabsHandle[racerType].Release();
|
||||
_enemyPrefabsHandle.Remove(racerType);
|
||||
}
|
||||
|
||||
public async UniTaskVoid SpawnEnemy(
|
||||
PlatformerEntityType enemyType,
|
||||
Vector3 position)
|
||||
{
|
||||
if (enemyType == PlatformerEntityType.Player) return;
|
||||
|
||||
await Addressables.InstantiateAsync(_enemyConfigs[enemyType].prefabReference, position, Quaternion.identity);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"Enemies released");
|
||||
foreach (var prefab in _enemyPrefabsHandle)
|
||||
prefab.Value.Release();
|
||||
|
||||
_enemyPrefabsHandle.Clear();
|
||||
|
||||
_enemyConfigsHandle.Release();
|
||||
}
|
||||
}
|
||||
|
||||
public interface IPlatformerEnemyFactoryInitializedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void PlatformerEnemyFactoryInitialized();
|
||||
}
|
||||
|
||||
public interface IPlatformerEnemyLoadedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void PlatformerEnemyLoaded(PlatformerEntityType type, Entity entity);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49fd97d8a6464d3e86d6ea215949d1f5
|
||||
timeCreated: 1771423258
|
||||
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using Code.Infrastructure.Generators;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
|
||||
[Serializable]
|
||||
public struct PlatformerEntityData
|
||||
{
|
||||
public string name;
|
||||
public float speed;
|
||||
public float acceleration;
|
||||
public int damage;
|
||||
public PlatformerEntityType type;
|
||||
public int maxHealth;
|
||||
}
|
||||
|
||||
public enum PlatformerEntityType
|
||||
{
|
||||
Player,
|
||||
Boar,
|
||||
Bee,
|
||||
Snail
|
||||
}
|
||||
[Config("Configs/Gameplay/Platformer/EntitySettings", true)]
|
||||
public class PlatformerEntitySettings
|
||||
{
|
||||
[ToConfig] public PlatformerEntityData EntityData;
|
||||
|
||||
[ToConfig] public AssetReference prefabReference;
|
||||
}
|
||||
|
||||
[Config("", false, true)]
|
||||
public class PlatformerPlayerSettings
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6116fb7cbe9c49a9863b83f85375096a
|
||||
timeCreated: 1773066580
|
||||
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Code.Infrastructure.Configs;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Reflex.Core;
|
||||
using Reflex.Injectors;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
public interface IPlatformerPlayerFactory
|
||||
{
|
||||
UniTaskVoid LoadPlayer();
|
||||
void ReleasePlayer();
|
||||
|
||||
UniTaskVoid SpawnPlayer(Vector3 position);
|
||||
}
|
||||
|
||||
public class PlatformerPlayerFactory : IPlatformerPlayerFactory, IDisposable
|
||||
{
|
||||
private EventBus _eventBus;
|
||||
|
||||
private AssetReference _playerConfigReference;
|
||||
private AsyncOperationHandle<PlatformerEntitySettingsConfig> _playerConfigHandle;
|
||||
private AsyncOperationHandle<GameObject> _playerPrefabHandle;
|
||||
|
||||
private PlatformerEntitySettingsConfig _playerConfig;
|
||||
|
||||
public PlatformerPlayerFactory(IConfigLocator configLocator, EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_playerConfigReference = configLocator.TryGetConfigAssetReference<PlatformerPlayerSettingsConfig>();
|
||||
|
||||
LoadConfigs().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid LoadConfigs()
|
||||
{
|
||||
_playerConfigHandle = Addressables.LoadAssetAsync<PlatformerEntitySettingsConfig>(_playerConfigReference);
|
||||
|
||||
await _playerConfigHandle.ToUniTask();
|
||||
|
||||
_playerConfig = _playerConfigHandle.Result;
|
||||
|
||||
_eventBus.RaiseEvent<IPlatformerPlayerFactoryInitializedHandle>(x => x.PlatformerPlayerFactoryInitialized());
|
||||
}
|
||||
|
||||
public async UniTaskVoid LoadPlayer()
|
||||
{
|
||||
if (_playerPrefabHandle.IsValid())
|
||||
{
|
||||
_eventBus.RaiseEvent<IPlatformerPlayerLoadedHandle>(x => x.PlatformerPlayerLoaded());
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
UnityEngine.Debug.LogWarning($"Player loaded");
|
||||
_playerPrefabHandle = Addressables.LoadAssetAsync<GameObject>(_playerConfig.prefabReference);
|
||||
|
||||
await _playerPrefabHandle.ToUniTask();
|
||||
var racer = _playerPrefabHandle.Result.GetComponent<Entity>();
|
||||
racer.SetData(_playerConfig.EntityData);
|
||||
|
||||
_eventBus.RaiseEvent<IPlatformerPlayerLoadedHandle>(x => x.PlatformerPlayerLoaded());
|
||||
}
|
||||
|
||||
public void ReleasePlayer()
|
||||
{
|
||||
_playerPrefabHandle.Release();
|
||||
}
|
||||
|
||||
public async UniTaskVoid SpawnPlayer(Vector3 position)
|
||||
{
|
||||
var player = await Addressables.InstantiateAsync(_playerConfig.prefabReference, position, Quaternion.identity).ToUniTask();
|
||||
GameObjectInjector.InjectObject(player, Container.RootContainer); // TODO САМОЕ НЕСТАБИЛЬНОЕ ДЕРЬМО ВО ВСЕЛЕННОЙ КОНТЕЙНЕР ДОЛЖЕН БЫТЬ КОНТЕКСТНЫМ
|
||||
_eventBus.RaiseEvent<IPlatformerPlayerSpawnedHandle>(x => x.PlatformerPlayerSpawned(player.GetComponent<Entity>()));
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"Enemies released");
|
||||
_playerPrefabHandle.Release();
|
||||
|
||||
_playerConfigHandle.Release();
|
||||
}
|
||||
}
|
||||
|
||||
public interface IPlatformerPlayerFactoryInitializedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void PlatformerPlayerFactoryInitialized();
|
||||
}
|
||||
|
||||
public interface IPlatformerPlayerLoadedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void PlatformerPlayerLoaded();
|
||||
}
|
||||
public interface IPlatformerPlayerSpawnedHandle : IGlobalSubscriber
|
||||
{
|
||||
public void PlatformerPlayerSpawned(Entity entity);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70a3deb8fbb44749b5aeea7b3997a459
|
||||
timeCreated: 1773136472
|
||||
@@ -0,0 +1,109 @@
|
||||
using Code.Infrastructure.Audio;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Configs;
|
||||
using Code.Infrastructure.Input;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Code.Example.Platformer.Entity
|
||||
{
|
||||
public class PlayerEntity : Entity
|
||||
{
|
||||
private static readonly int OnAttack = Animator.StringToHash("OnAttack");
|
||||
private IInputService _inputService;
|
||||
|
||||
[Inject]
|
||||
private void Construct(IInputService inputService, IAudioService audioService)
|
||||
{
|
||||
_audioService = audioService;
|
||||
|
||||
_inputService = inputService;
|
||||
_inputService.BindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Move,
|
||||
MovementPerformed);
|
||||
_inputService.BindActionCancelled((int)ActionMappings.Platformer, (int)PlatformerActions.Move,
|
||||
MovementCancelled);
|
||||
_inputService.BindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Jump, JumpPerformed);
|
||||
_inputService.BindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Attack, AttackPerformed);
|
||||
_inputService.BindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Sprint, SprintPerformed);
|
||||
_inputService.BindActionCancelled((int)ActionMappings.Platformer, (int)PlatformerActions.Sprint, SprintCancelled);
|
||||
|
||||
//cameraFactory.GetCinematicCamera(CameraMode.Platformer).Follow = transform; , CameraFactory cameraFactory
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
_inputService.UnbindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Move,
|
||||
MovementPerformed);
|
||||
_inputService.UnbindActionCancelled((int)ActionMappings.Platformer, (int)PlatformerActions.Move,
|
||||
MovementCancelled);
|
||||
_inputService.UnbindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Jump, JumpPerformed);
|
||||
_inputService.UnbindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Attack, AttackPerformed);
|
||||
_inputService.UnbindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Sprint, SprintPerformed);
|
||||
_inputService.UnbindActionCancelled((int)ActionMappings.Platformer, (int)PlatformerActions.Sprint, SprintCancelled);
|
||||
}
|
||||
|
||||
private float _acceleration = 1f;
|
||||
|
||||
protected override void Move()
|
||||
{
|
||||
rigidbody2D.linearVelocityX = _moveDirection.x * 2f * _acceleration;
|
||||
}
|
||||
|
||||
private Vector2 _moveDirection;
|
||||
private IAudioService _audioService;
|
||||
|
||||
private void MovementPerformed(InputAction.CallbackContext callbackContext) =>
|
||||
_moveDirection = callbackContext.ReadValue<Vector2>();
|
||||
|
||||
private void MovementCancelled(InputAction.CallbackContext callbackContext) =>
|
||||
_moveDirection = Vector2.zero;
|
||||
|
||||
private void JumpPerformed(InputAction.CallbackContext callbackContext)
|
||||
{
|
||||
if (!onGround) return;
|
||||
rigidbody2D.AddForceY(100f);
|
||||
|
||||
_acceleration = 1f;
|
||||
}
|
||||
|
||||
[SerializeField] private Vector2 attackOffset;
|
||||
|
||||
private void AttackPerformed(InputAction.CallbackContext callbackContext)
|
||||
{
|
||||
if (!onGround) return;
|
||||
//
|
||||
|
||||
//
|
||||
_audioService.PlayOneShot(AudioNames.UISounds, 1);
|
||||
animator.SetBool(OnAttack, true);
|
||||
}
|
||||
|
||||
public void CastAttack()
|
||||
{
|
||||
var damagedOnes =
|
||||
Physics2D.OverlapPointAll((Vector2)transform.position + attackOffset, LayerMasks.Masks[LayerMaskType.PlatformerEnemy]);
|
||||
|
||||
if (damagedOnes == null) return;
|
||||
|
||||
foreach (var damaged in damagedOnes)
|
||||
{
|
||||
damaged.gameObject.GetComponent<EntityHealth>().GiveDamage(1);
|
||||
_audioService.PlayOneShot(AudioNames.UISounds, 2);
|
||||
}
|
||||
}
|
||||
|
||||
private void SprintPerformed(InputAction.CallbackContext callbackContext)
|
||||
{
|
||||
if (!onGround) return;
|
||||
//
|
||||
_acceleration = 3f;
|
||||
}
|
||||
private void SprintCancelled(InputAction.CallbackContext callbackContext)
|
||||
{
|
||||
_acceleration = 1f;
|
||||
}
|
||||
|
||||
public void AttackEnd() => animator.SetBool(OnAttack, false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d5abb60d772491cbad21bb3a3689054
|
||||
timeCreated: 1770908525
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50745373fe25451191a647170efe16d9
|
||||
timeCreated: 1773067033
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.Level
|
||||
{
|
||||
[Serializable]
|
||||
public struct PlatformerFirstLevelData
|
||||
{
|
||||
[SerializeField] public List<Transform> enemySpawnPoints;
|
||||
[SerializeField] public List<Transform> playerCheckPoints;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 23a7f57640a141dc866ceb89058c2f71
|
||||
timeCreated: 1773067046
|
||||
@@ -0,0 +1,16 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer
|
||||
{
|
||||
public class PlatformerSceneData : MonoBehaviour
|
||||
{
|
||||
public Transform Player;
|
||||
public LevelData levelData;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct LevelData
|
||||
{
|
||||
// public List<Transform> enemyPoints;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdfd83cbde8f4fbd97802ac19f2f32e5
|
||||
timeCreated: 1771423037
|
||||
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using Code.Example.Platformer.Entity;
|
||||
using Code.Example.Platformer.Level;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Reflex.Core;
|
||||
using Reflex.Enums;
|
||||
using UnityEngine;
|
||||
using Resolution = Reflex.Enums.Resolution;
|
||||
|
||||
namespace Code.Example.Platformer
|
||||
{
|
||||
public class PlatformerEnemySceneInstaller :
|
||||
MonoBehaviour,
|
||||
IInstaller,
|
||||
IPlatformerEnemyFactoryInitializedHandle,
|
||||
IPlatformerPlayerFactoryInitializedHandle,
|
||||
IDisposable
|
||||
{
|
||||
// [SerializeField] private PlatformerCanvas gameplayPlatformerCanvas;
|
||||
[SerializeField] private PlatformerFirstLevelData firstLevelData;
|
||||
|
||||
private Loading _sceneInit;
|
||||
|
||||
private void LoadingComplete()
|
||||
{
|
||||
_container.Resolve<EventBus>()
|
||||
.RaiseEvent<IOnPlatformerSceneLoadedHandler>(x => x.OnPlatformerSceneInitialized(_container));
|
||||
}
|
||||
|
||||
public void InstallBindings(ContainerBuilder containerBuilder)
|
||||
{
|
||||
// Enemies
|
||||
// Player
|
||||
// Container
|
||||
_sceneInit = new(3, LoadingComplete);
|
||||
|
||||
// containerBuilder.RegisterValue(gameplayPlatformerCanvas);
|
||||
containerBuilder.Parent.Resolve<EventBus>().Subscribe(this);
|
||||
|
||||
containerBuilder.RegisterValue(firstLevelData);
|
||||
containerBuilder.RegisterType(typeof(PlatformerEnemyFactory), new []{typeof(IPlatformerEnemyFactory)}, Lifetime.Scoped, Resolution.Eager);
|
||||
containerBuilder.RegisterType(typeof(PlatformerPlayerFactory), new []{typeof(IPlatformerPlayerFactory)}, Lifetime.Scoped, Resolution.Eager);
|
||||
containerBuilder.OnContainerBuilt += OnContainerBuild;
|
||||
}
|
||||
private Container _container;
|
||||
private void OnContainerBuild(Container container)
|
||||
{
|
||||
// gameplayPlatformerCanvas.GameplayPlatformerCanvas.worldCamera =
|
||||
// container.Resolve<CameraStateMachineContext>().cameraLoadedData.Camera;
|
||||
|
||||
_container = container;
|
||||
_sceneInit.DoProgress();
|
||||
}
|
||||
|
||||
public void PlatformerEnemyFactoryInitialized()
|
||||
{
|
||||
_sceneInit.DoProgress();
|
||||
}
|
||||
|
||||
public void PlatformerPlayerFactoryInitialized()
|
||||
{
|
||||
_sceneInit.DoProgress();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_container.Resolve<EventBus>().Unsubscribe(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0aa23aea61d74467889be39a550c9922
|
||||
timeCreated: 1770736749
|
||||
@@ -0,0 +1,125 @@
|
||||
using Code.Example.Platformer.Entity;
|
||||
using Code.Example.Platformer.Level;
|
||||
using Code.Infrastructure.App;
|
||||
using Code.Infrastructure.Audio;
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.Generators;
|
||||
using Code.Infrastructure.Input;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Code.Infrastructure.UI;
|
||||
using Reflex.Core;
|
||||
using Unity.Cinemachine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Example.Platformer
|
||||
{
|
||||
[State(typeof(AppStates),typeof(AppStateMachineContext))]
|
||||
[StateRaisingEvent]
|
||||
public partial class PlatformerState :
|
||||
IOnPlatformerSceneLoadedHandler,
|
||||
ICinematicMachineHandle,
|
||||
IPlatformerEnemyLoadedHandle,
|
||||
IPlatformerPlayerLoadedHandle,
|
||||
IPlatformerPlayerSpawnedHandle
|
||||
{
|
||||
public PlatformerState(AppStateMachineContext context, EventBus eventBus) : base(context, eventBus)
|
||||
{
|
||||
}
|
||||
|
||||
public override AppStates myState => AppStates.Platformer;
|
||||
protected override void OnEnterState()
|
||||
{
|
||||
EventBus.Subscribe(this);
|
||||
|
||||
// Scene
|
||||
// Camera
|
||||
// Enemy snail
|
||||
// Enemy bee
|
||||
// Enemy boar
|
||||
// Player
|
||||
_loading = new(6, LoadingCompleted);
|
||||
|
||||
Context.UIService.OpenPanel(UIPanelType.Loading);
|
||||
Context.SceneLoader.LoadSceneAsync(SceneId.Platformer, LoadSceneMode.Single).Forget();
|
||||
Context.InputService.EnableMap(ActionMappings.Platformer);
|
||||
Context.CameraFactory.LoadCinemachineCamera(CameraMode.Platformer).Forget();
|
||||
}
|
||||
private Loading _loading;
|
||||
|
||||
private void LoadingCompleted()
|
||||
{
|
||||
Context.AudioService.CancelMusic(AudioNames.UISounds,0);
|
||||
Context.UIService.ClosePanel(UIPanelType.Loading);
|
||||
|
||||
_enemyFactory.SpawnEnemy(PlatformerEntityType.Snail, _firstLevelData.enemySpawnPoints[0].position);
|
||||
|
||||
_playerFactory.SpawnPlayer(_firstLevelData.playerCheckPoints[0].position);
|
||||
}
|
||||
|
||||
|
||||
protected override void OnExitState()
|
||||
{
|
||||
_enemyFactory.ReleaseEnemy(PlatformerEntityType.Bee);
|
||||
_enemyFactory.ReleaseEnemy(PlatformerEntityType.Snail);
|
||||
_enemyFactory.ReleaseEnemy(PlatformerEntityType.Boar);
|
||||
|
||||
_playerFactory.ReleasePlayer();
|
||||
|
||||
Context.CameraFactory.ReleaseCinemachineCamera(CameraMode.Platformer);
|
||||
EventBus.Unsubscribe(this);
|
||||
Context.InputService.DisableMap(ActionMappings.Platformer);
|
||||
}
|
||||
|
||||
public void OnPlatformerSceneLoaded()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private IPlatformerEnemyFactory _enemyFactory;
|
||||
private IPlatformerPlayerFactory _playerFactory;
|
||||
private PlatformerFirstLevelData _firstLevelData;
|
||||
|
||||
private Container _fixdamncontainer;
|
||||
|
||||
public void OnPlatformerSceneInitialized(Container container)
|
||||
{
|
||||
_fixdamncontainer = container;
|
||||
_firstLevelData = container.Resolve<PlatformerFirstLevelData>();
|
||||
_enemyFactory = container.Resolve<IPlatformerEnemyFactory>();
|
||||
|
||||
_enemyFactory.WarmEnemy(PlatformerEntityType.Bee);
|
||||
_enemyFactory.WarmEnemy(PlatformerEntityType.Boar);
|
||||
_enemyFactory.WarmEnemy(PlatformerEntityType.Snail);
|
||||
|
||||
_playerFactory = container.Resolve<IPlatformerPlayerFactory>();
|
||||
|
||||
_playerFactory.LoadPlayer();
|
||||
|
||||
_loading.DoProgress();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void CinemachineLoaded(CinemachineCamera cinemachineCamera)
|
||||
{
|
||||
_loading.DoProgress();
|
||||
}
|
||||
|
||||
public void PlatformerEnemyLoaded(PlatformerEntityType type, Entity.Entity entity)
|
||||
{
|
||||
if(entity) _loading.DoProgress();
|
||||
}
|
||||
|
||||
public void PlatformerPlayerLoaded()
|
||||
{
|
||||
_loading.DoProgress();
|
||||
}
|
||||
|
||||
public void PlatformerPlayerSpawned(Entity.Entity entity)
|
||||
{
|
||||
Context.CameraFactory.GetCinematicCamera(CameraMode.Platformer).Follow = entity.transform;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 823e3299b52c48a8869581e7c27ef9a8
|
||||
timeCreated: 1770736342
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b5da862624174a36ac3ace9058b79513
|
||||
timeCreated: 1770737039
|
||||
@@ -0,0 +1,10 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Platformer.UI
|
||||
{
|
||||
public class PlatformerCanvas : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Canvas gameplayPlatformerCanvas;
|
||||
public Canvas GameplayPlatformerCanvas => gameplayPlatformerCanvas;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 964ac33334f64f8d917b153e9890e155
|
||||
timeCreated: 1770737062
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28672941a49242ad95c4a99705410c30
|
||||
timeCreated: 1769522077
|
||||
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race
|
||||
{
|
||||
public class PlayerPrefsRacePoopshitter
|
||||
{
|
||||
private List<RaceData> _races = new();
|
||||
|
||||
public PlayerPrefsRacePoopshitter()
|
||||
{
|
||||
GetRaces();
|
||||
}
|
||||
public List<RaceData> GetRaces()
|
||||
{
|
||||
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
|
||||
|
||||
using (StreamReader reader = new(path))
|
||||
{
|
||||
var json = reader.ReadToEnd();
|
||||
|
||||
_races = JsonConvert.DeserializeObject<List<RaceData>>(json);
|
||||
}
|
||||
|
||||
// for (int i = 0; i < _raceCount; i++)
|
||||
// races.Add(new(
|
||||
// PlayerPrefs.GetFloat($"Race{i}"),
|
||||
// PlayerPrefs.GetInt($"Place{i}")));
|
||||
|
||||
return _races;
|
||||
}
|
||||
|
||||
public void AddRace(RaceData race)
|
||||
{
|
||||
// PlayerPrefs.SetFloat($"Race{_raceCount}", race.raceTimeSeconds);
|
||||
// PlayerPrefs.SetInt($"Place{_raceCount}", race.place);
|
||||
// PlayerPrefs.SetInt("RaceCount", ++_raceCount);
|
||||
|
||||
_races.Add(race);
|
||||
|
||||
var json = JsonConvert.SerializeObject(_races, Formatting.Indented);
|
||||
|
||||
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
|
||||
|
||||
using (StreamWriter writer = new(path))
|
||||
{
|
||||
writer.Write(json);
|
||||
}
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public struct RaceData
|
||||
{
|
||||
public float raceTimeSeconds;
|
||||
public int place;
|
||||
public RaceData(float raceTimeSeconds, int place)
|
||||
{
|
||||
this.raceTimeSeconds = raceTimeSeconds;
|
||||
this.place = place;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e984eddc1697449487c9a790345dfb0b
|
||||
timeCreated: 1770653240
|
||||
@@ -0,0 +1,108 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Code.Example.Race.Racer;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using UnityEngine;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
private float _timeStart;
|
||||
public float RaceTime => Time.time - _timeStart;
|
||||
|
||||
public void StartRacers()
|
||||
{
|
||||
_timeStart = Time.time;
|
||||
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<IRaceGameHandle>(x => x.RaceGameReady());
|
||||
|
||||
public List<Racer.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.Racer>());
|
||||
PlacedRacers[^1].SetData(_racerPrefabs[_randomizedTypes[i]].Data);
|
||||
PlacedRacers[^1].Id = i;
|
||||
_scores.SubscribeRacer(PlacedRacers[^1]);
|
||||
}
|
||||
|
||||
foreach (var racer in PlacedRacers)
|
||||
{
|
||||
racer.Initialize(_raceTrackData.trackData.Checkpoints.Select(x=> x.transform).ToList());
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<RacerType, Racer.Racer> _racerPrefabs = new();
|
||||
private Loading _raceGameLoading;
|
||||
|
||||
public void RacerLoaded(RacerType type, Racer.Racer racer)
|
||||
{
|
||||
if (racer)
|
||||
_racerPrefabs.Add(type, racer);
|
||||
|
||||
_raceGameLoading.DoProgress();
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var racer in PlacedRacers) _scores.UnsubscribeRacer(racer);
|
||||
|
||||
_eventBus.Unsubscribe(this);
|
||||
_racerPrefabs.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRaceGameHandle : IGlobalSubscriber
|
||||
{
|
||||
void RaceGameReady();
|
||||
void RaceGameEnded(RaceScores scores);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ffa5c181be7447cb1c41392018b193f
|
||||
timeCreated: 1769692114
|
||||
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Code.Example.Race.Racer.Player;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Reflex.Attributes;
|
||||
|
||||
namespace Code.Example.Race
|
||||
{
|
||||
public class RaceScores : IRacerPassedCheckpointHandler, IDisposable, IPlayerPassedCheckpointHandler
|
||||
{
|
||||
private Dictionary<Racer.Racer, ScoreData> _scores = new();
|
||||
private EventBus _eventBus;
|
||||
|
||||
public RaceScores(EventBus eventBus)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_eventBus.Subscribe(this);
|
||||
}
|
||||
|
||||
public void SubscribeRacer(Racer.Racer racer)
|
||||
{
|
||||
_scores.Add(racer, new ScoreData());
|
||||
}
|
||||
|
||||
public void ChangeScore(Racer.Racer racer, int additionalScore)
|
||||
{
|
||||
_scores[racer].checkpointsPassed += additionalScore;
|
||||
_eventBus.RaiseEvent<IScoreChangedHandle>(x=> x.ScoreChanged(racer,_scores[racer], GetScores()));
|
||||
}
|
||||
|
||||
public void LapPassed(Racer.Racer racer)
|
||||
{
|
||||
_scores[racer].lapsPassed++;
|
||||
_eventBus.RaiseEvent<IScoreChangedHandle>(x=> x.ScoreChanged(racer,_scores[racer], GetScores()));
|
||||
if (_scores[racer].lapsPassed >= _raceTrackData.trackData.LapCount)
|
||||
_eventBus.RaiseEvent<IRaceGameHandle>(x=> x.RaceGameEnded(this));
|
||||
}
|
||||
|
||||
public void UnsubscribeRacer(Racer.Racer racer)
|
||||
{
|
||||
_scores.Remove(racer);
|
||||
}
|
||||
|
||||
public List<KeyValuePair<Racer.Racer, ScoreData>> GetScores()
|
||||
{
|
||||
return _scores.OrderByDescending(x => x.Value.checkpointsPassed).ToList();
|
||||
}
|
||||
|
||||
public void OnRacerPassedCheckpoint(Racer.Racer racer) => ChangeScore(racer,1);
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_eventBus.Unsubscribe(this);
|
||||
}
|
||||
|
||||
[Inject] private RaceTrackData _raceTrackData;
|
||||
|
||||
public void OnPlayerPassedCheckpoint(Racer.Racer racer)
|
||||
{
|
||||
var player = (PlayerRacer)racer;
|
||||
_raceTrackData.trackData.Checkpoints[player.CurrentWaypointIndex].Show();
|
||||
}
|
||||
|
||||
public void OnPlayerLapPassed(Racer.Racer racer)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class ScoreData
|
||||
{
|
||||
public int checkpointsPassed;
|
||||
public int lapsPassed;
|
||||
}
|
||||
public interface IScoreChangedHandle : IGlobalSubscriber
|
||||
{
|
||||
void ScoreChanged(Racer.Racer racer, ScoreData score, List<KeyValuePair<Racer.Racer, ScoreData>> scores);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b45fb028abcf43129f5c8100e7215f1f
|
||||
timeCreated: 1770051193
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db04851257b24d4698e8101ef2d54b2d
|
||||
timeCreated: 1769522144
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 391fdca5d5c94a86bcbd0f7cda609ee7
|
||||
timeCreated: 1769522152
|
||||
@@ -0,0 +1,36 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class AICarDriver : CarControllerRB
|
||||
{
|
||||
public override void SetSteering(Vector2 steeringLinear)
|
||||
{
|
||||
SteeringInput = steeringLinear;
|
||||
}
|
||||
|
||||
protected override void Brake()
|
||||
{
|
||||
if (CarRb.linearVelocity.magnitude > 10f && (SteeringInput.y > CarRb.linearVelocity.y || SteeringInput.x > CarRb.linearVelocity.x))
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
wheel.wheelCollider.brakeTorque = 100 * racer.Data.brakeAcceleration * Time.fixedDeltaTime;
|
||||
}
|
||||
|
||||
// carLights.isBackLightOn = true;
|
||||
// carLights.OperateBackLights();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var wheel in wheels)
|
||||
{
|
||||
wheel.wheelCollider.brakeTorque = 0;
|
||||
}
|
||||
|
||||
// carLights.isBackLightOn = false;
|
||||
// carLights.OperateBackLights();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c82b0db1441e417098bccb9ca1575e3e
|
||||
timeCreated: 1770639201
|
||||
@@ -0,0 +1,45 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class AIDebugRacer : Racer
|
||||
{
|
||||
[SerializeField] private NavMeshAgent navMeshAgent;
|
||||
[SerializeField] private List<Transform> waypoints;
|
||||
private int _currentWaypointIndex;
|
||||
private void Awake()
|
||||
{
|
||||
navMeshAgent.destination = waypoints[_currentWaypointIndex].position;
|
||||
_currentWaypointIndex++;
|
||||
}
|
||||
|
||||
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,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6644b39029d14164961d83a37749e6cc
|
||||
timeCreated: 1769522190
|
||||
@@ -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,110 @@
|
||||
using System.Collections.Generic;
|
||||
using Code.Example.Race.Racer.AI.ID;
|
||||
using Code.Example.Race.Track;
|
||||
using Code.Infrastructure.EventBus;
|
||||
using Reflex.Attributes;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI
|
||||
{
|
||||
public class AIRacerID : Racer
|
||||
{
|
||||
[Inject] private EventBus _eventBus;
|
||||
[SerializeField] private CarControllerRB carController;
|
||||
|
||||
public override void SetData(RacerData data)
|
||||
{
|
||||
Data = data;
|
||||
|
||||
_velocity = Vector3.zero;
|
||||
_steering = new Steering();
|
||||
}
|
||||
|
||||
public override void Initialize(List<Transform> waypoints)
|
||||
{
|
||||
Waypoints = waypoints;
|
||||
}
|
||||
|
||||
public override void NextWaypoint()
|
||||
{
|
||||
if (++CurrentWaypointIndex < Waypoints.Count) return;
|
||||
|
||||
CurrentWaypointIndex = 0;
|
||||
_eventBus.RaiseEvent<IRacerPassedCheckpointHandler>(x=> x.LapPassed(this));
|
||||
}
|
||||
|
||||
public override void StartRacer()
|
||||
{
|
||||
_running = true;
|
||||
}
|
||||
|
||||
public override void StopRacer()
|
||||
{
|
||||
_running = false;
|
||||
}
|
||||
|
||||
[SerializeField] private AgentBehaviour agent;
|
||||
|
||||
private float _orientation;
|
||||
private float _rotation;
|
||||
private Vector3 _velocity;
|
||||
private Steering _steering;
|
||||
private bool _running;
|
||||
|
||||
private float NormalizeAngle(float angle)
|
||||
{
|
||||
switch (angle)
|
||||
{
|
||||
case > 360.0f:
|
||||
{
|
||||
while (angle > 360.0f) angle -= 360.0f;
|
||||
break;
|
||||
}
|
||||
case < 0.0f:
|
||||
{
|
||||
while (angle < 0.0f) angle += 360.0f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return angle;
|
||||
}
|
||||
public virtual void Update()
|
||||
{
|
||||
if (!_running) return;
|
||||
|
||||
var steering =
|
||||
transform.InverseTransformDirection(
|
||||
agent.GetSteering(Waypoints[CurrentWaypointIndex]).linear);
|
||||
|
||||
carController.SetSteering(new Vector2(steering.x, steering.z));
|
||||
// var displacement = _velocity * Time.deltaTime;
|
||||
// _orientation += _rotation * Time.deltaTime;
|
||||
// _orientation = NormalizeAngle(_orientation);
|
||||
//
|
||||
// transform.Translate(displacement, Space.World);
|
||||
// transform.Rotate(Vector3.up, _orientation);
|
||||
}
|
||||
public virtual void LateUpdate()
|
||||
{
|
||||
if (!_running) return;
|
||||
//
|
||||
// _steering = agent.GetSteering(Waypoints[CurrentWaypointIndex]);
|
||||
//
|
||||
// _velocity += _steering.linear * Time.deltaTime;
|
||||
// _rotation += _steering.angular * Time.deltaTime;
|
||||
// if (_velocity.magnitude > Data.speed)
|
||||
// {
|
||||
// _velocity = _velocity.normalized * Data.speed;
|
||||
// }
|
||||
// if (_steering.angular == 0.0f)
|
||||
// {
|
||||
// _rotation = 0.0f;
|
||||
// }
|
||||
// if (_steering.linear.sqrMagnitude == 0.0f)
|
||||
// {
|
||||
// _velocity = Vector3.zero;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdcd01ab3c5147e4bfa3619d60fec5fc
|
||||
timeCreated: 1770394482
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f9bd0b568944e1f9b11f60f0fb79590
|
||||
timeCreated: 1770394574
|
||||
@@ -0,0 +1,53 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI.ID
|
||||
{
|
||||
public class Agent : MonoBehaviour
|
||||
{
|
||||
public float maxSpeed;
|
||||
public float maxAccel;
|
||||
public float orientation;
|
||||
public float rotation;
|
||||
public Vector3 velocity;
|
||||
protected Steering steering;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
velocity = Vector3.zero;
|
||||
steering = new Steering();
|
||||
}
|
||||
public virtual void Update ()
|
||||
{
|
||||
Vector3 displacement = velocity * Time.deltaTime;
|
||||
orientation += rotation * Time.deltaTime;
|
||||
// необходимо ограничить значение переменной orientation
|
||||
// диапазоном (0-360)
|
||||
if (orientation < 0.0f)
|
||||
orientation += 360.0f;
|
||||
else if (orientation > 360.0f)
|
||||
orientation -= 360.0f;
|
||||
transform.Translate(displacement, Space.World);
|
||||
transform.rotation = new Quaternion();
|
||||
transform.Rotate(Vector3.up, orientation);
|
||||
}
|
||||
public virtual void LateUpdate()
|
||||
{
|
||||
velocity += steering.linear * Time.deltaTime;
|
||||
rotation += steering.angular * Time.deltaTime;
|
||||
if (velocity.magnitude > maxSpeed)
|
||||
{
|
||||
velocity = velocity.normalized * maxSpeed; // Исправлено: корректное нормирование вектора
|
||||
}
|
||||
if (steering.angular == 0.0f)
|
||||
{
|
||||
rotation = 0.0f;
|
||||
}
|
||||
if (steering.linear.sqrMagnitude == 0.0f)
|
||||
{
|
||||
velocity = Vector3.zero;
|
||||
}
|
||||
// Удалена строка: steering = new Steering();
|
||||
// (создание нового объекта каждый кадр приведет к утечке памяти и сбросу данных)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d51ddde70f34264954a75923b43dcee
|
||||
timeCreated: 1770394764
|
||||
@@ -0,0 +1,11 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI.ID
|
||||
{
|
||||
public abstract class AgentBehaviour : MonoBehaviour
|
||||
{
|
||||
[SerializeField] protected AIRacerID agent;
|
||||
|
||||
public abstract Steering GetSteering(Transform target);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5af0fc1b61bd44d9a53fd01f93fe6029
|
||||
timeCreated: 1770394682
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70ca406222fb4e8e848ccf43db320cc9
|
||||
timeCreated: 1770395746
|
||||
@@ -0,0 +1,17 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI.ID.Behaviours
|
||||
{
|
||||
public class Flee : AgentBehaviour
|
||||
{
|
||||
public override Steering GetSteering(Transform target)
|
||||
{
|
||||
Steering steering = new Steering();
|
||||
|
||||
steering.linear = transform.position - target.position;
|
||||
steering.linear.Normalize();
|
||||
// steering.linear *= agent.Data.maxAcceleration;
|
||||
return steering;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 437d2ae2cd65457a82abc34df278228d
|
||||
timeCreated: 1770395798
|
||||
@@ -0,0 +1,42 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI.ID.Behaviours
|
||||
{
|
||||
|
||||
public class Pursue : Seek
|
||||
{
|
||||
public float maxPrediction;
|
||||
private GameObject _targetAux;
|
||||
private GameObject _target;
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
_targetAux = _target;
|
||||
_target = new GameObject();
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
Destroy(_targetAux);
|
||||
}
|
||||
|
||||
public override Steering GetSteering(Transform targetTransform)
|
||||
{
|
||||
var direction = _targetAux.transform.position - transform.position;
|
||||
var distance = direction.magnitude;
|
||||
var speed = agent.CarRigidbody.linearVelocity.magnitude;
|
||||
float prediction;
|
||||
|
||||
if (speed <= distance / maxPrediction)
|
||||
prediction = maxPrediction;
|
||||
else
|
||||
prediction = distance / speed;
|
||||
|
||||
_target.transform.position = _targetAux.transform.position;
|
||||
// _target.transform.position += targetAgent.velocity * prediction;
|
||||
|
||||
return base.GetSteering(_target.transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3a071d2cab443528dd16bdc044bab65
|
||||
timeCreated: 1770998212
|
||||
@@ -0,0 +1,18 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Example.Race.Racer.AI.ID.Behaviours
|
||||
{
|
||||
public class Seek : AgentBehaviour
|
||||
{
|
||||
public override Steering GetSteering(Transform target)
|
||||
{
|
||||
Steering steering = new Steering();
|
||||
|
||||
steering.linear = target.position - transform.position;
|
||||
UnityEngine.Debug.DrawRay(transform.position, steering.linear, Color.yellow, 5f);
|
||||
// steering.linear *= agent.Data.maxAcceleration;
|
||||
steering.linear.Normalize();
|
||||
return steering;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loaded 100 of 1394 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user