Author SHA1 Message Date
ThomasCharester d3fbd4c5c3 Артём хуесос 2025-11-15 19:11:30 +03:00
ThomasCharester 5b09068b0c Merge branch 'SoundManager' into PlayerAnimator 2025-11-15 18:31:13 +03:00
ThomasCharester ddb76a5b93 Игрок теперь играется 2025-11-15 18:30:31 +03:00
ThomasCharester 0f708ff4cb Merge branch 'movement-dev' into PlayerAnimator 2025-11-15 17:14:16 +03:00
ThomasCharester 721d5ebf9c Небольшие изменения, реально незначительные 2025-11-15 14:02:16 +03:00
MrTorex 3bb99aaf1e Фикс приколов с камерой 2025-11-15 13:59:32 +03:00
MrTorex a2acea39dc temp 2025-11-15 13:33:44 +03:00
ThomasCharester 5c1fd1510d Merge branch 'SoundManager' into Dev 2025-11-15 01:15:01 +03:00
ThomasCharester e128ee59f9 Чистка мусора 2025-11-15 01:14:11 +03:00
ThomasCharester 5c81bde5db Приемлемое воспроизведение музыки 2025-11-15 01:12:33 +03:00
MrTorex d1aad440f5 Осталось пофиксить толка бак с камерай 2025-11-14 15:02:33 +03:00
MrTorex 0e1c274677 Продолжение багфикса 2025-11-14 13:12:49 +03:00
MrTorex dbabd847c1 bugfix no 1 2025-11-12 20:04:06 +03:00
MrTorex 874280741c Допил наклонов полноценный 2025-11-11 19:48:37 +03:00
MrTorex 177464cc09 Я ЛЮБЛЮ ПУЛ 2025-11-11 15:00:49 +03:00
MrTorex f8448ba922 just for syncing changes 2025-11-10 22:16:36 +03:00
MrTorex 0e188efe59 Инишиал механика наклона при залазании на стены
Нуждается в доработке (как минимум чтобы вращалось в правильную сторону), но вроде-как выглядит прикольно
2025-10-29 15:00:25 +03:00
46 changed files with 2688 additions and 931 deletions

No files matched your search

@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: d447fc60305c17a17bf20948ab295a45 m_DefaultGroup: d447fc60305c17a17bf20948ab295a45
m_currentHash: m_currentHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7ed5aa0308ed28c84409cb70340524a8 Hash: a73bab36f6f0172906557a562d766427
m_OptimizeCatalogSize: 0 m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0 m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0 m_CatalogRequestsTimeout: 0
@@ -100,6 +100,11 @@ MonoBehaviour:
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 81844a99f5b786b41b831174f8fb6d3a
m_Address: Prefabs/Player/CharacterController
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 82c71411174bfa86ca1f676b9d389f94 - m_GUID: 82c71411174bfa86ca1f676b9d389f94
m_Address: bastard! m_Address: bastard!
m_ReadOnly: 0 m_ReadOnly: 0
@@ -1,6 +1,8 @@
using Code.App.StateMachine; using Code.App.StateMachine;
using Code.Audio; using Code.Audio;
using Code.Gameplay.Camera; using Code.Gameplay.Camera;
using Code.Gameplay.Camera.CameraStates;
using Code.Gameplay.Character.Core;
using Code.Gameplay.Player; using Code.Gameplay.Player;
using Code.Input; using Code.Input;
using Code.Scenes; using Code.Scenes;
@@ -24,6 +26,8 @@ namespace Code.App.AppStates
private PlayerHealth _playerHealth; private PlayerHealth _playerHealth;
private PlayerMoney _playerMoney; private PlayerMoney _playerMoney;
private CharacterProvider _playerCharacter;
public GameplayState(AppStateMachineContext context) : base(context) public GameplayState(AppStateMachineContext context) : base(context)
{ {
} }
@@ -39,44 +43,65 @@ namespace Code.App.AppStates
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful); Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful);
Context.InputService.EnableMap(ActionMappings.Gameplay);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveMoney); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveMoney);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX);
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug6, PlayDebugDispatcher);
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
WaitForSceneToLoad(); WaitForSceneToLoad();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
} }
private async UniTask WaitForPlayerCharacterLoad() => _playerCharacter = await Context.PlayerFactory.CreatePlayer();
private async UniTaskVoid WaitForSceneToLoad() private async UniTaskVoid WaitForSceneToLoad()
{ {
await UniTask.WhenAll( await UniTask.WhenAll(
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.MovementDev), Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.Gameplay),
Context.UIService.AsyncSwitchPanelTo(UIPanel.Gameplay), Context.UIService.AsyncSwitchPanelTo(UIPanel.Gameplay),
Context.AudioFactory.WarmGameplayMusic(), Context.AudioFactory.WarmGameplayMusic(),
Context.AudioFactory.WarmSFX() Context.AudioFactory.WarmSFX(),
WaitForPlayerCharacterLoad()
); );
Context.AudioService.PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins(); Context.AudioService.PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType.Peaceful);
Context.AudioService.PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins(); Context.AudioService.PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType.Action);
var sceneEnvironment = ((GameplaySceneEnvironment)SceneManager.GetActiveScene() var sceneEnvironment = ((GameplaySceneEnvironment)SceneManager.GetActiveScene()
.GetSceneContainer().Resolve<CurrentSceneEnvironment>()); .GetSceneContainer().Resolve<CurrentSceneEnvironment>());
_testSFXTransform = sceneEnvironment.debugSfxTarget; _testSFXTransform = sceneEnvironment.debugSfxTarget;
_playerCharacter.Teleport(sceneEnvironment.playerSpawnPoint.position, sceneEnvironment.playerSpawnPoint.rotation);
((GameplayPanel)Context.UIService.CurrentPanel).Initialize(_playerMoney, _playerHealth); ((GameplayPanel)Context.UIService.CurrentPanel).Initialize(_playerMoney, _playerHealth);
Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson); Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
((BaseCameraState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(_playerCharacter.GetFollowTransform());
Context.InputService.EnableMap(ActionMappings.Gameplay); Context.InputService.EnableMap(ActionMappings.Gameplay);
Context.UIService.LoadingScreen.Hide(); Context.UIService.LoadingScreen.Hide();
} }
private void OnCharacterSpawn(CharacterProvider characterProvider)
{
((BaseCameraState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(_playerCharacter.GetFollowTransform());
}
private void PlayDebugSFX(InputAction.CallbackContext context) private void PlayDebugSFX(InputAction.CallbackContext context)
{ {
Context.AudioService.PlaySFX(SFXSounds.Crowbar, _testSFXTransform.position); Context.AudioService.PlaySFX(SFXSounds.Crowbar, _testSFXTransform.position);
} }
private void PlayDebugDispatcher(InputAction.CallbackContext context)
{
Context.AudioService.PlayDispatcher(DispatcherSounds.AhFreeman);
}
private void GiveHealth(InputAction.CallbackContext context) private void GiveHealth(InputAction.CallbackContext context)
{ {
_playerHealth.GetDamage(-1); _playerHealth.GetDamage(-1);
@@ -114,14 +139,19 @@ namespace Code.App.AppStates
_playerHealth = null; _playerHealth = null;
_playerMoney = null; _playerMoney = null;
Context.PlayerFactory.ReleasePlayer(_playerCharacter);
_playerCharacter = null;
Context.InputService.DisableMap(ActionMappings.Gameplay); Context.InputService.DisableMap(ActionMappings.Gameplay);
Context.AudioService.GladlyAskToStopGameplayMusic(Context.AudioFactory.ReleaseGameplayMusic); Context.AudioService.GladlyAskToStopMusic(MusicType.Action, callback: Context.AudioFactory.ReleaseActionMusic);
Context.AudioService.GladlyAskToStopMusic(MusicType.Peaceful, callback: Context.AudioFactory.ReleasePeacefulMusic);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth); Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveHealth); Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveHealth);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth); Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney); Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX); Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX);
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug6, PlayDebugDispatcher);
base.ExitState(); base.ExitState();
} }
@@ -26,7 +26,9 @@ namespace Code.App.AppStates
Context.CameraStateMachine.SwitchState(CameraMode.Static); Context.CameraStateMachine.SwitchState(CameraMode.Static);
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
WaitForSceneToLoad(); WaitForSceneToLoad();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
} }
private async UniTaskVoid WaitForSceneToLoad() private async UniTaskVoid WaitForSceneToLoad()
@@ -37,8 +39,8 @@ namespace Code.App.AppStates
Context.AudioFactory.WarmMenuMusic() Context.AudioFactory.WarmMenuMusic()
); );
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful); Context.AudioService.TransitToSnapshot(AudioSnapshotState.Menu);
Context.AudioService.PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins(); Context.AudioService.PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType.Menu);
((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame); ((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame);
((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame); ((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame);
@@ -74,7 +76,7 @@ namespace Code.App.AppStates
public override void ExitState() public override void ExitState()
{ {
Context.InputService.DisableMap(ActionMappings.MainMenu); Context.InputService.DisableMap(ActionMappings.MainMenu);
Context.AudioService.GladlyAskToStopMenuMusic(Context.AudioFactory.ReleaseMenuMusic); Context.AudioService.GladlyAskToStopMusic(MusicType.Menu, callback: Context.AudioFactory.ReleaseMenuMusic);
base.ExitState(); base.ExitState();
} }
@@ -1,4 +1,3 @@
using System.Threading.Tasks;
using Code.App.StateMachine; using Code.App.StateMachine;
using Code.Audio; using Code.Audio;
using Code.Configs; using Code.Configs;
@@ -14,7 +13,6 @@ using Cysharp.Threading.Tasks;
using Reflex.Core; using Reflex.Core;
using Reflex.Injectors; using Reflex.Injectors;
using UnityEngine; using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
namespace Code.App namespace Code.App
@@ -68,12 +66,17 @@ namespace Code.App
staticDataService.Load(); staticDataService.Load();
containerBuilder.AddSingleton(staticDataService, typeof(IStaticDataService)); containerBuilder.AddSingleton(staticDataService, typeof(IStaticDataService));
containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset)); containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset));
containerBuilder.AddSingleton(staticDataService.InputConfig, typeof(InputConfig)); containerBuilder.AddSingleton(staticDataService.InputConfig, typeof(InputConfig));
containerBuilder.AddSingleton(staticDataService.CameraConfig, typeof(CameraConfig)); containerBuilder.AddSingleton(staticDataService.CameraConfig, typeof(CameraConfig));
containerBuilder.AddSingleton(staticDataService.PlayerConfig, typeof(PlayerConfig)); containerBuilder.AddSingleton(staticDataService.PlayerConfig, typeof(PlayerConfig));
containerBuilder.AddSingleton(staticDataService.CharacterConfig, typeof(CharacterConfig)); containerBuilder.AddSingleton(staticDataService.CharacterConfig, typeof(CharacterConfig));
containerBuilder.AddSingleton(staticDataService.UIConfig, typeof(UIConfig)); containerBuilder.AddSingleton(staticDataService.UIConfig, typeof(UIConfig));
containerBuilder.AddSingleton(staticDataService.AudioMixerConfig, typeof(AudioMixerConfig)); containerBuilder.AddSingleton(staticDataService.AudioMixerConfig, typeof(AudioMixerConfig));
containerBuilder.AddSingleton(staticDataService.SoundtrackListConfig, typeof(SoundtrackListConfig)); containerBuilder.AddSingleton(staticDataService.SoundtrackListConfig, typeof(SoundtrackListConfig));
containerBuilder.AddSingleton(staticDataService.SFXListConfig, typeof(SFXListConfig)); containerBuilder.AddSingleton(staticDataService.SFXListConfig, typeof(SFXListConfig));
@@ -81,7 +84,6 @@ namespace Code.App
containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig)); containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig));
} }
private bool _onAudioLoaded;
private AppStateMachine _appStateMachine; private AppStateMachine _appStateMachine;
private void Bootstrap(Container container) private void Bootstrap(Container container)
@@ -94,12 +96,13 @@ namespace Code.App
AttributeInjector.Inject(cameraStateMachine.StateMachineContext, container); AttributeInjector.Inject(cameraStateMachine.StateMachineContext, container);
cameraStateMachine.Initialize(); cameraStateMachine.Initialize();
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
BootstrapFinish(container); BootstrapFinish(container);
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
} }
private async UniTaskVoid BootstrapFinish(Container container) private async UniTaskVoid BootstrapFinish(Container container)
{ {
// container.Resolve<IAudioFactory>();
var loadingScreen = GameObject.FindWithTag(Tags.LoadingScreen); var loadingScreen = GameObject.FindWithTag(Tags.LoadingScreen);
DontDestroyOnLoad(loadingScreen); DontDestroyOnLoad(loadingScreen);
@@ -30,9 +30,7 @@ namespace Code.Audio
private AsyncOperationHandle<IList<AudioClip>> _enemiesHandle; private AsyncOperationHandle<IList<AudioClip>> _enemiesHandle;
private AsyncOperationHandle<IList<AudioClip>> _dispatcherHandle; private AsyncOperationHandle<IList<AudioClip>> _dispatcherHandle;
public List<AudioClip> PeacefulMusic { get; private set; } = new(); public Dictionary<MusicType, List<AudioClip>> MusicDictionary { get; private set; } = new();
public List<AudioClip> ActionMusic { get; private set; } = new();
public List<AudioClip> MenuMusic { get; private set; } = new();
public List<AudioClip> SFXAudios { get; private set; } = new(); public List<AudioClip> SFXAudios { get; private set; } = new();
public List<AudioClip> EnemiesAudios { get; private set; } = new(); public List<AudioClip> EnemiesAudios { get; private set; } = new();
public List<AudioClip> DispatcherAudios { get; private set; } = new(); public List<AudioClip> DispatcherAudios { get; private set; } = new();
@@ -41,7 +39,7 @@ namespace Code.Audio
SoundtrackListConfig soundtrackListConfig, SoundtrackListConfig soundtrackListConfig,
SFXListConfig sfxListConfig, SFXListConfig sfxListConfig,
EnemiesSoundListConfig enemiesSoundListConfig, EnemiesSoundListConfig enemiesSoundListConfig,
DispatcherSoundListConfig dispatcherSoundListConfig//, CharacterSoundListConfig characterSoundListConfig DispatcherSoundListConfig dispatcherSoundListConfig
) )
{ {
AudioMixer = audioMixerConfig.audioMixerAsset; AudioMixer = audioMixerConfig.audioMixerAsset;
@@ -53,15 +51,11 @@ namespace Code.Audio
_SFX = sfxListConfig.SFX; _SFX = sfxListConfig.SFX;
_enemies = enemiesSoundListConfig.enemies; _enemies = enemiesSoundListConfig.enemies;
_dispatcher = dispatcherSoundListConfig.dispatcher; _dispatcher = dispatcherSoundListConfig.dispatcher;
// _character = characterSoundListConfig.character;
}
// public async UniTask<AudioMixer> CreateMixer() MusicDictionary.Add(MusicType.Menu, new ());
// { MusicDictionary.Add(MusicType.Peaceful, new ());
// AudioMixer audioMixer = (await Addressables.InstantiateAsync(_audioMixerPrefab).ToUniTask()).GetComponent<AudioMixer>(); MusicDictionary.Add(MusicType.Action, new ());
// }
// return audioMixer;
// }
public async UniTask LoadAudioSourcePrefab(Action<GameObject> callback) => public async UniTask LoadAudioSourcePrefab(Action<GameObject> callback) =>
callback?.Invoke(await Addressables.LoadAssetAsync<GameObject>(_audioSourcePrefab)); callback?.Invoke(await Addressables.LoadAssetAsync<GameObject>(_audioSourcePrefab));
@@ -72,18 +66,17 @@ namespace Code.Audio
_peacefulMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_peacefulSoundtrack, OnPeacefulTrackLoaded, Addressables.MergeMode.None); _peacefulMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_peacefulSoundtrack, OnPeacefulTrackLoaded, Addressables.MergeMode.None);
await UniTask.WhenAll(_actionMusicHandle.ToUniTask(), _peacefulMusicHandle.ToUniTask()); await UniTask.WhenAll(_actionMusicHandle.ToUniTask(), _peacefulMusicHandle.ToUniTask());
} }
public void ReleaseActionMusic()
public void ReleaseGameplayMusic()
{ {
ActionMusic.Clear(); MusicDictionary[MusicType.Action].Clear();
_actionMusicHandle.Release(); _actionMusicHandle.Release();
}
PeacefulMusic.Clear(); public void ReleasePeacefulMusic()
{
MusicDictionary[MusicType.Peaceful].Clear();
_peacefulMusicHandle.Release(); _peacefulMusicHandle.Release();
} }
public async UniTask WarmMenuMusic( ) public async UniTask WarmMenuMusic( )
{ {
_menuMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_menuSoundtrack, OnMenuTrackLoaded, Addressables.MergeMode.None); _menuMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_menuSoundtrack, OnMenuTrackLoaded, Addressables.MergeMode.None);
@@ -91,10 +84,9 @@ namespace Code.Audio
await _menuMusicHandle.ToUniTask(); await _menuMusicHandle.ToUniTask();
} }
public void ReleaseMenuMusic() public void ReleaseMenuMusic()
{ {
MenuMusic.Clear(); MusicDictionary[MusicType.Menu].Clear();
// foreach (var assetReference in _menuSoundtrack) assetReference.ReleaseAsset(); // foreach (var assetReference in _menuSoundtrack) assetReference.ReleaseAsset();
_menuMusicHandle.Release(); _menuMusicHandle.Release();
} }
@@ -105,7 +97,6 @@ namespace Code.Audio
await _SFXHandle.ToUniTask(); await _SFXHandle.ToUniTask();
} }
public void ReleaseSFX() public void ReleaseSFX()
{ {
SFXAudios.Clear(); SFXAudios.Clear();
@@ -139,17 +130,17 @@ namespace Code.Audio
_dispatcherHandle.Release(); _dispatcherHandle.Release();
} }
private void OnMenuTrackLoaded(AudioClip audioClip)
{
MusicDictionary[MusicType.Menu].Add(audioClip);
}
private void OnActionTrackLoaded(AudioClip audioClip) private void OnActionTrackLoaded(AudioClip audioClip)
{ {
ActionMusic.Add(audioClip); MusicDictionary[MusicType.Action].Add(audioClip);
} }
private void OnPeacefulTrackLoaded(AudioClip audioClip) private void OnPeacefulTrackLoaded(AudioClip audioClip)
{ {
PeacefulMusic.Add(audioClip); MusicDictionary[MusicType.Peaceful].Add(audioClip);
}
private void OnMenuTrackLoaded(AudioClip audioClip)
{
MenuMusic.Add(audioClip);
} }
private void OnSFXLoaded(AudioClip audioClip) private void OnSFXLoaded(AudioClip audioClip)
{ {
+63 -130
View File
@@ -22,9 +22,9 @@ namespace Code.Audio
private AudioSource _peacefulMusicSource; private AudioSource _peacefulMusicSource;
private AudioMixerGroup _masterGroup, private AudioMixerGroup _masterGroup,
_musicGroup, // _musicGroup,
_actionMusicGroup, // _actionMusicGroup,
_peacefulMusicGroup, // _peacefulMusicGroup,
_SFXGroup, _SFXGroup,
_creaturesGroup, _creaturesGroup,
_dispatcherGroup, _dispatcherGroup,
@@ -46,110 +46,92 @@ namespace Code.Audio
_mixer = _audioFactory.AudioMixer; _mixer = _audioFactory.AudioMixer;
_masterGroup = _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0]; _masterGroup = _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0];
_actionMusicGroup = _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0]; // _actionMusicGroup = _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0];
_peacefulMusicGroup = _mixer.FindMatchingGroups(AudioGroups.PeacefulMusicGroup)[0]; // _peacefulMusicGroup = _mixer.FindMatchingGroups(AudioGroups.PeacefulMusoup)[0];
// _musicGroup = _mixer.FindMatchingGroups(AudioGroups.MusicGroup)[0];
_musicAudioGroups.Add(MusicType.Menu, _mixer.FindMatchingGroups(AudioGroups.MenuMusicGroup)[0]);
_musicAudioGroups.Add(MusicType.Action, _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0]);
_musicAudioGroups.Add(MusicType.Peaceful, _mixer.FindMatchingGroups(AudioGroups.PeacefulMusicGroup)[0]);
_cancellationTokenSources.Add(MusicType.Menu, new());
_cancellationTokenSources.Add(MusicType.Action, new());
_cancellationTokenSources.Add(MusicType.Peaceful, new());
_musicAudioSources.Add(MusicType.Menu, null);
_musicAudioSources.Add(MusicType.Action, null);
_musicAudioSources.Add(MusicType.Peaceful, null);
_SFXGroup = _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]; _SFXGroup = _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0];
_musicGroup = _mixer.FindMatchingGroups(AudioGroups.MusicGroup)[0];
_creaturesGroup = _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0]; _creaturesGroup = _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0];
_dispatcherGroup = _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]; _dispatcherGroup = _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0];
_courierGroup = _mixer.FindMatchingGroups(AudioGroups.CourierMusicGroup)[0]; _courierGroup = _mixer.FindMatchingGroups(AudioGroups.CourierMusicGroup)[0];
_enemiesGroup = _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0]; _enemiesGroup = _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0];
_snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot);
_snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot); _snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot);
_snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot); _snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot);
_snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot); _snapshots[AudioSnapshotState.Menu] = _mixer.FindSnapshot(AudioGroups.MenuSnapshot);
await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize); await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize);
InitializeMusicSources();
} }
private void InitializeMusicSources() #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
{ private Dictionary<MusicType, CancellationTokenSource> _cancellationTokenSources = new();
_actionMusicSource = _audioSourcePool.GetSource(); private Dictionary<MusicType, AudioSource> _musicAudioSources = new();
_actionMusicSource.outputAudioMixerGroup = _actionMusicGroup; private Dictionary<MusicType, AudioMixerGroup> _musicAudioGroups = new();
_actionMusicSource.spatialBlend = 0f;
_peacefulMusicSource = _audioSourcePool.GetSource(); public async UniTaskVoid PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType musicType)
_peacefulMusicSource.outputAudioMixerGroup = _peacefulMusicGroup; {
_peacefulMusicSource.spatialBlend = 0f; if(!_musicAudioSources[musicType])
{
_musicAudioSources[musicType] = _audioSourcePool.GetSource();
_musicAudioSources[musicType].spatialBlend = 0f;
_musicAudioSources[musicType].outputAudioMixerGroup = _musicAudioGroups[musicType];
} }
public void PlayRandomGameplayMusic() _musicAudioSources[musicType].resource =
_audioFactory.MusicDictionary[musicType][
Random.Range(0, _audioFactory.MusicDictionary[musicType].Count)];
_musicAudioSources[musicType].Play();
// await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
// _ => !_musicAudioSources[musicType].isPlaying,
// cancellationToken: _cancellationTokenSources[musicType].Token);
await UniTask.NextFrame();
// Debug.Log($"Playing {musicType}");
var (isCanceled, _) = await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
_ => !_musicAudioSources[musicType].isPlaying,
cancellationToken: _cancellationTokenSources[musicType].Token).SuppressCancellationThrow();
// Debug.Log($"Finished {musicType}");
if (isCanceled)
{ {
_peacefulMusicSource.resource = _audioFactory.PeacefulMusic[Random.Range(0, _audioFactory.PeacefulMusic.Count)]; // Debug.Log($"Cancelled {musicType}");
_actionMusicSource.resource = _cancellationTokenSources[musicType].Dispose();
_audioFactory.ActionMusic[Random.Range(0, _audioFactory.ActionMusic.Count)]; _cancellationTokenSources[musicType] = new();
_peacefulMusicSource.Play(); _audioSourcePool.ReleaseSource(_musicAudioSources[musicType]);
_actionMusicSource.Play(); _musicAudioSources[musicType] = null;
}
public void PlayRandomMenuMusic()
{
TransitToSnapshot(AudioSnapshotState.Peaceful);
_peacefulMusicSource.resource = _audioFactory.MenuMusic[Random.Range(0, _audioFactory.MenuMusic.Count)];
_peacefulMusicSource.Play();
}
private CancellationTokenSource _menuMusicTokenSource = new();
public async UniTaskVoid PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins()
{
TransitToSnapshot(AudioSnapshotState.Peaceful);
_peacefulMusicSource.resource = _audioFactory.MenuMusic[Random.Range(0, _audioFactory.MenuMusic.Count)];
_peacefulMusicSource.Play();
await UniTask.WaitUntilValueChanged(_peacefulMusicSource, _ => _peacefulMusicSource.isPlaying, cancellationToken: _menuMusicTokenSource.Token);
if (_menuMusicTokenSource.IsCancellationRequested)
{
_menuMusicTokenSource.Dispose();
_menuMusicTokenSource = new();
return; return;
} }
PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins(); PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(musicType);
} }
private CancellationTokenSource _peacefulMusicTokenSource = new();
public async UniTaskVoid PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins() public async UniTaskVoid GladlyAskToStopMusic(MusicType musicType, AudioSnapshotState audioSnapshotState = AudioSnapshotState.None, float time = 1f, Action callback = null)
{ {
TransitToSnapshot(AudioSnapshotState.Peaceful); TransitToSnapshot(audioSnapshotState, time);
_peacefulMusicSource.resource = _audioFactory.PeacefulMusic[Random.Range(0, _audioFactory.PeacefulMusic.Count)]; await UniTask.WaitForSeconds(time);
_peacefulMusicSource.Play(); _cancellationTokenSources[musicType].Cancel();
await UniTask.WaitUntilValueChanged(_peacefulMusicSource, _ => _peacefulMusicSource.isPlaying, cancellationToken: _peacefulMusicTokenSource.Token); callback?.Invoke();
if (_peacefulMusicTokenSource.IsCancellationRequested)
{
_peacefulMusicTokenSource.Dispose();
_peacefulMusicTokenSource = new();
return;
}
PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins();
}
private CancellationTokenSource _actionMusicTokenSource = new();
public async UniTaskVoid PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins()
{
TransitToSnapshot(AudioSnapshotState.Action);
_actionMusicSource.resource = _audioFactory.ActionMusic[Random.Range(0, _audioFactory.ActionMusic.Count)];
_actionMusicSource.Play();
await UniTask.WaitUntilValueChanged(_actionMusicSource, _ => _actionMusicSource.isPlaying, cancellationToken: _actionMusicTokenSource.Token);
if (_actionMusicTokenSource.IsCancellationRequested)
{
_actionMusicTokenSource.Dispose();
_actionMusicTokenSource = new();
return;
}
PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins();
} }
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
public void StopMusic() public void StopMusic()
{ {
@@ -165,57 +147,6 @@ namespace Code.Audio
callback?.Invoke(); callback?.Invoke();
} }
public async UniTaskVoid GladlyAskToStopMenuMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
await UniTask.WaitForSeconds(1f);
_peacefulMusicSource.Stop();
_menuMusicTokenSource.Cancel();
callback?.Invoke();
}
public async UniTaskVoid GladlyAskToStopGameplayMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
await UniTask.WaitForSeconds(1f);
_actionMusicSource.Stop();
_peacefulMusicSource.Stop();
_actionMusicTokenSource.Cancel();
_peacefulMusicTokenSource.Cancel();
callback?.Invoke();
}
public async UniTaskVoid GladlyAskToStopActionMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
await UniTask.WaitForSeconds(1f);
_actionMusicSource.Stop();
_actionMusicTokenSource.Cancel();
callback?.Invoke();
}
public async UniTaskVoid GladlyAskToStopPeacefulMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
await UniTask.WaitForSeconds(1f);
_peacefulMusicSource.Stop();
_peacefulMusicTokenSource.Cancel();
callback?.Invoke();
}
public void TransitToSnapshot(AudioSnapshotState state, float time = 1f) public void TransitToSnapshot(AudioSnapshotState state, float time = 1f)
{ {
@@ -227,10 +158,12 @@ namespace Code.Audio
{ {
_audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _SFXGroup); _audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _SFXGroup);
} }
public void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position) public void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position)
{ {
_audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position, _enemiesGroup); _audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position, _enemiesGroup);
} }
public void PlayDispatcher(DispatcherSounds dispatcherSoundId) public void PlayDispatcher(DispatcherSounds dispatcherSoundId)
{ {
_audioSourcePool.PlayShizo(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _dispatcherGroup); _audioSourcePool.PlayShizo(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _dispatcherGroup);
@@ -4,6 +4,7 @@ namespace Code.Audio
{ {
None, None,
Peaceful, Peaceful,
Action Action,
Menu
} }
} }
@@ -19,7 +19,7 @@ namespace Code.Audio
_pool = new ObjectPool<AudioSource>( _pool = new ObjectPool<AudioSource>(
createFunc: CreateItem, createFunc: CreateItem,
// actionOnGet: OnGet, // actionOnGet: OnGet,
// actionOnRelease: OnRelease, actionOnRelease: OnRelease,
actionOnDestroy: OnDestroyItem, actionOnDestroy: OnDestroyItem,
collectionCheck: true, // helps catch double-release mistakes collectionCheck: true, // helps catch double-release mistakes
defaultCapacity: 10, defaultCapacity: 10,
@@ -45,6 +45,7 @@ namespace Code.Audio
// Called when an item is returned to the pool. // Called when an item is returned to the pool.
private void OnRelease(AudioSource source) private void OnRelease(AudioSource source)
{ {
source.Stop();
//source.gameObject.SetActive(false); //source.gameObject.SetActive(false);
} }
@@ -8,16 +8,14 @@ namespace Code.Audio
{ {
public interface IAudioFactory public interface IAudioFactory
{ {
List<AudioClip> PeacefulMusic { get; }
List<AudioClip> ActionMusic { get; }
List<AudioClip> MenuMusic { get; }
List<AudioClip> SFXAudios { get; } List<AudioClip> SFXAudios { get; }
List<AudioClip> EnemiesAudios { get; } List<AudioClip> EnemiesAudios { get; }
List<AudioClip> DispatcherAudios { get; } List<AudioClip> DispatcherAudios { get; }
AudioMixer AudioMixer { get; } AudioMixer AudioMixer { get; }
Dictionary<MusicType, List<AudioClip>> MusicDictionary { get; }
UniTask LoadAudioSourcePrefab(Action<GameObject> callback); UniTask LoadAudioSourcePrefab(Action<GameObject> callback);
UniTask WarmGameplayMusic(); UniTask WarmGameplayMusic();
void ReleaseGameplayMusic(); void ReleaseActionMusic();
UniTask WarmMenuMusic(); UniTask WarmMenuMusic();
void ReleaseMenuMusic(); void ReleaseMenuMusic();
UniTask WarmSFX(); UniTask WarmSFX();
@@ -26,5 +24,6 @@ namespace Code.Audio
void ReleaseEnemies(); void ReleaseEnemies();
UniTask WarmDispatcher(); UniTask WarmDispatcher();
void ReleaseDispatcher(); void ReleaseDispatcher();
void ReleasePeacefulMusic();
} }
} }
@@ -7,20 +7,13 @@ namespace Code.Audio
public interface IAudioService public interface IAudioService
{ {
UniTask Initialize(); UniTask Initialize();
void PlayRandomGameplayMusic(); UniTaskVoid PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType musicType);
UniTaskVoid GladlyAskToStopMusic(MusicType musicType, AudioSnapshotState audioSnapshotState = AudioSnapshotState.None, float time = 1f, Action callback = null);
void StopMusic();
void GladlyAskToStopMusic(Action callback = null);
void TransitToSnapshot(AudioSnapshotState state, float time = 1f); void TransitToSnapshot(AudioSnapshotState state, float time = 1f);
void PlaySFX(SFXSounds sfxId, Vector3 position); void PlaySFX(SFXSounds sfxId, Vector3 position);
void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position); void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position);
void PlayDispatcher(DispatcherSounds dispatcherSoundId); void PlayDispatcher(DispatcherSounds dispatcherSoundId);
void PlayRandomMenuMusic();
UniTaskVoid PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins();
void StopMusic();
void GladlyAskToStopMusic(Action callback = null);
UniTaskVoid GladlyAskToStopMenuMusic(Action callback = null);
UniTaskVoid GladlyAskToStopActionMusic(Action callback = null);
UniTaskVoid GladlyAskToStopPeacefulMusic(Action callback = null);
UniTaskVoid PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins();
UniTaskVoid PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins();
UniTaskVoid GladlyAskToStopGameplayMusic(Action callback = null);
} }
} }
@@ -0,0 +1,9 @@
namespace Code.Audio
{
public enum MusicType
{
Menu,
Peaceful,
Action
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 74ff08d5f1b741f69e37fc06fb07ae8d
timeCreated: 1763151897
@@ -1,4 +1,5 @@
using UnityEngine; using UnityEngine;
using UnityEngine.AddressableAssets;
namespace Code.Configs namespace Code.Configs
{ {
@@ -6,5 +7,7 @@ namespace Code.Configs
public class PlayerConfig : ScriptableObject public class PlayerConfig : ScriptableObject
{ {
public int maxHealth; public int maxHealth;
public AssetReference characterPrefab;
} }
} }
@@ -25,5 +25,7 @@ namespace Code.Constants
public const string PeacefulSnapshot = "Peaceful"; public const string PeacefulSnapshot = "Peaceful";
public const string ActionSnapshot = "Action"; public const string ActionSnapshot = "Action";
public const string NoneSnapshot = "None"; public const string NoneSnapshot = "None";
public const string MenuSnapshot = "Menu";
public const string MenuMusicGroup = "Menu";
} }
} }
@@ -117,7 +117,7 @@ namespace Code.Gameplay.Camera.CameraStates
protected virtual void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion targetRotation) protected virtual void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion targetRotation)
{ {
// Вращение вокруг вертикальной оси (горизонтальный поворот) // Вращение вокруг вертикальной оси (горизонтальный поворот)
var rotationFromInput = Quaternion.Euler(FollowTransform.up * (rotationInput.x * RotationSpeed)); var rotationFromInput = Quaternion.Euler(Vector3.up * (rotationInput.x * RotationSpeed));
PlanarDirection = rotationFromInput * PlanarDirection; PlanarDirection = rotationFromInput * PlanarDirection;
var planarRotation = Quaternion.LookRotation(PlanarDirection, FollowTransform.up); var planarRotation = Quaternion.LookRotation(PlanarDirection, FollowTransform.up);
@@ -16,6 +16,12 @@ namespace Code.Gameplay.Character.Controller.Abilities
// Пороговый косинус стены // Пороговый косинус стены
public float WallNormalThreshold { get; } public float WallNormalThreshold { get; }
private bool _hasClimbedThisWallSession;
private float _wallClimbCooldownTimer;
private readonly float _wallClimbCooldownDuration = 1.5f;
public bool IsClimbingActive { get; private set; }
// Конструктор механики залазания на стену // Конструктор механики залазания на стену
public WallClimbMechanic(float wallClimbSpeedFactor, float minWallClimbSpeed, float wallDetectionAngleThreshold) public WallClimbMechanic(float wallClimbSpeedFactor, float minWallClimbSpeed, float wallDetectionAngleThreshold)
{ {
@@ -26,11 +32,21 @@ namespace Code.Gameplay.Character.Controller.Abilities
} }
// Обработка столкновения при движении (вызывается при ударе о препятствие) // Обработка столкновения при движении (вызывается при ударе о препятствие)
public void OnMovementHit(KinematicCharacterMotor motor, Vector3 hitNormal) public bool TryClimbWall(KinematicCharacterMotor motor, Vector3 hitNormal)
{ {
// Проверяем, что это вертикальная или почти вертикальная поверхность (стена) // Проверяем, что это вертикальная или почти вертикальная поверхность (стена)
var dotWithUp = Vector3.Dot(hitNormal, motor.CharacterUp); var dotWithUp = Vector3.Dot(hitNormal, motor.CharacterUp);
if (Mathf.Abs(dotWithUp) > WallNormalThreshold) return; // Не стена — это пол или потолок
if (Mathf.Abs(dotWithUp) > WallNormalThreshold)
{
// Сбрасываем сессию, если коснулись пола/потолка → выход из "режима стены"
_hasClimbedThisWallSession = false;
return false;
}
// Запрещаем повторное залазание в рамках одной сессии
if (_hasClimbedThisWallSession || _wallClimbCooldownTimer > 0f)
return false;
// Получаем текущую скорость персонажа // Получаем текущую скорость персонажа
var currentVelocity = motor.Velocity; var currentVelocity = motor.Velocity;
@@ -41,6 +57,7 @@ namespace Code.Gameplay.Character.Controller.Abilities
// Если движемся в стену с достаточной скоростью // Если движемся в стену с достаточной скоростью
if (velocityIntoWall > _minWallClimbSpeed) if (velocityIntoWall > _minWallClimbSpeed)
{ {
_wallClimbCooldownTimer = _wallClimbCooldownDuration;
// Преобразуем часть горизонтальной скорости в вертикальную // Преобразуем часть горизонтальной скорости в вертикальную
var verticalBoost = velocityIntoWall * _wallClimbSpeedFactor; var verticalBoost = velocityIntoWall * _wallClimbSpeedFactor;
@@ -49,6 +66,26 @@ namespace Code.Gameplay.Character.Controller.Abilities
// Предотвращаем заземление и повторное применение в этом кадре // Предотвращаем заземление и повторное применение в этом кадре
motor.ForceUnground(); motor.ForceUnground();
_hasClimbedThisWallSession = true;
IsClimbingActive = true;
return true;
}
return false;
}
public void ResetWallClimbSession()
{
_hasClimbedThisWallSession = false;
IsClimbingActive = false;
}
public void TickCooldown(float deltaTime)
{
if (_wallClimbCooldownTimer > 0f)
{
_wallClimbCooldownTimer -= deltaTime;
} }
} }
} }
@@ -17,6 +17,12 @@ namespace Code.Gameplay.Character.Controller.Abilities
private Vector3 _lastWallNormal; private Vector3 _lastWallNormal;
private float _lastWallContactHeight; private float _lastWallContactHeight;
private float _leanFactor; private float _leanFactor;
private float _leanSign;
private Vector3 _leanDirection;
private Vector3 _lastWallContactPoint;
private bool _isLeaningOnWall;
private const float WallProximityThreshold = 0.6f;
public WallLeanMechanic(float maxLeanAngle, float leanSharpness, float heightScale) public WallLeanMechanic(float maxLeanAngle, float leanSharpness, float heightScale)
{ {
@@ -32,25 +38,89 @@ namespace Code.Gameplay.Character.Controller.Abilities
} }
// Вызывается из OnMovementHit // Вызывается из OnMovementHit
public void OnWallContact(Vector3 wallNormal, float contactHeight) public void OnWallContact(KinematicCharacterMotor motor, Vector3 wallNormal, float contactHeight)
{ {
// Только если это действительно стена (не пол/потолок)
var dotWithUp = Vector3.Dot(wallNormal, motor.CharacterUp);
if (Mathf.Abs(dotWithUp) > 0.7f) // ~45°, можно настроить
return;
_lastWallNormal = wallNormal; _lastWallNormal = wallNormal;
_lastWallContactHeight = contactHeight; } _lastWallContactHeight = contactHeight;
_lastWallContactPoint = motor.TransientPosition;
// Пересчитываем направление наклона
_leanDirection = -_lastWallNormal;
_leanDirection = Vector3.ProjectOnPlane(_leanDirection, motor.CharacterUp).normalized;
_leanSign = 1;
// what the fuck
if (_leanDirection.x != 0)
{
switch (_leanDirection.x)
{
case -1 or 1 when motor.CharacterRight.x > 0.1f:
_leanSign = -1;
break;
case -1 or 1 when Mathf.Abs(motor.CharacterRight.x) < 0.1f:
_leanDirection = new Vector3(0, 0, -1);
break;
}
}
else
{
switch (_leanDirection.z)
{
case 1 when Mathf.Abs(motor.CharacterRight.z) < 0.1f:
_leanSign = -1;
break;
case -1 when motor.CharacterRight.z < -0.1f:
case 1 when motor.CharacterRight.z > 0.1f:
_leanDirection = new Vector3(-1, 0, 0);
break;
case -1 when motor.CharacterRight.z > 0.1f:
case 1 when motor.CharacterRight.z < -0.1f:
_leanDirection = new Vector3(1, 0, 0);
break;
}
}
_isLeaningOnWall = true;
}
// Обновление каждый кадр // Обновление каждый кадр
public void UpdateLean(KinematicCharacterMotor motor, float deltaTime) public void UpdateLean(KinematicCharacterMotor motor, float deltaTime)
{ {
if (!_characterTransform) return; if (!_characterTransform) return;
var isGrounded = motor.GroundingStatus.IsStableOnGround; var currentPosition = motor.TransientPosition;
if (!isGrounded) var isStillNearWall = false;
if (_isLeaningOnWall && _lastWallNormal != Vector3.zero)
{ {
var heightDelta = motor.TransientPosition.y - _lastWallContactHeight; var toWall = currentPosition - _lastWallContactPoint;
var distanceToWallPlane = Mathf.Abs(Vector3.Dot(toWall, _lastWallNormal));
isStillNearWall = distanceToWallPlane <= WallProximityThreshold;
}
if (_isLeaningOnWall)
{
var isBelowContactHeight = currentPosition.y < _lastWallContactHeight;
if (!isStillNearWall || isBelowContactHeight)
{
_isLeaningOnWall = false;
}
else
{
var heightDelta = currentPosition.y - _lastWallContactHeight;
var targetLeanFactor = Mathf.Clamp01(heightDelta * _heightScale); var targetLeanFactor = Mathf.Clamp01(heightDelta * _heightScale);
_leanFactor = Mathf.Lerp(_leanFactor, targetLeanFactor, 1f - Mathf.Exp(-_leanSharpness * deltaTime)); _leanFactor = Mathf.Lerp(_leanFactor, targetLeanFactor, 1f - Mathf.Exp(-_leanSharpness * deltaTime));
} }
else }
if (!_isLeaningOnWall)
{ {
_leanFactor = Mathf.Lerp(_leanFactor, 0f, 1f - Mathf.Exp(-_leanSharpness * deltaTime)); _leanFactor = Mathf.Lerp(_leanFactor, 0f, 1f - Mathf.Exp(-_leanSharpness * deltaTime));
} }
@@ -66,13 +136,11 @@ namespace Code.Gameplay.Character.Controller.Abilities
return; return;
} }
var leanDirection = -_lastWallNormal; if (_leanDirection.sqrMagnitude < 0.01f) return;
leanDirection = Vector3.ProjectOnPlane(leanDirection, motor.CharacterUp).normalized;
if (leanDirection.sqrMagnitude < 0.01f) return; var leanAngle = _leanSign * _leanFactor * _maxLeanAngle;
var leanAxis = Vector3.Cross(motor.CharacterUp, _leanDirection);
var leanAngle = _leanFactor * _maxLeanAngle; var leanRotation = Quaternion.AngleAxis(leanAngle, leanAxis);
var leanRotation = Quaternion.AngleAxis(leanAngle, Vector3.Cross(motor.CharacterUp, leanDirection));
_characterTransform.localRotation = leanRotation; _characterTransform.localRotation = leanRotation;
} }
} }
@@ -33,9 +33,43 @@ namespace Code.Gameplay.Character.Controller
private GroundMovementSystem _groundMovement; private GroundMovementSystem _groundMovement;
private AirMovementSystem _airMovement; private AirMovementSystem _airMovement;
public void SetPosition(Vector3 position) => motor.SetPosition(position);
public void SetRotation(Quaternion rotation) => motor.SetRotation(rotation);
// Инициализация контроллера // Инициализация контроллера
private void Awake() // private void Awake()
// {
// // Инициализация подсистем с параметрами из конфига
// _inputHandler = new CharacterInputHandler(
// _characterConfig.sprintAngleThreshold
// );
// _slideMechanic = new SlideMechanic(
// _characterConfig.slideSpeed,
// _characterConfig.slideDuration,
// _characterConfig.slideCooldown
// );
// _wallClimbMechanic = new WallClimbMechanic(
// _characterConfig.wallClimbSpeedFactor,
// _characterConfig.minWallClimbSpeed,
// _characterConfig.wallDetectionAngleThreshold
// );
// _wallLeanMechanic = new WallLeanMechanic(
// _characterConfig.maxWallLeanAngle,
// _characterConfig.wallLeanSharpness,
// _characterConfig.wallLeanHeightScale
// );
// _groundMovement = new GroundMovementSystem(
// _characterConfig.maxStableMoveSpeed,
// _characterConfig.sprintMoveSpeed,
// _characterConfig.stableMovementSharpness,
// _characterConfig.jumpSpeed
// );
// _airMovement = new AirMovementSystem(_characterConfig.gravity);
// }
[Inject]
private void Construct(CharacterConfig characterConfig)
{ {
_characterConfig = characterConfig;
// Инициализация подсистем с параметрами из конфига // Инициализация подсистем с параметрами из конфига
_inputHandler = new CharacterInputHandler( _inputHandler = new CharacterInputHandler(
_characterConfig.sprintAngleThreshold _characterConfig.sprintAngleThreshold
@@ -62,25 +96,31 @@ namespace Code.Gameplay.Character.Controller
_characterConfig.jumpSpeed _characterConfig.jumpSpeed
); );
_airMovement = new AirMovementSystem(_characterConfig.gravity); _airMovement = new AirMovementSystem(_characterConfig.gravity);
}
// Текущий режим камеры для адаптации поведения
private CameraMode _currentCameraMode = CameraMode.FirstPerson;
// Инициализация контроллера
private void Start()
{
motor.CharacterController = this; // Регистрация этого контроллера в движке motor.CharacterController = this; // Регистрация этого контроллера в движке
_inputHandler.FirstPersonCameraRotation = _inputHandler.FirstPersonCameraRotation =
motor.Transform.rotation; // Начальное вращение совпадает с персонажемс motor.Transform.rotation; // Начальное вращение совпадает с персонажемс
_wallLeanMechanic.SetCharacterTransform(characterTransform); _wallLeanMechanic.SetCharacterTransform(characterTransform);
} }
// Текущий режим камеры для адаптации поведения
private CameraMode _currentCameraMode = CameraMode.FirstPerson;
// Инициализация контроллера
// private void Start()
// {
// motor.CharacterController = this; // Регистрация этого контроллера в движке
// _inputHandler.FirstPersonCameraRotation =
// motor.Transform.rotation; // Начальное вращение совпадает с персонажемс
// _wallLeanMechanic.SetCharacterTransform(characterTransform);
// }
// Обработка и преобразование входных данных от персонажа // Обработка и преобразование входных данных от персонажа
public void SetInputs(ref CharacterInputs inputs) public void SetInputs(ref CharacterInputs inputs)
{ {
// Обновляем таймер перезарядки слайда // Обновляем таймер перезарядки слайда
_slideMechanic.TickCooldown(Time.deltaTime); _slideMechanic.TickCooldown(Time.deltaTime);
_wallClimbMechanic.TickCooldown(Time.deltaTime);
// Если активен слайд - игнорируем весь остальной ввод // Если активен слайд - игнорируем весь остальной ввод
if (_slideMechanic.IsSliding) if (_slideMechanic.IsSliding)
@@ -109,8 +149,7 @@ namespace Code.Gameplay.Character.Controller
// Обновление вращения персонажа на основе входных данных // Обновление вращения персонажа на основе входных данных
public void UpdateRotation(ref Quaternion currentRotation, float deltaTime) public void UpdateRotation(ref Quaternion currentRotation, float deltaTime)
{ {
// ВО ВРЕМЯ СЛАЙДА НЕ ОБНОВЛЯЕМ ВРАЩЕНИЕ - ПЕРСОНАЖ СМОТРИТ ПРЯМО if (_slideMechanic.IsSliding || _wallClimbMechanic.IsClimbingActive) return;
if (_slideMechanic.IsSliding) return;
switch (_currentCameraMode) switch (_currentCameraMode)
{ {
@@ -196,6 +235,11 @@ namespace Code.Gameplay.Character.Controller
{ {
_slideMechanic.EndSlide(); _slideMechanic.EndSlide();
} }
if (motor.GroundingStatus.IsStableOnGround)
{
_wallClimbMechanic.ResetWallClimbSession();
}
} }
// Метод вызывается после обновления персонажа // Метод вызывается после обновления персонажа
@@ -220,13 +264,8 @@ namespace Code.Gameplay.Character.Controller
public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint, public void OnMovementHit(Collider hitCollider, Vector3 hitNormal, Vector3 hitPoint,
ref HitStabilityReport hitStabilityReport) ref HitStabilityReport hitStabilityReport)
{ {
_wallClimbMechanic.OnMovementHit(motor, hitNormal); if (_wallClimbMechanic.TryClimbWall(motor, hitNormal))
_wallLeanMechanic.OnWallContact(motor, hitNormal, motor.TransientPosition.y);
var dotWithUp = Vector3.Dot(hitNormal, motor.CharacterUp);
if (Mathf.Abs(dotWithUp) <= _wallClimbMechanic.WallNormalThreshold)
{
_wallLeanMechanic.OnWallContact(hitNormal, motor.TransientPosition.y);
}
} }
// Обработка отчета о стабильности столкновения // Обработка отчета о стабильности столкновения
@@ -113,7 +113,7 @@ namespace Code.Gameplay.Character.Controller.Input
var cameraForward = cameraRotation * Vector3.forward; var cameraForward = cameraRotation * Vector3.forward;
// Проецируем на горизонтальную плоскость // Проецируем на горизонтальную плоскость
var horizontalForward = Vector3.ProjectOnPlane(cameraForward, motor.CharacterUp).normalized; var horizontalForward = Vector3.ProjectOnPlane(cameraForward, Vector3.up).normalized;
// Если проекция вырождена, используем текущее направление персонажа // Если проекция вырождена, используем текущее направление персонажа
if (horizontalForward.sqrMagnitude < 0.01f) if (horizontalForward.sqrMagnitude < 0.01f)
@@ -0,0 +1,56 @@
using Code.Gameplay.Camera;
using Code.Gameplay.Camera.CameraStates;
using Code.Gameplay.Character.Controller;
using Code.Input;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Gameplay.Character.Core
{
public class CharacterProvider : MonoBehaviour
{
[Inject] private CameraStateMachine _cameraStateMachine; // Стейт-машина камеры (нужна для транзакций и т.п.)
[SerializeField] private CustomCharacterController customCharacterController; // Компонент управления персонажем
public CustomCharacterController CustomCharacterController => customCharacterController;
[SerializeField] private Transform cameraFollowPoint; // Точка следования камеры (уровень глаз для FirstPerson)
public Transform GetFollowTransform() => cameraFollowPoint;
[Inject] private IInputService _inputService; // Сервис ввода через DI
public void Teleport(Vector3 position, Quaternion rotation)
{
customCharacterController.SetPosition(position);
customCharacterController.SetRotation(rotation);
}
// Обработка ввода для движения персонажа
private void HandleCharacterInput()
{
// Создаем структуру ввода с полной информацией о камере
var inputs = new CharacterInputs();
// Получаем данные движения из Input System
var moveInput = _inputService.MoveInput;
inputs.MoveAxisForward = moveInput.y; // Vertical ось (W/S или Up/Down)
inputs.MoveAxisRight = moveInput.x; // Horizontal ось (A/D или Left/Right)
inputs.JumpPressed = _inputService.JumpPressed; // Прыжки (Space)
inputs.SprintPressed = true;//_inputService.SprintPressed; // Спринт (Shift)
inputs.SlidePressed = _inputService.SlidePressed; // Слайд (Ctrl)
inputs.CameraMode = ((ICameraState)_cameraStateMachine.CurrentBaseState).GetCameraMode();
// Передаем информацию о камере для адаптивного поведения
inputs.CameraRotation = ((BaseCameraState)_cameraStateMachine.CurrentBaseState).GetCameraRotation();
inputs.CameraPlanarDirection = ((BaseCameraState)_cameraStateMachine.CurrentBaseState).GetPlanarDirection();
// Передаем ввод в контроллер персонажа
customCharacterController.SetInputs(ref inputs);
}
// Обновление логики каждый кадр
private void Update()
{
// Обработка ввода для движения в Update (физика)
HandleCharacterInput();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b2d4b8256c1f4b3facf6b8d0a7d5256b
timeCreated: 1763217123
@@ -1,8 +1,15 @@
using System;
using Code.Gameplay.Character.Core;
using Cysharp.Threading.Tasks;
using UnityEngine;
namespace Code.Gameplay.Player namespace Code.Gameplay.Player
{ {
public interface IPlayerFactory public interface IPlayerFactory
{ {
PlayerHealth CreatePlayerHealth(int count = -1); PlayerHealth CreatePlayerHealth(int count = -1);
PlayerMoney CreatePlayerMoney(int count = 0); PlayerMoney CreatePlayerMoney(int count = 0);
UniTask<CharacterProvider> CreatePlayer();
void ReleasePlayer(CharacterProvider characterProvider);
} }
} }
@@ -0,0 +1,23 @@
using KinematicCharacterController;
using UnityEngine;
namespace Code.Gameplay.Player
{
public class PlayerAnimator : MonoBehaviour
{
private static readonly int Velocity = Animator.StringToHash("Velocity");
[SerializeField] private Animator playerAnimator;
[SerializeField] private KinematicCharacterMotor kinematicCharacterMotor;
private void SetVelocity(float velocity)
{
playerAnimator.SetFloat(Velocity, velocity);
}
private void Update()
{
SetVelocity(kinematicCharacterMotor.Velocity.magnitude);
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2f94efbea729423596ee5c6ee2366c98
timeCreated: 1763220863
@@ -1,6 +1,13 @@
using UnityEngine; using UnityEngine;
using Code.Configs; using Code.Configs;
using Code.Gameplay.Character.Core;
using Cysharp.Threading.Tasks;
using Reflex.Attributes; using Reflex.Attributes;
using Reflex.Core;
using Reflex.Extensions;
using Reflex.Injectors;
using UnityEngine.AddressableAssets;
using UnityEngine.SceneManagement;
namespace Code.Gameplay.Player namespace Code.Gameplay.Player
{ {
@@ -15,5 +22,18 @@ namespace Code.Gameplay.Player
return new(count); return new(count);
} }
public PlayerMoney CreatePlayerMoney(int count = 0) => new(count); public PlayerMoney CreatePlayerMoney(int count = 0) => new(count);
public async UniTask<CharacterProvider> CreatePlayer()
{
CharacterProvider characterProvider = (await Addressables.InstantiateAsync(_playerConfig.characterPrefab).ToUniTask()).GetComponent<CharacterProvider>();
AttributeInjector.Inject(characterProvider, Container.ProjectContainer);
AttributeInjector.Inject(characterProvider.CustomCharacterController, Container.ProjectContainer);
return characterProvider;
}
public void ReleasePlayer(CharacterProvider characterProvider)
{
Addressables.ReleaseInstance(characterProvider.gameObject);
}
} }
} }
@@ -7,10 +7,12 @@ namespace Code.Scenes.SceneEnvironments
public class GameplaySceneEnvironment : CurrentSceneEnvironment public class GameplaySceneEnvironment : CurrentSceneEnvironment
{ {
[FormerlySerializedAs("sfxTarget")] public Transform debugSfxTarget; [FormerlySerializedAs("sfxTarget")] public Transform debugSfxTarget;
public Transform playerSpawnPoint;
public void TransitVariables(GameplaySceneEnvironment env) public void TransitVariables(GameplaySceneEnvironment env)
{ {
debugSfxTarget = env.debugSfxTarget; debugSfxTarget = env.debugSfxTarget;
playerSpawnPoint = env.playerSpawnPoint;
} }
} }
} }
@@ -52,6 +52,39 @@ AudioMixerEffectController:
m_SendTarget: {fileID: 0} m_SendTarget: {fileID: 0}
m_EnableWetMix: 0 m_EnableWetMix: 0
m_Bypass: 0 m_Bypass: 0
--- !u!245 &-5566153147845745614
AudioMixerSnapshotController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Menu
m_AudioMixer: {fileID: 24100000}
m_SnapshotID: ae02c0612d44bfd459883c67f6dab857
m_FloatValues:
b9fc0df121fe7134e9cbd35aa5a65755: 0.10800299
ddab7e07de3c686e296ff10b1cd77a47: -80
dd0b3fe80d006124baa36e791e6953f0: -80
m_TransitionOverrides: {}
--- !u!243 &-5282050360126310577
AudioMixerGroupController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Menu
m_AudioMixer: {fileID: 24100000}
m_GroupID: af6d3dead2e9e4848a2ca2fa55634108
m_Children: []
m_Volume: b9fc0df121fe7134e9cbd35aa5a65755
m_Pitch: 3cdebfce079b3864f93ef55f8bc453ae
m_Send: 00000000000000000000000000000000
m_Effects:
- {fileID: 5712107256638894671}
m_UserColorIndex: 0
m_Mute: 0
m_Solo: 0
m_BypassEffects: 0
--- !u!243 &-4235790927912365957 --- !u!243 &-4235790927912365957
AudioMixerGroupController: AudioMixerGroupController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -64,6 +97,7 @@ AudioMixerGroupController:
m_Children: m_Children:
- {fileID: 1469200815455588746} - {fileID: 1469200815455588746}
- {fileID: 9214955797390454771} - {fileID: 9214955797390454771}
- {fileID: -5282050360126310577}
m_Volume: 4c469b14481ac855fb9fb2989e6e6b94 m_Volume: 4c469b14481ac855fb9fb2989e6e6b94
m_Pitch: f5433a3ce2d2313f2b2d52521d9fa5bd m_Pitch: f5433a3ce2d2313f2b2d52521d9fa5bd
m_Send: 00000000000000000000000000000000 m_Send: 00000000000000000000000000000000
@@ -119,6 +153,7 @@ AudioMixerSnapshotController:
m_AudioMixer: {fileID: 24100000} m_AudioMixer: {fileID: 24100000}
m_SnapshotID: 6d6b0cfa14637d5f0a34277934971c34 m_SnapshotID: 6d6b0cfa14637d5f0a34277934971c34
m_FloatValues: m_FloatValues:
b9fc0df121fe7134e9cbd35aa5a65755: -80
ddab7e07de3c686e296ff10b1cd77a47: -80 ddab7e07de3c686e296ff10b1cd77a47: -80
m_TransitionOverrides: {} m_TransitionOverrides: {}
--- !u!241 &24100000 --- !u!241 &24100000
@@ -134,6 +169,7 @@ AudioMixerController:
- {fileID: 8341788112416184532} - {fileID: 8341788112416184532}
- {fileID: -1214924791136564940} - {fileID: -1214924791136564940}
- {fileID: 24500006} - {fileID: 24500006}
- {fileID: -5566153147845745614}
m_StartSnapshot: {fileID: 8341788112416184532} m_StartSnapshot: {fileID: 8341788112416184532}
m_SuspendThreshold: -80 m_SuspendThreshold: -80
m_EnableSuspend: 1 m_EnableSuspend: 1
@@ -150,9 +186,10 @@ AudioMixerController:
- 9bd058bbb94358d33a130fd50e352c2d - 9bd058bbb94358d33a130fd50e352c2d
- e04cdd7cb505ba69ea76a16038de727a - e04cdd7cb505ba69ea76a16038de727a
- 9eb64ac0ca0e2f1098eafbba1f9633f5 - 9eb64ac0ca0e2f1098eafbba1f9633f5
- af6d3dead2e9e4848a2ca2fa55634108
name: View name: View
m_CurrentViewIndex: 0 m_CurrentViewIndex: 0
m_TargetSnapshot: {fileID: -1214924791136564940} m_TargetSnapshot: {fileID: -5566153147845745614}
--- !u!243 &24300002 --- !u!243 &24300002
AudioMixerGroupController: AudioMixerGroupController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -199,6 +236,7 @@ AudioMixerSnapshotController:
m_AudioMixer: {fileID: 24100000} m_AudioMixer: {fileID: 24100000}
m_SnapshotID: bdbaa2a61b8857f568cd42dafa5c4811 m_SnapshotID: bdbaa2a61b8857f568cd42dafa5c4811
m_FloatValues: m_FloatValues:
b9fc0df121fe7134e9cbd35aa5a65755: -80
dd0b3fe80d006124baa36e791e6953f0: -80 dd0b3fe80d006124baa36e791e6953f0: -80
m_TransitionOverrides: {} m_TransitionOverrides: {}
--- !u!244 &671806689151419646 --- !u!244 &671806689151419646
@@ -272,6 +310,20 @@ AudioMixerGroupController:
m_Mute: 0 m_Mute: 0
m_Solo: 0 m_Solo: 0
m_BypassEffects: 0 m_BypassEffects: 0
--- !u!244 &5712107256638894671
AudioMixerEffectController:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_EffectID: 8d1dc8039a4095e439a61f34c4e7f3a6
m_EffectName: Attenuation
m_MixLevel: fdc182acd523a7247a98663cce44aca2
m_Parameters: []
m_SendTarget: {fileID: 0}
m_EnableWetMix: 0
m_Bypass: 0
--- !u!244 &5996723691131988381 --- !u!244 &5996723691131988381
AudioMixerEffectController: AudioMixerEffectController:
m_ObjectHideFlags: 3 m_ObjectHideFlags: 3
@@ -13,3 +13,9 @@ MonoBehaviour:
m_Name: PlayerConfig m_Name: PlayerConfig
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.PlayerConfig m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.PlayerConfig
maxHealth: 4 maxHealth: 4
characterPrefab:
m_AssetGUID: 81844a99f5b786b41b831174f8fb6d3a
m_SubObjectName:
m_SubObjectType:
m_SubObjectGUID:
m_EditorAssetChanged: 0
@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 75793e520683ea032ace153b3040cf4e guid: 542cdb12015ca2d4e9f972fe31704bf3
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
@@ -0,0 +1,109 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerAnimator
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Velocity
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 4749464319161710948}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!206 &2872468340543739955
BlendTree:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MovementBlendTree
m_Childs:
- serializedVersion: 2
m_Motion: {fileID: -8439424969872400937, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
m_Threshold: 0
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: -4320063115943924929, guid: 02296f680a0e6ed48a92d690d2d82b6e, type: 3}
m_Threshold: 1
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
m_BlendParameter: Velocity
m_BlendParameterY: Blend
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 1
m_NormalizedBlendValues: 0
m_BlendType: 0
--- !u!1107 &4749464319161710948
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 8889563492703692874}
m_Position: {x: 250, y: 90, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 20, y: 100, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 8889563492703692874}
--- !u!1102 &8889563492703692874
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MovementBlendTree
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 2872468340543739955}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: af241b6cdcc834345b675ce177ebac79
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,168 @@
fileFormatVersion: 2
guid: a7e412e490909bf47af7fe22cd5bd0bf
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: idle
takeName: root|root|root|Armature.001|mixamo.com|Layer0.001_IN_PLACE_remap
internalID: -8439424969872400937
firstFrame: 0
lastFrame: 36
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: root|root|root|Armature.002|mixamo.com|Layer0_remap
takeName: root|root|root|Armature.002|mixamo.com|Layer0_remap
internalID: -4320063115943924929
firstFrame: 0
lastFrame: 17
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 0
importLights: 0
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName: root
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 02296f680a0e6ed48a92d690d2d82b6e, type: 3}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 2
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,139 @@
fileFormatVersion: 2
guid: 02296f680a0e6ed48a92d690d2d82b6e
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: running
takeName: root|root|root|Armature.002|mixamo.com|Layer0_remap
internalID: -4320063115943924929
firstFrame: 0
lastFrame: 17
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 0
importLights: 0
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName: root
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 1
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,5 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 4ee6c9ddf0020bc978ffcb0af4b2464a guid: b34152e9e1f377f46b9760380f4026f1
folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
@@ -0,0 +1,406 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &246659393721408964
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4946229927911408978}
m_Layer: 0
m_Name: CameraTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4946229927911408978
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 246659393721408964}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.395, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2100649549467745144}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1537453387805985730
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5320720100761243847}
- component: {fileID: 7482830422331717181}
- component: {fileID: 7731643877833200930}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5320720100761243847
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1537453387805985730}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2758983276633004546}
m_Father: {fileID: 3150129853019847772}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7482830422331717181
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1537453387805985730}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &7731643877833200930
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1537453387805985730}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &3373136816239065101
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3150129853019847772}
m_Layer: 0
m_Name: Mesh
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &3150129853019847772
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3373136816239065101}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5320720100761243847}
m_Father: {fileID: 2100649549467745144}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &3583714789819765001
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2758983276633004546}
- component: {fileID: 5687457544313103693}
- component: {fileID: 2504054294507162189}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2758983276633004546
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3583714789819765001}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.4, z: 0.4}
m_LocalScale: {x: 0.5, y: 0.2, z: 0.4}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5320720100761243847}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5687457544313103693
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3583714789819765001}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &2504054294507162189
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3583714789819765001}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &5932273896658416722
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7218113254095590988}
- component: {fileID: 2677889705310413228}
- component: {fileID: 269424926963600582}
- component: {fileID: 4772739932158761668}
- component: {fileID: 1150185452844372375}
m_Layer: 0
m_Name: CharacterControllerFullMono
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7218113254095590988
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932273896658416722}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2100649549467745144}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2677889705310413228
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932273896658416722}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9f2cdbe59523ace7ab0d8dfc36b4eb02, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Player
customCharacterController: {fileID: 1150185452844372375}
cameraFollowPoint: {fileID: 4946229927911408978}
--- !u!136 &269424926963600582
CapsuleCollider:
m_ObjectHideFlags: 8
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932273896658416722}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 1, z: 0}
--- !u!114 &4772739932158761668
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932273896658416722}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d1bc5515e3ab954e80599c538834774, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::KinematicCharacterController.KinematicCharacterMotor
Capsule: {fileID: 269424926963600582}
CapsuleRadius: 0.5
CapsuleHeight: 2
CapsuleYOffset: 1
CapsulePhysicsMaterial: {fileID: 0}
GroundDetectionExtraDistance: 0
MaxStableSlopeAngle: 60
StableGroundLayers:
serializedVersion: 2
m_Bits: 4294967295
DiscreteCollisionEvents: 0
StepHandling: 1
MaxStepHeight: 0.5
AllowSteppingWithoutStableGrounding: 0
MinRequiredStepDepth: 0.1
LedgeAndDenivelationHandling: 1
MaxStableDistanceFromLedge: 0.5
MaxVelocityForLedgeSnap: 0
MaxStableDenivelationAngle: 180
InteractiveRigidbodyHandling: 1
RigidbodyInteractionType: 0
SimulatedCharacterMass: 1
PreserveAttachedRigidbodyMomentum: 1
HasPlanarConstraint: 0
PlanarConstraintAxis: {x: 0, y: 0, z: 1}
MaxMovementIterations: 5
MaxDecollisionIterations: 1
CheckMovementInitialOverlaps: 1
KillVelocityWhenExceedMaxMovementIterations: 1
KillRemainingMovementWhenExceedMaxMovementIterations: 1
--- !u!114 &1150185452844372375
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932273896658416722}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a6f74123648343c498c883d02909b499, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Player.CharacterController
motor: {fileID: 4772739932158761668}
characterTransform: {fileID: 2100649549467745144}
--- !u!1 &7885333145217663204
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2100649549467745144}
m_Layer: 0
m_Name: Character
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2100649549467745144
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7885333145217663204}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3150129853019847772}
- {fileID: 4946229927911408978}
m_Father: {fileID: 7218113254095590988}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 44815028634960b4389ad341369bfd8a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -119,6 +119,117 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &545729161
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 545729165}
- component: {fileID: 545729164}
- component: {fileID: 545729163}
- component: {fileID: 545729162}
m_Layer: 0
m_Name: Platform
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &545729162
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 545729161}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &545729163
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 545729161}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &545729164
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 545729161}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &545729165
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 545729161}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.31709, y: -0.68, z: -0.71633}
m_LocalScale: {x: 23.6, y: 1, z: 37.03}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1253837927 --- !u!1 &1253837927
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -129,6 +240,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 1253837929} - component: {fileID: 1253837929}
- component: {fileID: 1253837928} - component: {fileID: 1253837928}
- component: {fileID: 1253837930}
m_Layer: 0 m_Layer: 0
m_Name: SceneScope m_Name: SceneScope
m_TagString: Untagged m_TagString: Untagged
@@ -163,8 +275,88 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1253837930
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253837927}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 88584fd4361b46f6a7326440cd95ce69, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.App.SceneInstallers.GameplaySceneInstaller
_gameplaySceneEnvironment:
debugSfxTarget: {fileID: 1420420439}
playerSpawnPoint: {fileID: 1645301970}
--- !u!1 &1420420438
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1420420439}
m_Layer: 0
m_Name: DebugSFX
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1420420439
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1420420438}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.94597, y: -0.18, z: -2.46228}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1645301969
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1645301970}
m_Layer: 0
m_Name: PlayerSpawn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1645301970
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1645301969}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.94597, y: 0.58, z: -2.46228}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_Roots: m_Roots:
- {fileID: 1253837929} - {fileID: 1253837929}
- {fileID: 545729165}
- {fileID: 1420420439}
- {fileID: 1645301970}
@@ -119,126 +119,6 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &55880351
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 55880352}
- component: {fileID: 55880355}
- component: {fileID: 55880354}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &55880352
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 55880351}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.4, z: 0.4}
m_LocalScale: {x: 0.5, y: 0.2, z: 0.4}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1533098598}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &55880354
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 55880351}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &55880355
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 55880351}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &453575297
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 453575298}
m_Layer: 0
m_Name: CameraTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &453575298
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 453575297}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.395, z: 0.59}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 723324499}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &481156066 --- !u!1 &481156066
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -351,71 +231,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &678700801
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 678700802}
m_Layer: 0
m_Name: Mesh
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &678700802
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678700801}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1533098598}
m_Father: {fileID: 723324499}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &723324498
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 723324499}
m_Layer: 0
m_Name: Character
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &723324499
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 723324498}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 678700802}
- {fileID: 453575298}
m_Father: {fileID: 1696686254}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1376862591 --- !u!1 &1376862591
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -522,190 +337,11 @@ Transform:
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -10, y: 3, z: 0} m_LocalPosition: {x: -10, y: 3, z: 0}
m_LocalScale: {x: 2, y: 6, z: 10} m_LocalScale: {x: 10, y: 6, z: 10}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1460292948
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1460292952}
- component: {fileID: 1460292951}
- component: {fileID: 1460292950}
m_Layer: 0
m_Name: SFXTest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &1460292950
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1460292948}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1460292951
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1460292948}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1460292952
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1460292948}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 7.44, y: 2.04, z: 8.13}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1533098597
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1533098598}
- component: {fileID: 1533098600}
- component: {fileID: 1533098599}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1533098598
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1533098597}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 55880352}
m_Father: {fileID: 678700802}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1533098599
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1533098597}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1533098600
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1533098597}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1543748505 --- !u!1 &1543748505
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -817,135 +453,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 45, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 45, y: 0, z: 0}
--- !u!1 &1696686253
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1696686254}
- component: {fileID: 1696686255}
- component: {fileID: 1696686257}
- component: {fileID: 1696686256}
- component: {fileID: 1696686258}
m_Layer: 0
m_Name: CharacterController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1696686254
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1696686253}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 723324499}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1696686255
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1696686253}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9f2cdbe59523ace7ab0d8dfc36b4eb02, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Player
customCharacterController: {fileID: 1696686258}
cameraFollowPoint: {fileID: 453575298}
--- !u!114 &1696686256
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1696686253}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d1bc5515e3ab954e80599c538834774, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::KinematicCharacterController.KinematicCharacterMotor
Capsule: {fileID: 1696686257}
CapsuleRadius: 0.5
CapsuleHeight: 2
CapsuleYOffset: 1
CapsulePhysicsMaterial: {fileID: 0}
GroundDetectionExtraDistance: 0
MaxStableSlopeAngle: 60
StableGroundLayers:
serializedVersion: 2
m_Bits: 4294967295
DiscreteCollisionEvents: 0
StepHandling: 1
MaxStepHeight: 0.5
AllowSteppingWithoutStableGrounding: 0
MinRequiredStepDepth: 0.1
LedgeAndDenivelationHandling: 1
MaxStableDistanceFromLedge: 0.5
MaxVelocityForLedgeSnap: 0
MaxStableDenivelationAngle: 180
InteractiveRigidbodyHandling: 1
RigidbodyInteractionType: 0
SimulatedCharacterMass: 1
PreserveAttachedRigidbodyMomentum: 1
HasPlanarConstraint: 0
PlanarConstraintAxis: {x: 0, y: 0, z: 1}
MaxMovementIterations: 5
MaxDecollisionIterations: 1
CheckMovementInitialOverlaps: 1
KillVelocityWhenExceedMaxMovementIterations: 1
KillRemainingMovementWhenExceedMaxMovementIterations: 1
--- !u!136 &1696686257
CapsuleCollider:
m_ObjectHideFlags: 8
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1696686253}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 1, z: 0}
--- !u!114 &1696686258
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1696686253}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a6f74123648343c498c883d02909b499, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Player.CharacterController
motor: {fileID: 1696686256}
characterTransform: {fileID: 723324499}
--- !u!1 &1959874989 --- !u!1 &1959874989
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -956,7 +463,6 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 1959874991} - component: {fileID: 1959874991}
- component: {fileID: 1959874990} - component: {fileID: 1959874990}
- component: {fileID: 1959874992}
m_Layer: 0 m_Layer: 0
m_Name: SceneScope m_Name: SceneScope
m_TagString: Untagged m_TagString: Untagged
@@ -991,27 +497,69 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1959874992 --- !u!1001 &7153655333589109951
MonoBehaviour: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} serializedVersion: 2
m_PrefabInstance: {fileID: 0} m_Modification:
m_PrefabAsset: {fileID: 0} serializedVersion: 3
m_GameObject: {fileID: 1959874989} m_TransformParent: {fileID: 0}
m_Enabled: 1 m_Modifications:
m_EditorHideFlags: 0 - target: {fileID: 5932273896658416722, guid: 44815028634960b4389ad341369bfd8a, type: 3}
m_Script: {fileID: 11500000, guid: 88584fd4361b46f6a7326440cd95ce69, type: 3} propertyPath: m_Name
m_Name: value: CharacterController
m_EditorClassIdentifier: Assembly-CSharp::Code.App.SceneInstallers.GameplaySceneInstaller objectReference: {fileID: 0}
_gameplaySceneEnvironment: - target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
debugSfxTarget: {fileID: 1460292952} propertyPath: m_LocalPosition.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalPosition.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218113254095590988, guid: 44815028634960b4389ad341369bfd8a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 44815028634960b4389ad341369bfd8a, type: 3}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_Roots: m_Roots:
- {fileID: 1959874991} - {fileID: 1959874991}
- {fileID: 1696686254} - {fileID: 7153655333589109951}
- {fileID: 481156070} - {fileID: 481156070}
- {fileID: 1376862595} - {fileID: 1376862595}
- {fileID: 1543748509} - {fileID: 1543748509}
- {fileID: 1460292952}
@@ -286,6 +286,306 @@ MonoBehaviour:
m_Scale: 1 m_Scale: 1
m_AtlasIndex: 0 m_AtlasIndex: 0
m_ClassDefinitionType: 0 m_ClassDefinitionType: 0
- m_Index: 20
m_Metrics:
m_Width: 26.359375
m_Height: 61.53125
m_HorizontalBearingX: 13.1875
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 202
m_Y: 91
m_Width: 27
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 23
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 448
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 29
m_Metrics:
m_Width: 8.796875
m_Height: 43.9375
m_HorizontalBearingX: 17.578125
m_HorizontalBearingY: 57.125
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 384
m_Y: 83
m_Width: 10
m_Height: 45
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 27
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 320
m_Y: 146
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 7
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 248
m_Y: 168
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 19
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 138
m_Y: 172
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 15
m_Metrics:
m_Width: 17.578125
m_Height: 17.578125
m_HorizontalBearingX: 13.1875
m_HorizontalBearingY: 21.96875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 202
m_Y: 172
m_Width: 18
m_Height: 18
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 28
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 74
m_Y: 174
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 26
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 10
m_Y: 185
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 21
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 512
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 24
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 576
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 22
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 640
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 25
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 704
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 42
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 768
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 36
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 832
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 48
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 896
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 40
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 960
m_Y: 10
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 50
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 413
m_Y: 91
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 57
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 477
m_Y: 91
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 53
m_Metrics:
m_Width: 43.953125
m_Height: 61.53125
m_HorizontalBearingX: 4.390625
m_HorizontalBearingY: 65.921875
m_HorizontalAdvance: 52.734375
m_GlyphRect:
m_X: 541
m_Y: 91
m_Width: 45
m_Height: 62
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
m_CharacterTable: m_CharacterTable:
- m_ElementType: 1 - m_ElementType: 1
m_Unicode: 8230 m_Unicode: 8230
@@ -347,6 +647,86 @@ MonoBehaviour:
m_Unicode: 116 m_Unicode: 116
m_GlyphIndex: 87 m_GlyphIndex: 87
m_Scale: 1 m_Scale: 1
- m_ElementType: 1
m_Unicode: 49
m_GlyphIndex: 20
m_Scale: 1
- m_ElementType: 1
m_Unicode: 52
m_GlyphIndex: 23
m_Scale: 1
- m_ElementType: 1
m_Unicode: 58
m_GlyphIndex: 29
m_Scale: 1
- m_ElementType: 1
m_Unicode: 56
m_GlyphIndex: 27
m_Scale: 1
- m_ElementType: 1
m_Unicode: 36
m_GlyphIndex: 7
m_Scale: 1
- m_ElementType: 1
m_Unicode: 48
m_GlyphIndex: 19
m_Scale: 1
- m_ElementType: 1
m_Unicode: 44
m_GlyphIndex: 15
m_Scale: 1
- m_ElementType: 1
m_Unicode: 57
m_GlyphIndex: 28
m_Scale: 1
- m_ElementType: 1
m_Unicode: 55
m_GlyphIndex: 26
m_Scale: 1
- m_ElementType: 1
m_Unicode: 50
m_GlyphIndex: 21
m_Scale: 1
- m_ElementType: 1
m_Unicode: 53
m_GlyphIndex: 24
m_Scale: 1
- m_ElementType: 1
m_Unicode: 51
m_GlyphIndex: 22
m_Scale: 1
- m_ElementType: 1
m_Unicode: 54
m_GlyphIndex: 25
m_Scale: 1
- m_ElementType: 1
m_Unicode: 71
m_GlyphIndex: 42
m_Scale: 1
- m_ElementType: 1
m_Unicode: 65
m_GlyphIndex: 36
m_Scale: 1
- m_ElementType: 1
m_Unicode: 77
m_GlyphIndex: 48
m_Scale: 1
- m_ElementType: 1
m_Unicode: 69
m_GlyphIndex: 40
m_Scale: 1
- m_ElementType: 1
m_Unicode: 79
m_GlyphIndex: 50
m_Scale: 1
- m_ElementType: 1
m_Unicode: 86
m_GlyphIndex: 57
m_Scale: 1
- m_ElementType: 1
m_Unicode: 82
m_GlyphIndex: 53
m_Scale: 1
m_AtlasTextures: m_AtlasTextures:
- {fileID: 948717598527772745} - {fileID: 948717598527772745}
m_AtlasTextureIndex: 0 m_AtlasTextureIndex: 0
@@ -414,43 +794,147 @@ MonoBehaviour:
m_Y: 77 m_Y: 77
m_Width: 46 m_Width: 46
m_Height: 81 m_Height: 81
m_FreeGlyphRects: - m_X: 192
m_Y: 81
m_Width: 46
m_Height: 81
- m_X: 438 - m_X: 438
m_Y: 0 m_Y: 0
m_Width: 585 m_Width: 64
m_Height: 1023 m_Height: 81
- m_X: 374 - m_X: 374
m_Y: 73 m_Y: 73
m_Width: 649 m_Width: 29
m_Height: 950 m_Height: 64
- m_X: 310
m_Y: 136
m_Width: 64
m_Height: 81
- m_X: 238
m_Y: 158
m_Width: 64
m_Height: 81
- m_X: 128
m_Y: 162
m_Width: 64
m_Height: 81
- m_X: 192
m_Y: 162
m_Width: 37
m_Height: 37
- m_X: 64
m_Y: 164
m_Width: 64
m_Height: 81
- m_X: 0
m_Y: 175
m_Width: 64
m_Height: 81
- m_X: 502
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 566
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 630
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 694
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 758
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 822
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 886
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 950
m_Y: 0
m_Width: 64
m_Height: 81
- m_X: 403
m_Y: 81
m_Width: 64
m_Height: 81
- m_X: 467
m_Y: 81
m_Width: 64
m_Height: 81
- m_X: 531
m_Y: 81
m_Width: 64
m_Height: 81
m_FreeGlyphRects:
- m_X: 128 - m_X: 128
m_Y: 28 m_Y: 28
m_Width: 8 m_Width: 8
m_Height: 53 m_Height: 53
- m_X: 128 - m_X: 238
m_Y: 162
m_Width: 895
m_Height: 861
- m_X: 0
m_Y: 175
m_Width: 1023
m_Height: 848
- m_X: 64
m_Y: 164
m_Width: 959
m_Height: 859
- m_X: 192
m_Y: 81 m_Y: 81
m_Width: 72 m_Width: 26
m_Height: 942 m_Height: 77
- m_X: 192 - m_X: 302
m_Y: 217
m_Width: 721
m_Height: 806
- m_X: 302
m_Y: 158 m_Y: 158
m_Width: 831 m_Width: 8
m_Height: 865 m_Height: 865
- m_X: 310 - m_X: 192
m_Y: 136 m_Y: 239
m_Width: 713 m_Width: 831
m_Height: 887 m_Height: 784
- m_X: 192
m_Y: 199
m_Width: 46
m_Height: 824
- m_X: 229
m_Y: 162
m_Width: 9
m_Height: 861
- m_X: 128
m_Y: 243
m_Width: 895
m_Height: 780
- m_X: 0
m_Y: 256
m_Width: 1023
m_Height: 767
- m_X: 64
m_Y: 245
m_Width: 959
m_Height: 778
- m_X: 1014
m_Y: 0
m_Width: 9
m_Height: 1023
- m_X: 403
m_Y: 73
m_Width: 35
m_Height: 8
- m_X: 374
m_Y: 162
m_Width: 649
m_Height: 861
- m_X: 374
m_Y: 137
m_Width: 29
m_Height: 886
- m_X: 595
m_Y: 81
m_Width: 428
m_Height: 942
m_FontFeatureTable: m_FontFeatureTable:
m_MultipleSubstitutionRecords: [] m_MultipleSubstitutionRecords: []
m_LigatureSubstitutionRecords: m_LigatureSubstitutionRecords:
@@ -560,7 +1044,7 @@ Texture2D:
m_ColorSpace: 1 m_ColorSpace: 1
m_PlatformBlob: m_PlatformBlob:
image data: 1048576 image data: 1048576
_typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b0e0e0e0e0e0e0e0e0807050200000306070e0e0e0e0e0e0e0e0c0c0a0602000407090a0e0e0e0e0e0e0e0e090806030000000000000000000000050a0f121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313100f0d090500000000000000000000000005080a0b0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0908060300000000000000000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e0e0e0e0e0c0c0a0602000407090a0e0e0e0e0e0e0e0e09080603000000000000000000000000000000000000000000000000000000000000020507080e0e0e0e0e0e0e0e0b0a08050000000000000000000000000005080a0b0e0e0e0e0e0e0e0e08070502000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e0908060300000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a0805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517181b1b1b1b1b1b1b1b1514120e090c1012131b1b1b1b1b1b1b1b191816120d0b101416171b1b1b1b1b1b1b1b1615130f0a0400000000000000010910161b1e20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1915100a030000000000000000060c111517181b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1615130f0a0400000000000000000000000000000000000000000000050b101316161b1b1b1b1b1b1b1b1b1b1b1b191816120d0b101416171b1b1b1b1b1b1b1b1615130f0a04000000000000000000000000000000000000000000000000000003090e1214151b1b1b1b1b1b1b1b171714110c05000000000000000000060c111517181b1b1b1b1b1b1b1b1514120e0903000000000000000000000000000000050b101416171b1b1b1b1b1b1b1b1615130f0a04000000000000000000000000000000000000070d121619191b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b171714110c05000000000000000000000000000000000000Line truncated _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b0e0e0e0e0e0e0e0e0807050200000306070e0e0e0e0e0e0e0e0c0c0a0602000407090a0e0e0e0e0e0e0e0e090806030000000000000000000000050a0f121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313100f0d090500000000000000000000000005080a0b0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0908060300000000000000000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e0e0e0e0e0c0c0a0602000407090a0e0e0e0e0e0e0e0e09080603000000000000000000000000000000000000000000000000000000000000020507080e0e0e0e0e0e0e0e0b0a08050000000000000000000000000005080a0b0e0e0e0e0e0e0e0e08070502000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e0908060300000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a0805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080e0e0e0e0e0e0e0e0b0a08050000000000000000000000000000000000000000000005080a0b0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0908060300000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a080500000000000000000000000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a080500000000000000000000000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a080500000000000000000000000000000000000000000000000000000000000002060a0c0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0a08050000000000000000000000000000000000000000000005080a0b0e0e0e0e0e0e0e0e08070502000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e090806030000000000000000000000000005080a0b0e0e0e0e0e0e0e0e08070502000000000000000000000000000000000000000407090a0e0e0e0e0e0e0e0e090806030000000000000000000000000005080a0b0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e09080603000000000000000000000000000000000000000000060c111517181b1b1b1b1b1b1b1b1514120e090c1012131b1b1b1b1b1b1b1b191816120d0b101416171b1b1b1b1b1b1b1b1615130f0a0400000000000000010910161b1e20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1915100a030000000000000000060c111517181b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1615130f0a0400000000000000000000000000000000000000000000050b101316161b1b1b1b1b1b1b1b1b1b1b1b191816120d0b101416171b1b1b1b1b1b1b1b1615130f0a04000000000000000000000000000000000000000000000000000003090e1214151b1b1b1b1b1b1b1b171714110c05000000000000000000060c111517181b1b1b1b1b1b1b1b1514120e0903000000000000000000000000000000050b101416171b1b1b1b1b1b1b1b1615130f0a04000000000000000000000000000000000000070d121619191b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b171714110c05000000000000000000000000000000000000Line truncated
m_StreamData: m_StreamData:
serializedVersion: 2 serializedVersion: 2
offset: 0 offset: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dcadf468ce4730e4aa8a33e10b3c1a91
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,553 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &208766333429640312
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1047840484662430186}
m_Layer: 0
m_Name: CameraTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1047840484662430186
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 208766333429640312}
serializedVersion: 2
m_LocalRotation: {x: -0.00000005960463, y: 0.000000028482043, z: -0.0000000031280882, w: 1}
m_LocalPosition: {x: 0, y: 1.562, z: 0.337}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2527703521557431680}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1477319963861932501
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4497607476133863680}
- component: {fileID: 431159069816611448}
- component: {fileID: 6173098626481777258}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4497607476133863680
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1477319963861932501}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4307738931528151573}
m_Father: {fileID: 5944670082409334569}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &431159069816611448
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1477319963861932501}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6173098626481777258
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1477319963861932501}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &5180666550922024311
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2527703521557431680}
- component: {fileID: 3661801025373459518}
- component: {fileID: 2338437892164946760}
- component: {fileID: 3099094249566452406}
- component: {fileID: 3283650228831796584}
- component: {fileID: 6003242550544221350}
m_Layer: 0
m_Name: CharacterController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2527703521557431680
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4122797476271397740}
- {fileID: 1047840484662430186}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!136 &3661801025373459518
CapsuleCollider:
m_ObjectHideFlags: 8
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 1, z: 0}
--- !u!114 &2338437892164946760
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d1bc5515e3ab954e80599c538834774, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::KinematicCharacterController.KinematicCharacterMotor
Capsule: {fileID: 3661801025373459518}
CapsuleRadius: 0.5
CapsuleHeight: 2
CapsuleYOffset: 1
CapsulePhysicsMaterial: {fileID: 0}
GroundDetectionExtraDistance: 0
MaxStableSlopeAngle: 60
StableGroundLayers:
serializedVersion: 2
m_Bits: 4294967295
DiscreteCollisionEvents: 0
StepHandling: 1
MaxStepHeight: 0.5
AllowSteppingWithoutStableGrounding: 0
MinRequiredStepDepth: 0.1
LedgeAndDenivelationHandling: 1
MaxStableDistanceFromLedge: 0.5
MaxVelocityForLedgeSnap: 0
MaxStableDenivelationAngle: 180
InteractiveRigidbodyHandling: 1
RigidbodyInteractionType: 0
SimulatedCharacterMass: 1
PreserveAttachedRigidbodyMomentum: 1
HasPlanarConstraint: 0
PlanarConstraintAxis: {x: 0, y: 0, z: 1}
MaxMovementIterations: 5
MaxDecollisionIterations: 1
CheckMovementInitialOverlaps: 1
KillVelocityWhenExceedMaxMovementIterations: 1
KillRemainingMovementWhenExceedMaxMovementIterations: 1
--- !u!114 &3099094249566452406
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a6f74123648343c498c883d02909b499, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Player.CharacterController
motor: {fileID: 2338437892164946760}
characterTransform: {fileID: 4122797476271397740}
--- !u!114 &3283650228831796584
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b2d4b8256c1f4b3facf6b8d0a7d5256b, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Character.Core.CharacterProvider
customCharacterController: {fileID: 3099094249566452406}
cameraFollowPoint: {fileID: 1047840484662430186}
--- !u!114 &6003242550544221350
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5180666550922024311}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2f94efbea729423596ee5c6ee2366c98, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Player.PlayerAnimator
playerAnimator: {fileID: 111798061881399239}
kinematicCharacterMotor: {fileID: 2338437892164946760}
--- !u!1 &5873422912663271407
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4307738931528151573}
- component: {fileID: 6603601364322459808}
- component: {fileID: 7838213894568550933}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4307738931528151573
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5873422912663271407}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.4, z: 0.4}
m_LocalScale: {x: 0.5, y: 0.2, z: 0.4}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4497607476133863680}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6603601364322459808
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5873422912663271407}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &7838213894568550933
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5873422912663271407}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &6139308014287725242
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6141075408912228788}
m_Layer: 0
m_Name: CameraTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6141075408912228788
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6139308014287725242}
serializedVersion: 2
m_LocalRotation: {x: -0.19689888, y: -0.17914915, z: 0.026098415, w: 0.9635639}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8752029570905317134}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &6821361459989763406
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5944670082409334569}
m_Layer: 0
m_Name: Mesh
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &5944670082409334569
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6821361459989763406}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4497607476133863680}
m_Father: {fileID: 4122797476271397740}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &6986772447496356763
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4122797476271397740}
m_Layer: 0
m_Name: Character
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4122797476271397740
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6986772447496356763}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5944670082409334569}
- {fileID: 2372399278530050576}
m_Father: {fileID: 2527703521557431680}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2839183039212314107
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 4122797476271397740}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
propertyPath: m_Name
value: mp_anim_idle1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: -2444406315379408139, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
insertIndex: -1
addedObject: {fileID: 6141075408912228788}
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
insertIndex: -1
addedObject: {fileID: 111798061881399239}
m_SourcePrefab: {fileID: 100100000, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
--- !u!4 &2372399278530050576 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
m_PrefabInstance: {fileID: 2839183039212314107}
m_PrefabAsset: {fileID: 0}
--- !u!1 &3145663457859035306 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
m_PrefabInstance: {fileID: 2839183039212314107}
m_PrefabAsset: {fileID: 0}
--- !u!95 &111798061881399239
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3145663457859035306}
m_Enabled: 1
m_Avatar: {fileID: 9000000, guid: 02296f680a0e6ed48a92d690d2d82b6e, type: 3}
m_Controller: {fileID: 9100000, guid: af241b6cdcc834345b675ce177ebac79, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!4 &8752029570905317134 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -2444406315379408139, guid: a7e412e490909bf47af7fe22cd5bd0bf, type: 3}
m_PrefabInstance: {fileID: 2839183039212314107}
m_PrefabAsset: {fileID: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 81844a99f5b786b41b831174f8fb6d3a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
-170
View File
@@ -1,170 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &1253837927
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1253837929}
- component: {fileID: 1253837928}
m_Layer: 0
m_Name: SceneScope
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1253837928
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253837927}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3fd1482e4a9dee141aecc5bcd0a4f0f3, type: 3}
m_Name:
m_EditorClassIdentifier: Reflex::Reflex.Core.SceneScope
--- !u!4 &1253837929
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253837927}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 1253837929}