Compare commits
6
Commits
RunAndCry
...
36e6bc3bc2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36e6bc3bc2 | ||
|
|
1e31e1e8b1 | ||
|
|
2897eb88bf | ||
|
|
134adda787 | ||
|
|
2f56a5758d | ||
|
|
fb9510a6b2 |
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: 1290af012af335115858ec31670d830d
|
Hash: 6940a0d24ee0b7d842fd97d11e078c94
|
||||||
m_OptimizeCatalogSize: 0
|
m_OptimizeCatalogSize: 0
|
||||||
m_BuildRemoteCatalog: 0
|
m_BuildRemoteCatalog: 0
|
||||||
m_CatalogRequestsTimeout: 0
|
m_CatalogRequestsTimeout: 0
|
||||||
|
|||||||
@@ -37,6 +37,11 @@ MonoBehaviour:
|
|||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
m_SerializedLabels: []
|
m_SerializedLabels: []
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
|
- m_GUID: 1cc66c0b13a946e1c9ec37026268e144
|
||||||
|
m_Address: Audio/Enemies/pl_metal2
|
||||||
|
m_ReadOnly: 0
|
||||||
|
m_SerializedLabels: []
|
||||||
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: 1d4767c722c05b5d6b96bb226d378c65
|
- m_GUID: 1d4767c722c05b5d6b96bb226d378c65
|
||||||
m_Address: Assets/Resources_moved/Prefabs/Player/ArmsMesh.prefab
|
m_Address: Assets/Resources_moved/Prefabs/Player/ArmsMesh.prefab
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
@@ -72,6 +77,11 @@ MonoBehaviour:
|
|||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
m_SerializedLabels: []
|
m_SerializedLabels: []
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
|
- m_GUID: 2c6a984e4a1b42647b48e6b7bc69b158
|
||||||
|
m_Address: Prefabs/Levels/Level6
|
||||||
|
m_ReadOnly: 0
|
||||||
|
m_SerializedLabels: []
|
||||||
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: 2ed2d93a9f39d4edba511cb7396c7bb6
|
- m_GUID: 2ed2d93a9f39d4edba511cb7396c7bb6
|
||||||
m_Address: Assets/Resources_moved/Prefabs/Enemies/Cockroach.prefab
|
m_Address: Assets/Resources_moved/Prefabs/Enemies/Cockroach.prefab
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
@@ -198,6 +208,11 @@ MonoBehaviour:
|
|||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
m_SerializedLabels: []
|
m_SerializedLabels: []
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
|
- m_GUID: bf87bc9ac43df86be8c818de81d44a54
|
||||||
|
m_Address: Assets/Resources_moved/Audio/SFX/pl_step1.wav
|
||||||
|
m_ReadOnly: 0
|
||||||
|
m_SerializedLabels: []
|
||||||
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: c566fc932edefbbee9e53271eac3c560
|
- m_GUID: c566fc932edefbbee9e53271eac3c560
|
||||||
m_Address: MainMenu
|
m_Address: MainMenu
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
@@ -233,6 +248,11 @@ MonoBehaviour:
|
|||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
m_SerializedLabels: []
|
m_SerializedLabels: []
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
|
- m_GUID: e84e3a3c26ccbd50d92f13627403f148
|
||||||
|
m_Address: Audio/Enemies/rch_walk
|
||||||
|
m_ReadOnly: 0
|
||||||
|
m_SerializedLabels: []
|
||||||
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: ebe18293a5ef86704b23dad3a1786476
|
- m_GUID: ebe18293a5ef86704b23dad3a1786476
|
||||||
m_Address: Half-Life01
|
m_Address: Half-Life01
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d36aab6707c518f5abfd60065165eb35
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d982316b2b4c99747b9e953ae7b9b42f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -56,6 +56,7 @@ namespace Code.App.AppStates
|
|||||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, RoomPassedDEBUG);
|
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, RoomPassedDEBUG);
|
||||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, Tube);
|
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, Tube);
|
||||||
|
|
||||||
|
// Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.DevGen);
|
||||||
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.DevGen);
|
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.DevGen);
|
||||||
Context.LoadingManager.OnLoadingEnded += AfterSceneLoaded;
|
Context.LoadingManager.OnLoadingEnded += AfterSceneLoaded;
|
||||||
|
|
||||||
@@ -71,7 +72,9 @@ namespace Code.App.AppStates
|
|||||||
Context.UIService.AsyncSwitchPanelTo(UIPanel.Gameplay),
|
Context.UIService.AsyncSwitchPanelTo(UIPanel.Gameplay),
|
||||||
Context.AudioFactory.WarmGameplayMusic(),
|
Context.AudioFactory.WarmGameplayMusic(),
|
||||||
Context.AudioFactory.WarmSFX(),
|
Context.AudioFactory.WarmSFX(),
|
||||||
Context.AudioFactory.WarmDispatcher()
|
Context.AudioFactory.WarmDispatcher(),
|
||||||
|
Context.AudioFactory.WarmEnemies(),
|
||||||
|
Context.AudioFactory.WarmCourier()
|
||||||
);
|
);
|
||||||
|
|
||||||
Context.LoadingManager
|
Context.LoadingManager
|
||||||
@@ -91,6 +94,9 @@ namespace Code.App.AppStates
|
|||||||
Context.LoadingManager.OnLoadingEnded -= AfterSceneLoaded;
|
Context.LoadingManager.OnLoadingEnded -= AfterSceneLoaded;
|
||||||
Context.LoadingManager.OnLoadingEnded += AfterPlayerLoaded;
|
Context.LoadingManager.OnLoadingEnded += AfterPlayerLoaded;
|
||||||
|
|
||||||
|
Context.PlayerProvider = SceneManager.GetActiveScene().GetSceneContainer().Resolve<IPlayerProvider>();
|
||||||
|
Context.PlayerFactory = SceneManager.GetActiveScene().GetSceneContainer().Resolve<IPlayerFactory>();
|
||||||
|
|
||||||
await UniTask.WhenAll(
|
await UniTask.WhenAll(
|
||||||
WaitForPlayerArmsToInitialize(),
|
WaitForPlayerArmsToInitialize(),
|
||||||
WaitForPlayerCharacterLoad()
|
WaitForPlayerCharacterLoad()
|
||||||
@@ -203,6 +209,10 @@ namespace Code.App.AppStates
|
|||||||
Context.InputService.DisableMap(ActionMappings.Gameplay);
|
Context.InputService.DisableMap(ActionMappings.Gameplay);
|
||||||
Context.AudioService.GladlyAskToStopMusic(MusicType.Action, callback: Context.AudioFactory.ReleaseActionMusic);
|
Context.AudioService.GladlyAskToStopMusic(MusicType.Action, callback: Context.AudioFactory.ReleaseActionMusic);
|
||||||
Context.AudioService.GladlyAskToStopMusic(MusicType.Peaceful, callback: Context.AudioFactory.ReleasePeacefulMusic);
|
Context.AudioService.GladlyAskToStopMusic(MusicType.Peaceful, callback: Context.AudioFactory.ReleasePeacefulMusic);
|
||||||
|
Context.AudioFactory.ReleaseCourier();
|
||||||
|
Context.AudioFactory.ReleaseDispatcher();
|
||||||
|
Context.AudioFactory.ReleaseEnemies();
|
||||||
|
Context.AudioFactory.ReleaseSFX();
|
||||||
|
|
||||||
|
|
||||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, InstaKillDEBUG);
|
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, InstaKillDEBUG);
|
||||||
|
|||||||
@@ -33,11 +33,7 @@ namespace Code.App
|
|||||||
containerBuilder.AddSingleton(typeof(LoadingManager), typeof(ILoadingManager));
|
containerBuilder.AddSingleton(typeof(LoadingManager), typeof(ILoadingManager));
|
||||||
|
|
||||||
containerBuilder.AddSingleton(typeof(InputService), typeof(IInputService));
|
containerBuilder.AddSingleton(typeof(InputService), typeof(IInputService));
|
||||||
// Перенести нахуй в контейнер геймплея
|
|
||||||
containerBuilder.AddSingleton(typeof(PlayerFactory), typeof(IPlayerFactory));
|
|
||||||
containerBuilder.AddSingleton(typeof(EnemyFactory), typeof(IEnemyFactory));
|
|
||||||
containerBuilder.AddSingleton(typeof(PlayerProvider), typeof(IPlayerProvider));
|
|
||||||
//
|
|
||||||
InitializeCamera(containerBuilder, staticDataService);
|
InitializeCamera(containerBuilder, staticDataService);
|
||||||
|
|
||||||
containerBuilder.AddSingleton(typeof(UIFactory), typeof(IUIFactory));
|
containerBuilder.AddSingleton(typeof(UIFactory), typeof(IUIFactory));
|
||||||
@@ -97,6 +93,7 @@ namespace Code.App
|
|||||||
containerBuilder.AddSingleton(staticDataService.SoundtrackListConfig, typeof(SoundtrackListConfig));
|
containerBuilder.AddSingleton(staticDataService.SoundtrackListConfig, typeof(SoundtrackListConfig));
|
||||||
containerBuilder.AddSingleton(staticDataService.AudioTestClipsConfig, typeof(AudioTestClipsConfig));
|
containerBuilder.AddSingleton(staticDataService.AudioTestClipsConfig, typeof(AudioTestClipsConfig));
|
||||||
containerBuilder.AddSingleton(staticDataService.SFXListConfig, typeof(SFXListConfig));
|
containerBuilder.AddSingleton(staticDataService.SFXListConfig, typeof(SFXListConfig));
|
||||||
|
containerBuilder.AddSingleton(staticDataService.CourierSoundListConfig, typeof(CourierSoundListConfig));
|
||||||
containerBuilder.AddSingleton(staticDataService.DispatcherSoundListConfig, typeof(DispatcherSoundListConfig));
|
containerBuilder.AddSingleton(staticDataService.DispatcherSoundListConfig, typeof(DispatcherSoundListConfig));
|
||||||
containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig));
|
containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig));
|
||||||
containerBuilder.AddSingleton(staticDataService.AudioSourceSettingsConfigs, typeof(Dictionary<AudioSourceType, AudioSourceSettingsConfig>));
|
containerBuilder.AddSingleton(staticDataService.AudioSourceSettingsConfigs, typeof(Dictionary<AudioSourceType, AudioSourceSettingsConfig>));
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Code.App.Loading;
|
using Code.App.Loading;
|
||||||
|
using Code.Gameplay.Enemies;
|
||||||
using Code.Gameplay.Orders.Order;
|
using Code.Gameplay.Orders.Order;
|
||||||
using Code.Gameplay.Player;
|
using Code.Gameplay.Player;
|
||||||
using Code.Generator;
|
using Code.Generator;
|
||||||
@@ -21,6 +22,9 @@ namespace Code.App.SceneInstallers
|
|||||||
containerBuilder.AddScoped(typeof(PlayerScore), typeof(IPlayerScore));
|
containerBuilder.AddScoped(typeof(PlayerScore), typeof(IPlayerScore));
|
||||||
containerBuilder.AddScoped(typeof(OrderService), typeof(IOrderService));
|
containerBuilder.AddScoped(typeof(OrderService), typeof(IOrderService));
|
||||||
containerBuilder.AddScoped(typeof(RoomGeneratorFactory), typeof(IRoomGeneratorFactory));
|
containerBuilder.AddScoped(typeof(RoomGeneratorFactory), typeof(IRoomGeneratorFactory));
|
||||||
|
containerBuilder.AddScoped(typeof(PlayerProvider), typeof(IPlayerProvider));
|
||||||
|
containerBuilder.AddScoped(typeof(PlayerFactory), typeof(IPlayerFactory));
|
||||||
|
containerBuilder.AddScoped(typeof(EnemyFactory), typeof(IEnemyFactory));
|
||||||
containerBuilder.AddScoped(typeof(RoomGenerator));
|
containerBuilder.AddScoped(typeof(RoomGenerator));
|
||||||
|
|
||||||
containerBuilder.OnContainerBuilt += Initialize;
|
containerBuilder.OnContainerBuilt += Initialize;
|
||||||
@@ -37,7 +41,7 @@ namespace Code.App.SceneInstallers
|
|||||||
loadingManager
|
loadingManager
|
||||||
.UnregisterLoading(LoadingWork.LoadScene);
|
.UnregisterLoading(LoadingWork.LoadScene);
|
||||||
|
|
||||||
LoadRooms(container,loadingManager);
|
LoadRooms(container,loadingManager).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async UniTaskVoid LoadRooms(Container container, ILoadingManager loadingManager)
|
private async UniTaskVoid LoadRooms(Container container, ILoadingManager loadingManager)
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ namespace Code.App.StateMachine
|
|||||||
[Inject] public AppStateMachine StateMachine { get; private set; }
|
[Inject] public AppStateMachine StateMachine { get; private set; }
|
||||||
[Inject] public CameraStateMachine CameraStateMachine { get; private set; }
|
[Inject] public CameraStateMachine CameraStateMachine { get; private set; }
|
||||||
[Inject] public IUIService UIService { get; private set; }
|
[Inject] public IUIService UIService { get; private set; }
|
||||||
[Inject] public IPlayerFactory PlayerFactory { get; private set; }
|
|
||||||
[Inject] public IPlayerProvider PlayerProvider { get; private set; }
|
|
||||||
[Inject] public IAudioFactory AudioFactory { get; private set; }
|
[Inject] public IAudioFactory AudioFactory { get; private set; }
|
||||||
[Inject] public IAudioService AudioService { get; private set; }
|
[Inject] public IAudioService AudioService { get; private set; }
|
||||||
[Inject] public IEnemyFactory EnemyFactory { get; private set; }
|
/*[Inject]*/public IPlayerFactory PlayerFactory { get; set; }
|
||||||
|
/*[Inject]*/public IPlayerProvider PlayerProvider { get; set; }
|
||||||
|
// [Inject] public IEnemyFactory EnemyFactory { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,9 @@ namespace Code.Audio
|
|||||||
public enum EnemiesSounds
|
public enum EnemiesSounds
|
||||||
{
|
{
|
||||||
Bastard,
|
Bastard,
|
||||||
Bravo
|
Bravo,
|
||||||
|
RoachStep,
|
||||||
|
GrandpaStep
|
||||||
}
|
}
|
||||||
public enum DispatcherSounds
|
public enum DispatcherSounds
|
||||||
{
|
{
|
||||||
@@ -28,4 +30,8 @@ namespace Code.Audio
|
|||||||
Late4,
|
Late4,
|
||||||
Late5
|
Late5
|
||||||
}
|
}
|
||||||
|
public enum CourierSounds
|
||||||
|
{
|
||||||
|
Step
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,7 @@ namespace Code.Audio
|
|||||||
private AssetReference[] _SFX;
|
private AssetReference[] _SFX;
|
||||||
private AssetReference[] _enemies;
|
private AssetReference[] _enemies;
|
||||||
private AssetReference[] _dispatcher;
|
private AssetReference[] _dispatcher;
|
||||||
private AssetReference[] _character;
|
private AssetReference[] _courier;
|
||||||
|
|
||||||
private AsyncOperationHandle<IList<AudioClip>> _audioTestClipsHandle;
|
private AsyncOperationHandle<IList<AudioClip>> _audioTestClipsHandle;
|
||||||
private AsyncOperationHandle<IList<AudioClip>> _menuMusicHandle;
|
private AsyncOperationHandle<IList<AudioClip>> _menuMusicHandle;
|
||||||
@@ -32,11 +32,13 @@ namespace Code.Audio
|
|||||||
private AsyncOperationHandle<IList<AudioClip>> _SFXHandle;
|
private AsyncOperationHandle<IList<AudioClip>> _SFXHandle;
|
||||||
private AsyncOperationHandle<IList<AudioClip>> _enemiesHandle;
|
private AsyncOperationHandle<IList<AudioClip>> _enemiesHandle;
|
||||||
private AsyncOperationHandle<IList<AudioClip>> _dispatcherHandle;
|
private AsyncOperationHandle<IList<AudioClip>> _dispatcherHandle;
|
||||||
|
private AsyncOperationHandle<IList<AudioClip>> _courierHandle;
|
||||||
|
|
||||||
public Dictionary<AudioType, AudioClip> AudioTestClips { get; private set; } = new();
|
public Dictionary<AudioType, AudioClip> AudioTestClips { get; private set; } = new();
|
||||||
public Dictionary<MusicType, List<AudioClip>> MusicDictionary { get; private set; } = new();
|
public Dictionary<MusicType, List<AudioClip>> MusicDictionary { 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> CourierAudios { get; private set; } = new();
|
||||||
public List<AudioClip> DispatcherAudios { get; private set; } = new();
|
public List<AudioClip> DispatcherAudios { get; private set; } = new();
|
||||||
|
|
||||||
public AudioFactory(AudioMixerConfig audioMixerConfig,
|
public AudioFactory(AudioMixerConfig audioMixerConfig,
|
||||||
@@ -44,7 +46,8 @@ namespace Code.Audio
|
|||||||
SFXListConfig sfxListConfig,
|
SFXListConfig sfxListConfig,
|
||||||
EnemiesSoundListConfig enemiesSoundListConfig,
|
EnemiesSoundListConfig enemiesSoundListConfig,
|
||||||
DispatcherSoundListConfig dispatcherSoundListConfig,
|
DispatcherSoundListConfig dispatcherSoundListConfig,
|
||||||
AudioTestClipsConfig audioTestClipsConfig
|
AudioTestClipsConfig audioTestClipsConfig,
|
||||||
|
CourierSoundListConfig courierSoundListConfig
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
AudioMixer = audioMixerConfig.audioMixerAsset;
|
AudioMixer = audioMixerConfig.audioMixerAsset;
|
||||||
@@ -56,6 +59,7 @@ namespace Code.Audio
|
|||||||
_SFX = sfxListConfig.SFX;
|
_SFX = sfxListConfig.SFX;
|
||||||
_enemies = enemiesSoundListConfig.enemies;
|
_enemies = enemiesSoundListConfig.enemies;
|
||||||
_dispatcher = dispatcherSoundListConfig.dispatcher;
|
_dispatcher = dispatcherSoundListConfig.dispatcher;
|
||||||
|
_courier = courierSoundListConfig.courierSounds;
|
||||||
_audioTestClipsReferences = audioTestClipsConfig.audioTestClips;
|
_audioTestClipsReferences = audioTestClipsConfig.audioTestClips;
|
||||||
|
|
||||||
MusicDictionary.Add(MusicType.Menu, new ());
|
MusicDictionary.Add(MusicType.Menu, new ());
|
||||||
@@ -137,6 +141,18 @@ namespace Code.Audio
|
|||||||
EnemiesAudios.Clear();
|
EnemiesAudios.Clear();
|
||||||
_enemiesHandle.Release();
|
_enemiesHandle.Release();
|
||||||
}
|
}
|
||||||
|
public async UniTask WarmCourier()
|
||||||
|
{
|
||||||
|
_courierHandle = Addressables.LoadAssetsAsync<AudioClip>(_courier, OnCourierLoaded, Addressables.MergeMode.Union);
|
||||||
|
|
||||||
|
await _courierHandle.ToUniTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ReleaseCourier()
|
||||||
|
{
|
||||||
|
CourierAudios.Clear();
|
||||||
|
_courierHandle.Release();
|
||||||
|
}
|
||||||
|
|
||||||
public async UniTask WarmDispatcher( )
|
public async UniTask WarmDispatcher( )
|
||||||
{
|
{
|
||||||
@@ -182,5 +198,9 @@ namespace Code.Audio
|
|||||||
{
|
{
|
||||||
DispatcherAudios.Add(audioClip);
|
DispatcherAudios.Add(audioClip);
|
||||||
}
|
}
|
||||||
|
private void OnCourierLoaded(AudioClip audioClip)
|
||||||
|
{
|
||||||
|
CourierAudios.Add(audioClip);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,17 +22,7 @@ namespace Code.Audio
|
|||||||
private AudioSource _actionMusicSource;
|
private AudioSource _actionMusicSource;
|
||||||
private AudioSource _peacefulMusicSource;
|
private AudioSource _peacefulMusicSource;
|
||||||
|
|
||||||
private AudioMixerGroup _masterGroup,
|
private Dictionary<AudioType,AudioMixerGroup> _audioMixerGroups = new ();
|
||||||
// _musicGroup,
|
|
||||||
_actionMusicGroup,
|
|
||||||
_menuMusicGroup,
|
|
||||||
_peacefulMusicGroup,
|
|
||||||
_SFXGroup,
|
|
||||||
_creaturesGroup,
|
|
||||||
_dispatcherGroup,
|
|
||||||
_courierGroup,
|
|
||||||
_enemiesGroup;
|
|
||||||
|
|
||||||
private readonly AudioSourcePool _audioSourcePool;
|
private readonly AudioSourcePool _audioSourcePool;
|
||||||
|
|
||||||
private Dictionary<AudioSnapshotState, AudioMixerSnapshot> _snapshots = new();
|
private Dictionary<AudioSnapshotState, AudioMixerSnapshot> _snapshots = new();
|
||||||
@@ -48,81 +38,47 @@ namespace Code.Audio
|
|||||||
// TODO Грязно, убрать снапшоты НАХУЙ
|
// TODO Грязно, убрать снапшоты НАХУЙ
|
||||||
public float GetSetting(AudioType type)
|
public float GetSetting(AudioType type)
|
||||||
{
|
{
|
||||||
float value;
|
_snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_audioMixerGroups[type].name, out float value);
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case AudioType.SFX:
|
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_SFXGroup.name, out value);
|
|
||||||
break;
|
|
||||||
case AudioType.Master:
|
|
||||||
_snapshots[AudioSnapshotState.Menu].audioMixer.GetFloat(_masterGroup.name, out value);
|
|
||||||
break;
|
|
||||||
case AudioType.Creatures:
|
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_creaturesGroup.name, out value);
|
|
||||||
break;
|
|
||||||
case AudioType.GameplayMusic:
|
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_peacefulMusicGroup.name, out value);
|
|
||||||
break;
|
|
||||||
case AudioType.MenuMusic:
|
|
||||||
_snapshots[AudioSnapshotState.Menu].audioMixer.GetFloat(_menuMusicGroup.name, out value);
|
|
||||||
break;
|
|
||||||
case AudioType.DispatcherSounds:
|
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.GetFloat(_dispatcherGroup.name, out value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
value = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
value = Mathf.Pow(10f, value / 20);
|
value = Mathf.Pow(10f, value / 20);
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Грязно, убрать снапшоты НАХУЙ
|
|
||||||
public void ChangeSetting(AudioType type, float value)
|
public void ChangeSetting(AudioType type, float value)
|
||||||
{
|
{
|
||||||
float volume = Mathf.Log10(value) * 20;
|
float volume = Mathf.Log10(value) * 20;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case AudioType.SFX:
|
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_SFXGroup.name, volume);
|
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_SFXGroup.name, volume);
|
|
||||||
break;
|
|
||||||
case AudioType.Master:
|
case AudioType.Master:
|
||||||
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_masterGroup.name, volume);
|
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_masterGroup.name, volume);
|
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_masterGroup.name, volume);
|
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
break;
|
break;
|
||||||
case AudioType.Creatures:
|
case AudioType.ActionMusic:
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_creaturesGroup.name, volume);
|
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_creaturesGroup.name, volume);
|
|
||||||
break;
|
break;
|
||||||
case AudioType.GameplayMusic:
|
case AudioType.PeacefulMusic:
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_peacefulMusicGroup.name, volume);
|
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_actionMusicGroup.name, volume);
|
|
||||||
break;
|
break;
|
||||||
case AudioType.MenuMusic:
|
case AudioType.MenuMusic:
|
||||||
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_menuMusicGroup.name, volume);
|
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
break;
|
break;
|
||||||
|
case AudioType.Creatures:
|
||||||
|
case AudioType.SFX:
|
||||||
case AudioType.DispatcherSounds:
|
case AudioType.DispatcherSounds:
|
||||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_dispatcherGroup.name, volume);
|
case AudioType.Courier:
|
||||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_dispatcherGroup.name, volume);
|
case AudioType.Enemies:
|
||||||
|
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
|
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// _mixer.FindSnapshot("Action").audioMixer.SetFloat("music", volume);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async UniTask Initialize()
|
public async UniTask Initialize()
|
||||||
{
|
{
|
||||||
// _mixer = await _audioFactory.CreateMixer();
|
|
||||||
_mixer = _audioFactory.AudioMixer;
|
_mixer = _audioFactory.AudioMixer;
|
||||||
|
|
||||||
_masterGroup = _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0];
|
|
||||||
_menuMusicGroup = _mixer.FindMatchingGroups(AudioGroups.MenuMusicGroup)[0];
|
|
||||||
_actionMusicGroup = _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0];
|
|
||||||
_peacefulMusicGroup = _mixer.FindMatchingGroups(AudioGroups.PeacefulMusicGroup)[0];
|
|
||||||
// _musicGroup = _mixer.FindMatchingGroups(AudioGroups.MusicGroup)[0];
|
|
||||||
_musicAudioGroups.Add(MusicType.Menu, _mixer.FindMatchingGroups(AudioGroups.MenuMusicGroup)[0]);
|
_musicAudioGroups.Add(MusicType.Menu, _mixer.FindMatchingGroups(AudioGroups.MenuMusicGroup)[0]);
|
||||||
_musicAudioGroups.Add(MusicType.Action, _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0]);
|
_musicAudioGroups.Add(MusicType.Action, _mixer.FindMatchingGroups(AudioGroups.ActionMusicGroup)[0]);
|
||||||
_musicAudioGroups.Add(MusicType.Peaceful, _mixer.FindMatchingGroups(AudioGroups.PeacefulMusicGroup)[0]);
|
_musicAudioGroups.Add(MusicType.Peaceful, _mixer.FindMatchingGroups(AudioGroups.PeacefulMusicGroup)[0]);
|
||||||
@@ -135,16 +91,20 @@ namespace Code.Audio
|
|||||||
_musicAudioSources.Add(MusicType.Action, null);
|
_musicAudioSources.Add(MusicType.Action, null);
|
||||||
_musicAudioSources.Add(MusicType.Peaceful, null);
|
_musicAudioSources.Add(MusicType.Peaceful, null);
|
||||||
|
|
||||||
_SFXGroup = _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0];
|
_audioMixerGroups.Add(AudioType.Master, _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0]);
|
||||||
_creaturesGroup = _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0];
|
_audioMixerGroups.Add(AudioType.SFX, _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]);
|
||||||
_dispatcherGroup = _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0];
|
_audioMixerGroups.Add(AudioType.Creatures, _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0]);
|
||||||
_courierGroup = _mixer.FindMatchingGroups(AudioGroups.CourierMusicGroup)[0];
|
_audioMixerGroups.Add(AudioType.DispatcherSounds, _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]);
|
||||||
_enemiesGroup = _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0];
|
_audioMixerGroups.Add(AudioType.Courier, _mixer.FindMatchingGroups(AudioGroups.CourierGroup)[0]);
|
||||||
|
_audioMixerGroups.Add(AudioType.Enemies, _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0]);
|
||||||
|
_audioMixerGroups.Add(AudioType.MenuMusic, _musicAudioGroups[MusicType.Menu]);
|
||||||
|
_audioMixerGroups.Add(AudioType.ActionMusic, _musicAudioGroups[MusicType.Action]);
|
||||||
|
_audioMixerGroups.Add(AudioType.PeacefulMusic, _musicAudioGroups[MusicType.Peaceful]);
|
||||||
|
|
||||||
_snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot);
|
_snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot);
|
||||||
_snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot);
|
|
||||||
_snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot);
|
|
||||||
_snapshots[AudioSnapshotState.Menu] = _mixer.FindSnapshot(AudioGroups.MenuSnapshot);
|
_snapshots[AudioSnapshotState.Menu] = _mixer.FindSnapshot(AudioGroups.MenuSnapshot);
|
||||||
|
_snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot);
|
||||||
|
_snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot);
|
||||||
|
|
||||||
await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize);
|
await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize);
|
||||||
}
|
}
|
||||||
@@ -173,15 +133,12 @@ namespace Code.Audio
|
|||||||
// _ => !_musicAudioSources[musicType].isPlaying,
|
// _ => !_musicAudioSources[musicType].isPlaying,
|
||||||
// cancellationToken: _cancellationTokenSources[musicType].Token);
|
// cancellationToken: _cancellationTokenSources[musicType].Token);
|
||||||
await UniTask.NextFrame();
|
await UniTask.NextFrame();
|
||||||
// Debug.Log($"Playing {musicType}");
|
|
||||||
var (isCanceled, _) = await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
|
var (isCanceled, _) = await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
|
||||||
_ => !_musicAudioSources[musicType].isPlaying,
|
_ => !_musicAudioSources[musicType].isPlaying,
|
||||||
cancellationToken: _cancellationTokenSources[musicType].Token).SuppressCancellationThrow();
|
cancellationToken: _cancellationTokenSources[musicType].Token).SuppressCancellationThrow();
|
||||||
// Debug.Log($"Finished {musicType}");
|
|
||||||
|
|
||||||
if (isCanceled)
|
if (isCanceled)
|
||||||
{
|
{
|
||||||
// Debug.Log($"Cancelled {musicType}");
|
|
||||||
_cancellationTokenSources[musicType].Dispose();
|
_cancellationTokenSources[musicType].Dispose();
|
||||||
_cancellationTokenSources[musicType] = new();
|
_cancellationTokenSources[musicType] = new();
|
||||||
|
|
||||||
@@ -227,17 +184,19 @@ namespace Code.Audio
|
|||||||
_snapshots[state].TransitionTo(time);
|
_snapshots[state].TransitionTo(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
|
|
||||||
public void PlaySFX(SFXSounds sfxId, Vector3 position)
|
public void PlaySFX(SFXSounds sfxId, Vector3 position)
|
||||||
{
|
{
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _SFXGroup);
|
_audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _audioMixerGroups[AudioType.SFX]).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
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, _audioMixerGroups[AudioType.Enemies]).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AudioSource GetSourceOfGroup(AudioType group) => _audioSourcePool.GetSource();
|
||||||
|
public void ReleaseSourceOfGroup(AudioSource source) => _audioSourcePool.ReleaseSource(source);
|
||||||
|
|
||||||
// Чинить долго и дорого пусть Артёмов будет много, ведь он наш друг
|
// Чинить долго и дорого пусть Артёмов будет много, ведь он наш друг
|
||||||
public event IAudioService.OnAudioPlayingDelegate OnDispatcherStarted;
|
public event IAudioService.OnAudioPlayingDelegate OnDispatcherStarted;
|
||||||
public event IAudioService.OnAudioPlayingDelegate OnDispatcherEnded;
|
public event IAudioService.OnAudioPlayingDelegate OnDispatcherEnded;
|
||||||
@@ -245,12 +204,13 @@ namespace Code.Audio
|
|||||||
public void PlayDispatcher(DispatcherSounds dispatcherSoundId)
|
public void PlayDispatcher(DispatcherSounds dispatcherSoundId)
|
||||||
{
|
{
|
||||||
OnDispatcherStarted?.Invoke();
|
OnDispatcherStarted?.Invoke();
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _dispatcherGroup,
|
_audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _audioMixerGroups[AudioType.DispatcherSounds],
|
||||||
AudioSourceType.NoBlend, () => OnDispatcherEnded?.Invoke());
|
AudioSourceType.NoBlend, () => OnDispatcherEnded?.Invoke()).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
private CancellationTokenSource _testClipCancellationTokenSource = new();
|
private CancellationTokenSource _testClipCancellationTokenSource = new();
|
||||||
private void ResetCurrentTestAudioSource() => _currentTestClipAudioType = AudioType.Master;
|
private void ResetCurrentTestAudioSource() => _currentTestClipAudioType = AudioType.Master;
|
||||||
|
private AudioType _currentTestClipAudioType;
|
||||||
// TODO Засунуть в словарь
|
// TODO Засунуть в словарь
|
||||||
public void PlayTestClip(AudioType audioType)
|
public void PlayTestClip(AudioType audioType)
|
||||||
{
|
{
|
||||||
@@ -261,92 +221,10 @@ namespace Code.Audio
|
|||||||
|
|
||||||
_currentTestClipAudioType = audioType;
|
_currentTestClipAudioType = audioType;
|
||||||
|
|
||||||
switch (audioType)
|
|
||||||
{
|
|
||||||
case AudioType.SFX:
|
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
||||||
_SFXGroup, _testClipCancellationTokenSource,
|
_audioMixerGroups[audioType], _testClipCancellationTokenSource,
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
AudioSourceType.NoBlend, ResetCurrentTestAudioSource).Forget();
|
||||||
break;
|
|
||||||
case AudioType.Master:
|
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
|
||||||
_masterGroup, _testClipCancellationTokenSource,
|
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
|
||||||
break;
|
|
||||||
case AudioType.Creatures:
|
|
||||||
_audioSourcePool.PlayOneShot( _audioFactory.AudioTestClips[audioType],
|
|
||||||
_creaturesGroup, _testClipCancellationTokenSource,
|
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
|
||||||
break;
|
|
||||||
case AudioType.GameplayMusic:
|
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
|
||||||
_actionMusicGroup, _testClipCancellationTokenSource,
|
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
|
||||||
break;
|
|
||||||
case AudioType.MenuMusic:
|
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
|
||||||
_menuMusicGroup, _testClipCancellationTokenSource,
|
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
|
||||||
break;
|
|
||||||
case AudioType.DispatcherSounds:
|
|
||||||
_audioSourcePool.PlayOneShot(_audioFactory.AudioTestClips[audioType],
|
|
||||||
_dispatcherGroup, _testClipCancellationTokenSource,
|
|
||||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private AudioSource _testClipAudioSource;
|
|
||||||
private AudioType _currentTestClipAudioType;
|
|
||||||
|
|
||||||
// Эффективно и просто, может не так хитровыебано
|
|
||||||
private void ReleaseTestAudioClipSource()
|
|
||||||
{
|
|
||||||
_testClipAudioSource = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO Засунуть в словарь
|
|
||||||
public void PlayTestClipDeprecated(AudioType audioType)
|
|
||||||
{
|
|
||||||
if (!_testClipAudioSource) _testClipAudioSource = _audioSourcePool.GetSource();
|
|
||||||
else if (_currentTestClipAudioType != audioType) _testClipAudioSource.Stop();
|
|
||||||
else return;
|
|
||||||
|
|
||||||
_currentTestClipAudioType = audioType;
|
|
||||||
|
|
||||||
switch (audioType)
|
|
||||||
{
|
|
||||||
case AudioType.SFX:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_SFXGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
case AudioType.Master:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_masterGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
case AudioType.Creatures:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_creaturesGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
case AudioType.GameplayMusic:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_actionMusicGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
case AudioType.MenuMusic:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_menuMusicGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
case AudioType.DispatcherSounds:
|
|
||||||
_audioSourcePool.PlayOneShot(_testClipAudioSource, _audioFactory.AudioTestClips[audioType],
|
|
||||||
_dispatcherGroup,
|
|
||||||
AudioSourceType.NoBlend, ReleaseTestAudioClipSource);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,7 @@ namespace Code.Audio
|
|||||||
List<AudioClip> SFXAudios { get; }
|
List<AudioClip> SFXAudios { get; }
|
||||||
List<AudioClip> EnemiesAudios { get; }
|
List<AudioClip> EnemiesAudios { get; }
|
||||||
List<AudioClip> DispatcherAudios { get; }
|
List<AudioClip> DispatcherAudios { get; }
|
||||||
|
List<AudioClip> CourierAudios { get; }
|
||||||
UniTask LoadAudioSourcePrefab(Action<GameObject> callback);
|
UniTask LoadAudioSourcePrefab(Action<GameObject> callback);
|
||||||
UniTask WarmGameplayMusic( );
|
UniTask WarmGameplayMusic( );
|
||||||
void ReleaseActionMusic();
|
void ReleaseActionMusic();
|
||||||
@@ -28,5 +29,7 @@ namespace Code.Audio
|
|||||||
void ReleaseEnemies();
|
void ReleaseEnemies();
|
||||||
UniTask WarmDispatcher( );
|
UniTask WarmDispatcher( );
|
||||||
void ReleaseDispatcher();
|
void ReleaseDispatcher();
|
||||||
|
UniTask WarmCourier();
|
||||||
|
void ReleaseCourier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,5 +23,7 @@ namespace Code.Audio
|
|||||||
void ChangeSetting(AudioType type, float value);
|
void ChangeSetting(AudioType type, float value);
|
||||||
float GetSetting(AudioType type);
|
float GetSetting(AudioType type);
|
||||||
void PlayTestClip(AudioType audioType);
|
void PlayTestClip(AudioType audioType);
|
||||||
|
AudioSource GetSourceOfGroup(AudioType group);
|
||||||
|
void ReleaseSourceOfGroup(AudioSource source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,9 +10,12 @@ namespace Code.Audio
|
|||||||
{
|
{
|
||||||
Master,
|
Master,
|
||||||
MenuMusic,
|
MenuMusic,
|
||||||
GameplayMusic,
|
|
||||||
Creatures,
|
Creatures,
|
||||||
DispatcherSounds,
|
DispatcherSounds,
|
||||||
SFX
|
SFX,
|
||||||
|
Courier,
|
||||||
|
Enemies,
|
||||||
|
ActionMusic,
|
||||||
|
PeacefulMusic
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using UnityEngine.AddressableAssets;
|
|
||||||
|
|
||||||
namespace Code.Configs
|
|
||||||
{
|
|
||||||
[CreateAssetMenu(menuName = "Config/Audio/CharacterSoundList", fileName = "CharacterSoundListConfig")]
|
|
||||||
public class CharacterSoundListConfig : ScriptableObject
|
|
||||||
{
|
|
||||||
public AssetReference[] character;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.AddressableAssets;
|
||||||
|
|
||||||
|
namespace Code.Configs
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(menuName = "Config/Audio/CourierSoundListConfig", fileName = "CourierSoundListConfig")]
|
||||||
|
public class CourierSoundListConfig : ScriptableObject
|
||||||
|
{
|
||||||
|
public AssetReference[] courierSounds;
|
||||||
|
}
|
||||||
|
}
|
||||||
File renamed without changes.
@@ -0,0 +1,10 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Configs
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(menuName = "Config/Audio/MusicPlayer", fileName = "MusicPlayerConfig")]
|
||||||
|
public class MusicPlayerConfig : ScriptableObject
|
||||||
|
{
|
||||||
|
public float threshold = 0.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8708e3c129d241b08563f1a170bd3a44
|
||||||
|
timeCreated: 1764585060
|
||||||
@@ -19,7 +19,7 @@ namespace Code.Constants
|
|||||||
public const string PeacefulMusicGroup = "Peaceful";
|
public const string PeacefulMusicGroup = "Peaceful";
|
||||||
public const string ActionMusicGroup = "Action";
|
public const string ActionMusicGroup = "Action";
|
||||||
public const string DispatcherMusicGroup = "Dispatcher";
|
public const string DispatcherMusicGroup = "Dispatcher";
|
||||||
public const string CourierMusicGroup = "Courier";
|
public const string CourierGroup = "Courier";
|
||||||
public const string EnemiesMusicGroup = "Enemies";
|
public const string EnemiesMusicGroup = "Enemies";
|
||||||
|
|
||||||
public const string PeacefulSnapshot = "Peaceful";
|
public const string PeacefulSnapshot = "Peaceful";
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ namespace Code.Gameplay.Camera.CameraStates
|
|||||||
CurrentDistance = 0f;
|
CurrentDistance = 0f;
|
||||||
|
|
||||||
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.FirstPerson].fov;
|
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.FirstPerson].fov;
|
||||||
|
|
||||||
|
Cursor.lockState = CursorLockMode.Locked;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ namespace Code.Gameplay.Camera.CameraStates
|
|||||||
base.EnterState();
|
base.EnterState();
|
||||||
|
|
||||||
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.MainMenu].fov;
|
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.MainMenu].fov;
|
||||||
|
Cursor.lockState = CursorLockMode.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ namespace Code.Gameplay.Camera.CameraStates
|
|||||||
base.EnterState();
|
base.EnterState();
|
||||||
|
|
||||||
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.Static].fov;
|
Camera.fieldOfView = Context.CameraSettingsConfigs[CameraMode.Static].fov;
|
||||||
|
Cursor.lockState = CursorLockMode.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
|
using DG.Tweening;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Gameplay.Door
|
namespace Code.Gameplay.Door
|
||||||
{
|
{
|
||||||
public class Door : MonoBehaviour
|
public class Door : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
[SerializeField] private Transform doorPolotno;
|
||||||
|
private Vector3 _doorInitialPosition;
|
||||||
|
private Quaternion _doorInitialRotation;
|
||||||
[SerializeField] private Transform hingeJointAnchor;
|
[SerializeField] private Transform hingeJointAnchor;
|
||||||
[SerializeField] private HingeJoint hingeJoint;
|
[SerializeField] private HingeJoint hingeJoint;
|
||||||
[SerializeField] private Rigidbody rigidbody;
|
[SerializeField] private Rigidbody rigidbody;
|
||||||
@@ -15,9 +19,19 @@ namespace Code.Gameplay.Door
|
|||||||
rigidbody.isKinematic = true;
|
rigidbody.isKinematic = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
_doorInitialPosition = doorPolotno.position;
|
||||||
|
_doorInitialRotation = doorPolotno.rotation;
|
||||||
|
|
||||||
rigidbody.isKinematic = false;
|
rigidbody.isKinematic = false;
|
||||||
hingeJoint.autoConfigureConnectedAnchor = false;
|
hingeJoint.autoConfigureConnectedAnchor = false;
|
||||||
hingeJoint.connectedAnchor = hingeJointAnchor.position;
|
hingeJoint.connectedAnchor = hingeJointAnchor.position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CloseTheDoor()
|
||||||
|
{
|
||||||
|
TranslationMode(true);
|
||||||
|
doorPolotno.DORotate(_doorInitialRotation.eulerAngles, 0.5f);
|
||||||
|
doorPolotno.DOMove(_doorInitialPosition, 0.5f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
using DG.Tweening;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Door
|
||||||
|
{
|
||||||
|
public class DoorDebug : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Transform doorSelf;
|
||||||
|
[SerializeField] private Transform doorPolotno;
|
||||||
|
private Vector3 _doorInitialPosition;
|
||||||
|
private Quaternion _doorInitialRotation;
|
||||||
|
[SerializeField] private Transform hingeJointAnchor;
|
||||||
|
[SerializeField] private HingeJoint hingeJoint;
|
||||||
|
[SerializeField] private Rigidbody rigidbody;
|
||||||
|
[SerializeField] private bool debug;
|
||||||
|
[SerializeField] private bool closed;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_doorInitialPosition = doorPolotno.position;
|
||||||
|
_doorInitialRotation = doorPolotno.rotation;
|
||||||
|
}
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if(debug && !closed)
|
||||||
|
{
|
||||||
|
CloseTheDoor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void TranslationMode(bool on)
|
||||||
|
{
|
||||||
|
if (on)
|
||||||
|
{
|
||||||
|
rigidbody.isKinematic = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_doorInitialPosition = doorPolotno.position;
|
||||||
|
_doorInitialRotation = doorPolotno.rotation;
|
||||||
|
|
||||||
|
rigidbody.isKinematic = false;
|
||||||
|
hingeJoint.autoConfigureConnectedAnchor = false;
|
||||||
|
hingeJoint.connectedAnchor = hingeJointAnchor.position;
|
||||||
|
}
|
||||||
|
public void CloseTheDoor()
|
||||||
|
{
|
||||||
|
// TranslationMode(true);
|
||||||
|
doorPolotno.DORotate(_doorInitialRotation.eulerAngles, 0.5f);
|
||||||
|
doorPolotno.DOMove(_doorInitialPosition, 0.5f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ed06ed70c7924ca9bc59f33ee7e6cdfa
|
||||||
|
timeCreated: 1764533216
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Code.Gameplay.Door
|
||||||
|
{
|
||||||
|
public class DoorPooler
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: acfad6f51f224b51abb761fc22e4356f
|
||||||
|
timeCreated: 1764521809
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f17ace0fa75741f2a730ff21181c6e8c
|
||||||
|
timeCreated: 1764575680
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.AI;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Enemies.Animators
|
||||||
|
{
|
||||||
|
public class EnemyAnimator : MonoBehaviour
|
||||||
|
{
|
||||||
|
private static readonly int Velocity = Animator.StringToHash("Velocity");
|
||||||
|
|
||||||
|
[SerializeField] private Animator animator;
|
||||||
|
[SerializeField] private NavMeshAgent agent;
|
||||||
|
|
||||||
|
private void SetVelocity(float velocity)
|
||||||
|
{
|
||||||
|
animator.SetFloat(Velocity, velocity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if(agent) SetVelocity(agent.velocity.magnitude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 936125a7ed844674b0e0586a484253ce
|
||||||
|
timeCreated: 1764575708
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
|
using Code.Audio;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
using Code.Gameplay.Player;
|
using Code.Gameplay.Player;
|
||||||
using Code.Gameplay.Character.Controller;
|
using Code.Gameplay.Character.Controller;
|
||||||
using Code.Gameplay.Character.Core;
|
using Code.Gameplay.Character.Core;
|
||||||
|
using Code.Gameplay.Enemies.Animators;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
using Reflex.Core;
|
using Reflex.Core;
|
||||||
using Reflex.Injectors;
|
using Reflex.Injectors;
|
||||||
@@ -13,6 +15,7 @@ namespace Code.Gameplay.Enemies
|
|||||||
{
|
{
|
||||||
[SerializeField] protected NavMeshAgent agent;
|
[SerializeField] protected NavMeshAgent agent;
|
||||||
[SerializeField] protected Collider enemyCollider;
|
[SerializeField] protected Collider enemyCollider;
|
||||||
|
[Inject] protected IAudioService audioService;
|
||||||
|
|
||||||
protected int Damage;
|
protected int Damage;
|
||||||
protected float AttackCooldown;
|
protected float AttackCooldown;
|
||||||
@@ -35,7 +38,7 @@ namespace Code.Gameplay.Enemies
|
|||||||
private bool _isStunned;
|
private bool _isStunned;
|
||||||
private float _currentStunTimer;
|
private float _currentStunTimer;
|
||||||
|
|
||||||
private bool _canAttack = true;
|
protected bool _canAttack = true;
|
||||||
private float _attackCooldownTimer;
|
private float _attackCooldownTimer;
|
||||||
|
|
||||||
private enum IdleState { Moving, Paused }
|
private enum IdleState { Moving, Paused }
|
||||||
@@ -50,10 +53,11 @@ namespace Code.Gameplay.Enemies
|
|||||||
|
|
||||||
protected virtual void Awake()
|
protected virtual void Awake()
|
||||||
{
|
{
|
||||||
if (_playerProvider == null)
|
// // TODO Мешает
|
||||||
{
|
// if (_playerProvider == null)
|
||||||
AttributeInjector.Inject(this, Container.ProjectContainer);
|
// {
|
||||||
}
|
// AttributeInjector.Inject(this, Container.ProjectContainer);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void Update()
|
protected virtual void Update()
|
||||||
@@ -164,19 +168,19 @@ namespace Code.Gameplay.Enemies
|
|||||||
|
|
||||||
protected virtual void HandleAttackCooldown()
|
protected virtual void HandleAttackCooldown()
|
||||||
{
|
{
|
||||||
if (!_canAttack)
|
if (_canAttack) return;
|
||||||
{
|
|
||||||
_attackCooldownTimer -= Time.deltaTime;
|
_attackCooldownTimer -= Time.deltaTime;
|
||||||
|
|
||||||
if (_attackCooldownTimer <= 0)
|
if (_attackCooldownTimer <= 0)
|
||||||
{
|
{
|
||||||
_canAttack = true;
|
_canAttack = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void DealDamage()
|
protected virtual void DealDamage()
|
||||||
{
|
{
|
||||||
if (!_canAttack || PlayerHealth == null) return;
|
if (PlayerHealth == null) return;
|
||||||
|
|
||||||
PlayerHealth.GetDamage(Damage);
|
PlayerHealth.GetDamage(Damage);
|
||||||
ApplyEffectsToPlayer();
|
ApplyEffectsToPlayer();
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Audio;
|
||||||
using Code.Configs;
|
using Code.Configs;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -35,7 +36,7 @@ namespace Code.Gameplay.Enemies
|
|||||||
{
|
{
|
||||||
base.Awake();
|
base.Awake();
|
||||||
|
|
||||||
if (agent == null) return;
|
if (!agent) return;
|
||||||
|
|
||||||
var walkableArea = NavMesh.GetAreaFromName("Cockroach");
|
var walkableArea = NavMesh.GetAreaFromName("Cockroach");
|
||||||
agent.areaMask = 1 << walkableArea;
|
agent.areaMask = 1 << walkableArea;
|
||||||
@@ -43,12 +44,14 @@ namespace Code.Gameplay.Enemies
|
|||||||
|
|
||||||
protected override void HandleAttack()
|
protected override void HandleAttack()
|
||||||
{
|
{
|
||||||
if (!Player) return;
|
if (!Player || !_canAttack) return;
|
||||||
|
|
||||||
var distance = Vector3.Distance(transform.position, Player.transform.position);
|
var distance = Vector3.Distance(transform.position, Player.transform.position);
|
||||||
|
|
||||||
if (!(distance <= AttackRange)) return;
|
if (!(distance <= AttackRange)) return;
|
||||||
|
|
||||||
|
audioService.PlayEnemy(EnemiesSounds.Bravo,agent.transform.position);
|
||||||
|
|
||||||
DealDamage();
|
DealDamage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
|
using Code.Audio;
|
||||||
using Code.Configs;
|
using Code.Configs;
|
||||||
|
using Code.Gameplay.Enemies.Animators;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
@@ -40,15 +42,16 @@ namespace Code.Gameplay.Enemies
|
|||||||
var walkableArea = NavMesh.GetAreaFromName("Walkable");
|
var walkableArea = NavMesh.GetAreaFromName("Walkable");
|
||||||
agent.areaMask = 1 << walkableArea;
|
agent.areaMask = 1 << walkableArea;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandleAttack()
|
protected override void HandleAttack()
|
||||||
{
|
{
|
||||||
if (!Player) return;
|
if (!Player || !_canAttack) return;
|
||||||
|
|
||||||
var distance = Vector3.Distance(transform.position, Player.transform.position);
|
var distance = Vector3.Distance(transform.position, Player.transform.position);
|
||||||
|
|
||||||
if (!(distance <= AttackRange)) return;
|
if (!(distance <= AttackRange)) return;
|
||||||
|
|
||||||
|
audioService.PlayEnemy(EnemiesSounds.Bastard,agent.transform.position);
|
||||||
|
|
||||||
if (Player.CustomCharacterController.IsSliding)
|
if (Player.CustomCharacterController.IsSliding)
|
||||||
ApplyStun();
|
ApplyStun();
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
using Code.Audio;
|
||||||
|
using Reflex.Attributes;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Enemies
|
||||||
|
{
|
||||||
|
public class EnemyAudio : MonoBehaviour
|
||||||
|
{
|
||||||
|
private IAudioService _audioService;
|
||||||
|
private IAudioFactory _audioFactory;
|
||||||
|
private AudioSource _audioSource;
|
||||||
|
[SerializeField] private EnemiesSounds stepId;
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
private void Construct(IAudioService audioService, IAudioFactory audioFactory)
|
||||||
|
{
|
||||||
|
_audioService = audioService;
|
||||||
|
_audioSource = audioService.GetSourceOfGroup(Audio.AudioType.Enemies);
|
||||||
|
_audioSource.transform.position = transform.position;
|
||||||
|
|
||||||
|
_audioFactory = audioFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayStep()
|
||||||
|
{
|
||||||
|
Debug.Log("Play Step");
|
||||||
|
_audioSource.transform.position = transform.position;
|
||||||
|
_audioSource.PlayOneShot(_audioFactory.EnemiesAudios[(int)stepId]);
|
||||||
|
}
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
_audioService.ReleaseSourceOfGroup(_audioSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 91cb250df1b24fc4825ee791a12dda11
|
||||||
|
timeCreated: 1764695102
|
||||||
@@ -27,6 +27,7 @@ namespace Code.Gameplay.Enemies
|
|||||||
)
|
)
|
||||||
.ToUniTask();
|
.ToUniTask();
|
||||||
|
|
||||||
|
// Работает, пока не трогаю
|
||||||
AttributeInjector.Inject(enemyObj, Container.ProjectContainer);
|
AttributeInjector.Inject(enemyObj, Container.ProjectContainer);
|
||||||
|
|
||||||
return enemyObj.GetComponent<BaseEnemy>();
|
return enemyObj.GetComponent<BaseEnemy>();
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
using Code.Gameplay.Player;
|
using Code.Gameplay.Player;
|
||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
using Reflex.Core;
|
|
||||||
using Reflex.Injectors;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Gameplay.Enemies
|
namespace Code.Gameplay.Enemies
|
||||||
@@ -20,13 +18,14 @@ namespace Code.Gameplay.Enemies
|
|||||||
private bool _isSpawning;
|
private bool _isSpawning;
|
||||||
private bool _isPlayerInRange;
|
private bool _isPlayerInRange;
|
||||||
|
|
||||||
private void Awake()
|
// GameObjectSelfInjector существует
|
||||||
{
|
// private void Awake()
|
||||||
if (_playerProvider == null || _enemyFactory == null)
|
// {
|
||||||
{
|
// if (_playerProvider == null || _enemyFactory == null)
|
||||||
AttributeInjector.Inject(this, Container.ProjectContainer);
|
// {
|
||||||
}
|
// AttributeInjector.Inject(this, Container.ProjectContainer);
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
@@ -64,9 +63,14 @@ namespace Code.Gameplay.Enemies
|
|||||||
_isSpawning = false;
|
_isSpawning = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
Despawn();
|
||||||
|
}
|
||||||
|
|
||||||
private void Despawn()
|
private void Despawn()
|
||||||
{
|
{
|
||||||
if (_spawnedEnemy == null) return;
|
if (!_spawnedEnemy) return;
|
||||||
|
|
||||||
_enemyFactory.ReleaseEnemy(_spawnedEnemy);
|
_enemyFactory.ReleaseEnemy(_spawnedEnemy);
|
||||||
_spawnedEnemy = null;
|
_spawnedEnemy = null;
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using Code.Audio;
|
||||||
|
using Reflex.Attributes;
|
||||||
|
using UnityEngine;
|
||||||
|
using AudioType = Code.Audio.AudioType;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Player
|
||||||
|
{
|
||||||
|
public class PlayerAudio : MonoBehaviour
|
||||||
|
{
|
||||||
|
private IAudioService _audioService;
|
||||||
|
private IAudioFactory _audioFactory;
|
||||||
|
private AudioSource _audioSource;
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
private void Construct(IAudioService audioService, IAudioFactory audioFactory)
|
||||||
|
{
|
||||||
|
_audioService = audioService;
|
||||||
|
_audioSource = audioService.GetSourceOfGroup(AudioType.Courier);
|
||||||
|
|
||||||
|
_audioFactory = audioFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayStep()
|
||||||
|
{
|
||||||
|
_audioSource.PlayOneShot(_audioFactory.CourierAudios[(int)CourierSounds.Step]);
|
||||||
|
}
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
_audioService.ReleaseSourceOfGroup(_audioSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 64f99dccce9d41df98accae0f355dbca
|
||||||
|
timeCreated: 1764584350
|
||||||
@@ -42,7 +42,13 @@ namespace Code.Gameplay.Player
|
|||||||
Addressables.ReleaseInstance(characterProvider.gameObject);
|
Addressables.ReleaseInstance(characterProvider.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async UniTask<ArmsMeshProvider> CreateArms(Transform papochka) => (await Addressables.InstantiateAsync(_playerConfig.armsMeshPrefab, papochka).ToUniTask()).GetComponent<ArmsMeshProvider>();
|
public async UniTask<ArmsMeshProvider> CreateArms(Transform papochka)
|
||||||
|
{
|
||||||
|
var armsMesh = (await Addressables.InstantiateAsync(_playerConfig.armsMeshPrefab, papochka).ToUniTask());
|
||||||
|
GameObjectInjector.InjectRecursive(armsMesh, Container.ProjectContainer);
|
||||||
|
|
||||||
|
return armsMesh.GetComponent<ArmsMeshProvider>();
|
||||||
|
}
|
||||||
public void ReleaseArms(ArmsMeshProvider arms) => Addressables.ReleaseInstance(arms.gameObject);
|
public void ReleaseArms(ArmsMeshProvider arms) => Addressables.ReleaseInstance(arms.gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,5 +12,6 @@ namespace Code.Generator
|
|||||||
Room CreateRoomByIndex(int index, RoomType roomType);
|
Room CreateRoomByIndex(int index, RoomType roomType);
|
||||||
void ReleaseRooms();
|
void ReleaseRooms();
|
||||||
GameObject GetRandomCachedPrefabOfType(RoomType roomType, out int index);
|
GameObject GetRandomCachedPrefabOfType(RoomType roomType, out int index);
|
||||||
|
int GetRandomIndexOfType(RoomType roomType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
using Code.Gameplay.Door;
|
using Code.Gameplay.Door;
|
||||||
|
using Code.Gameplay.Orders.Order;
|
||||||
using Code.UI;
|
using Code.UI;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Generator
|
namespace Code.Generator
|
||||||
{
|
{
|
||||||
[RequireComponent(typeof(Transform))]
|
// Для написания нормальной системы комнат нужен другой подход в корне, это уже не исправить, только залатать большие дыры
|
||||||
public class Room : MonoBehaviour
|
public class Room : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] protected RoomType roomType;
|
[SerializeField] protected RoomType roomType;
|
||||||
@@ -15,19 +16,17 @@ namespace Code.Generator
|
|||||||
[SerializeField] protected Transform enterMarker;
|
[SerializeField] protected Transform enterMarker;
|
||||||
public Transform EnterMarker => enterMarker;
|
public Transform EnterMarker => enterMarker;
|
||||||
[SerializeField] protected Transform exitMarker;
|
[SerializeField] protected Transform exitMarker;
|
||||||
|
[SerializeField] protected Transform doorSlot;
|
||||||
public Transform ExitMarker => exitMarker;
|
public Transform ExitMarker => exitMarker;
|
||||||
[SerializeField] protected Door door;
|
[SerializeField] protected Door door;
|
||||||
|
|
||||||
protected void Awake()
|
public void Initialize(IOrderService orderService)
|
||||||
{
|
{
|
||||||
if (EnterMarker == null || ExitMarker == null)
|
door.TranslationMode(false);
|
||||||
{
|
|
||||||
Debug.LogError($"Але маркеры не найдены у комнаты {gameObject.name}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Initialize() => door.TranslationMode(false);
|
if(roomTrigger) roomTrigger.OrderService = orderService;
|
||||||
|
}
|
||||||
//PIZDEC
|
public void Seal() => door.CloseTheDoor();
|
||||||
|
[SerializeField] public RoomTrigger roomTrigger;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -47,25 +47,14 @@ namespace Code.Generator
|
|||||||
|
|
||||||
// SpawnInitialRoomsAsync();
|
// SpawnInitialRoomsAsync();
|
||||||
_orderService.OnOrderGiven += CreateRoomsStack;
|
_orderService.OnOrderGiven += CreateRoomsStack;
|
||||||
RoomTrigger.PlayerEnteredRoom += OnPlayerEntered;
|
// RoomTrigger.PlayerEnteredRoom += OnPlayerEntered;
|
||||||
|
|
||||||
CreateInitialRoom();
|
CreateInitialRoom();
|
||||||
SpawnNextRoomAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnEnable()
|
private void OnPlayerEntered()
|
||||||
{
|
{
|
||||||
RoomTrigger.PlayerEnteredRoom += OnPlayerEntered;
|
SpawnNextRoom();
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDisable()
|
|
||||||
{
|
|
||||||
RoomTrigger.PlayerEnteredRoom -= OnPlayerEntered;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnPlayerEntered()
|
|
||||||
{
|
|
||||||
SpawnNextRoomAsync();
|
|
||||||
|
|
||||||
if (_spawnedRooms.Count > 3)
|
if (_spawnedRooms.Count > 3)
|
||||||
{
|
{
|
||||||
@@ -95,21 +84,30 @@ namespace Code.Generator
|
|||||||
Debug.Log($"комната {room.name} время {room.RoomTimer} осталось: {remainingTime}");
|
Debug.Log($"комната {room.name} время {room.RoomTimer} осталось: {remainingTime}");
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateSaveRoom();
|
|
||||||
|
|
||||||
AddPickupRoom();
|
AddPickupRoom();
|
||||||
|
Debug.Log($"добавлена зона заказа");
|
||||||
|
|
||||||
|
AddSaveRoom();
|
||||||
|
Debug.Log($"добавлена сейв зона");
|
||||||
|
|
||||||
Debug.Log($"стек комнат: {_roomIndexesStack.Count}");
|
Debug.Log($"стек комнат: {_roomIndexesStack.Count}");
|
||||||
SpawnNextRoomAsync();
|
SpawnNextRoom();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateSaveRoom()
|
private void AddSaveRoom()
|
||||||
{
|
{
|
||||||
var prefab = _factory.GetRandomCachedPrefabOfType(RoomType.Save, out int roomIndex);
|
int saveRoomIndex = _factory.GetRandomIndexOfType(RoomType.Save);
|
||||||
Room saveRoom = prefab.GetComponent<Room>();
|
|
||||||
_roomIndexesStack.Add(new(RoomType.Save, roomIndex));
|
|
||||||
|
|
||||||
Debug.Log($"Первая комната: {saveRoom.name}");
|
_roomIndexesStack.Add(new(RoomType.Save, saveRoomIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddPickupRoom()
|
||||||
|
{
|
||||||
|
int pickupIndex = _factory.GetRandomIndexOfType(RoomType.PickUp);
|
||||||
|
|
||||||
|
int insertPos = Random.Range(1, _roomIndexesStack.Count + 1);
|
||||||
|
|
||||||
|
_roomIndexesStack.Insert(insertPos, new(RoomType.PickUp, pickupIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Inject] private CurrentSceneEnvironment _currentSceneEnvironment;
|
[Inject] private CurrentSceneEnvironment _currentSceneEnvironment;
|
||||||
@@ -118,19 +116,19 @@ namespace Code.Generator
|
|||||||
{
|
{
|
||||||
GameplaySceneEnvironment gameplaySceneEnvironment = (GameplaySceneEnvironment)_currentSceneEnvironment;
|
GameplaySceneEnvironment gameplaySceneEnvironment = (GameplaySceneEnvironment)_currentSceneEnvironment;
|
||||||
|
|
||||||
_factory.GetRandomCachedPrefabOfType(RoomType.Initial, out int roomIndex);
|
int roomIndex = _factory.GetRandomIndexOfType(RoomType.Initial);
|
||||||
// _roomIndexesStack.Add(new(RoomType.Initial, roomIndex));
|
|
||||||
InitialRoom instantiated = _factory.CreateRoomByIndex(roomIndex, RoomType.Initial).GetComponent<InitialRoom>();
|
InitialRoom instantiated = _factory.CreateRoomByIndex(roomIndex, RoomType.Initial).GetComponent<InitialRoom>();
|
||||||
_spawnedRooms.Add(instantiated);
|
_spawnedRooms.Add(instantiated);
|
||||||
instantiated.transform.position = Vector3.zero;
|
instantiated.transform.position = Vector3.zero;
|
||||||
instantiated.transform.rotation = Quaternion.identity;
|
instantiated.transform.rotation = Quaternion.identity;
|
||||||
|
|
||||||
gameplaySceneEnvironment.playerSpawnPoint = instantiated.playerSpawn;
|
gameplaySceneEnvironment.playerSpawnPoint = instantiated.playerSpawn;
|
||||||
instantiated.Initialize();
|
instantiated.Initialize(_orderService);
|
||||||
|
|
||||||
Debug.Log($"Первая комната: {instantiated.name}");
|
Debug.Log($"Первая комната: {instantiated.name}");
|
||||||
}
|
}
|
||||||
private void SpawnNextRoomAsync()
|
private void SpawnNextRoom()
|
||||||
{
|
{
|
||||||
if (_nextRoomStackIndex >= _roomIndexesStack.Count)
|
if (_nextRoomStackIndex >= _roomIndexesStack.Count)
|
||||||
return;
|
return;
|
||||||
@@ -149,23 +147,14 @@ namespace Code.Generator
|
|||||||
PlaceRoom(room, previousRoom);
|
PlaceRoom(room, previousRoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Отписываться можно, но Хатико никогда не дождётся вызова уничтоженного объекта.
|
||||||
|
room.roomTrigger.OnEnter += OnPlayerEntered;
|
||||||
|
|
||||||
|
room.roomTrigger.OnExit += _spawnedRooms[^1].Seal;
|
||||||
_spawnedRooms.Add(room);
|
_spawnedRooms.Add(room);
|
||||||
_nextRoomStackIndex++;
|
_nextRoomStackIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddPickupRoom()
|
|
||||||
{
|
|
||||||
var prefab = _factory.GetRandomCachedPrefabOfType(RoomType.PickUp, out int pickupIndex);
|
|
||||||
|
|
||||||
Room pickupRoom = prefab.GetComponent<Room>();
|
|
||||||
|
|
||||||
if (_roomIndexesStack.Count == 0) return;
|
|
||||||
|
|
||||||
int insertPos = Random.Range(1, _roomIndexesStack.Count + 1);
|
|
||||||
|
|
||||||
_roomIndexesStack.Insert(insertPos, new(RoomType.PickUp, pickupIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void PlaceRoom(Room current, Room previous)
|
private void PlaceRoom(Room current, Room previous)
|
||||||
{
|
{
|
||||||
@@ -219,11 +208,11 @@ namespace Code.Generator
|
|||||||
current.transform.rotation = Quaternion.Euler(0, segmentOriginYRotation, 0);
|
current.transform.rotation = Quaternion.Euler(0, segmentOriginYRotation, 0);
|
||||||
// locationSegment.isNeedSomeDoors = true;
|
// locationSegment.isNeedSomeDoors = true;
|
||||||
// locationSegment.AddBadDoorId(locationSegment.LocationSegment.GetDoorOrigins.IndexOf(randomDoorOrigin));
|
// locationSegment.AddBadDoorId(locationSegment.LocationSegment.GetDoorOrigins.IndexOf(randomDoorOrigin));
|
||||||
current.Initialize();
|
current.Initialize(_orderService);
|
||||||
|
|
||||||
float frameOnTheBallRotation = segmentOriginYRotation + randomDoorOriginRotation.eulerAngles.y;
|
// float frameOnTheBallRotation = segmentOriginYRotation + randomDoorOriginRotation.eulerAngles.y;
|
||||||
if (frameOnTheBallRotation > 305f) frameOnTheBallRotation -= 360f;
|
// if (frameOnTheBallRotation > 305f) frameOnTheBallRotation -= 360f;
|
||||||
else if (frameOnTheBallRotation < -45f) frameOnTheBallRotation += 360f;
|
// else if (frameOnTheBallRotation < -45f) frameOnTheBallRotation += 360f;
|
||||||
|
|
||||||
// heOnTheBall.AddSlaveLocationSegment(locationSegment.Id);
|
// heOnTheBall.AddSlaveLocationSegment(locationSegment.Id);
|
||||||
// heOnTheBall.ReplaceSlaveSegmentDoorOriginYRotation(frameOnTheBallRotation);
|
// heOnTheBall.ReplaceSlaveSegmentDoorOriginYRotation(frameOnTheBallRotation);
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ namespace Code.Generator
|
|||||||
index = Random.Range(0, _cashedRooms[roomType].Count);
|
index = Random.Range(0, _cashedRooms[roomType].Count);
|
||||||
return _cashedRooms[roomType][index];
|
return _cashedRooms[roomType][index];
|
||||||
}
|
}
|
||||||
|
public int GetRandomIndexOfType(RoomType roomType) => Random.Range(0, _cashedRooms[roomType].Count);
|
||||||
|
|
||||||
public Room CreateRoomByIndex(int index, RoomType roomType)
|
public Room CreateRoomByIndex(int index, RoomType roomType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,32 +1,36 @@
|
|||||||
using System;
|
using System;
|
||||||
using Code.Gameplay.Orders.Order;
|
using Code.Gameplay.Orders.Order;
|
||||||
using Reflex.Attributes;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Generator
|
namespace Code.Generator
|
||||||
{
|
{
|
||||||
public class RoomTrigger : MonoBehaviour
|
public class RoomTrigger : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Inject] private IOrderService _orderService;
|
public IOrderService OrderService;
|
||||||
|
public event Action OnEnter;
|
||||||
|
public event Action OnExit;
|
||||||
|
|
||||||
public static event Action PlayerEnteredRoom;
|
private bool _playerEntered, _playerExited;
|
||||||
|
|
||||||
private bool _playerEntered;
|
|
||||||
|
|
||||||
// [Inject]
|
|
||||||
// private void Construct(IOrderService orderService)
|
|
||||||
// {
|
|
||||||
// _orderService = orderService;
|
|
||||||
// }
|
|
||||||
private void OnTriggerEnter(Collider other)
|
private void OnTriggerEnter(Collider other)
|
||||||
{
|
{
|
||||||
if (_playerEntered) return;
|
if (_playerEntered) return;
|
||||||
|
|
||||||
_playerEntered = true;
|
_playerEntered = true;
|
||||||
|
|
||||||
_orderService.RoomPassed();
|
OrderService.RoomPassed();
|
||||||
|
|
||||||
PlayerEnteredRoom?.Invoke();
|
OnEnter?.Invoke();
|
||||||
|
}
|
||||||
|
private void OnTriggerExit(Collider other)
|
||||||
|
{
|
||||||
|
if (_playerExited) return;
|
||||||
|
|
||||||
|
Debug.Log(other.name);
|
||||||
|
|
||||||
|
_playerExited = true;
|
||||||
|
|
||||||
|
OnExit?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 4207b7568dc3482393ac1860a31909b4
|
guid: 0d6940d73d544f0a8e4a45d956bc2364
|
||||||
timeCreated: 1764087485
|
timeCreated: 1764525516
|
||||||
@@ -33,6 +33,7 @@ namespace Code.StaticData
|
|||||||
Dictionary<AudioSourceType, AudioSourceSettingsConfig> AudioSourceSettingsConfigs { get; }
|
Dictionary<AudioSourceType, AudioSourceSettingsConfig> AudioSourceSettingsConfigs { get; }
|
||||||
AudioTestClipsConfig AudioTestClipsConfig { get; }
|
AudioTestClipsConfig AudioTestClipsConfig { get; }
|
||||||
GeneratorConfig GeneratorConfig { get; }
|
GeneratorConfig GeneratorConfig { get; }
|
||||||
|
CourierSoundListConfig CourierSoundListConfig { get; }
|
||||||
void Load();
|
void Load();
|
||||||
Task<T> InstantiateAsset<T>(AssetReference assetReference) where T : Behaviour;
|
Task<T> InstantiateAsset<T>(AssetReference assetReference) where T : Behaviour;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace Code.StaticData
|
|||||||
public DispatcherSoundListConfig DispatcherSoundListConfig { get; private set; }
|
public DispatcherSoundListConfig DispatcherSoundListConfig { get; private set; }
|
||||||
public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; }
|
public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; }
|
||||||
public AudioTestClipsConfig AudioTestClipsConfig { get; private set; }
|
public AudioTestClipsConfig AudioTestClipsConfig { get; private set; }
|
||||||
|
public CourierSoundListConfig CourierSoundListConfig { get; private set; }
|
||||||
|
|
||||||
public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;}
|
public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;}
|
||||||
public CockroachConfig CockroachConfig { get; private set; }
|
public CockroachConfig CockroachConfig { get; private set; }
|
||||||
@@ -69,6 +70,7 @@ namespace Code.StaticData
|
|||||||
SoundtrackListConfig = Resources.Load<SoundtrackListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SoundtrackListConfig"));
|
SoundtrackListConfig = Resources.Load<SoundtrackListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SoundtrackListConfig"));
|
||||||
AudioTestClipsConfig = Resources.Load<AudioTestClipsConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "AudioTestClipsConfig"));
|
AudioTestClipsConfig = Resources.Load<AudioTestClipsConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "AudioTestClipsConfig"));
|
||||||
SFXListConfig = Resources.Load<SFXListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SFXListConfig"));
|
SFXListConfig = Resources.Load<SFXListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SFXListConfig"));
|
||||||
|
CourierSoundListConfig = Resources.Load<CourierSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "CourierSoundListConfig"));
|
||||||
DispatcherSoundListConfig = Resources.Load<DispatcherSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "DispatcherSoundListConfig"));
|
DispatcherSoundListConfig = Resources.Load<DispatcherSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "DispatcherSoundListConfig"));
|
||||||
EnemiesSoundListConfig = Resources.Load<EnemiesSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "EnemiesSoundListConfig"));
|
EnemiesSoundListConfig = Resources.Load<EnemiesSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "EnemiesSoundListConfig"));
|
||||||
AudioSourceSettingsConfigs = Resources
|
AudioSourceSettingsConfigs = Resources
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace Code.UI
|
|||||||
menuMusic.value = _audioService.GetSetting(AudioType.MenuMusic);
|
menuMusic.value = _audioService.GetSetting(AudioType.MenuMusic);
|
||||||
menuMusic.onValueChanged.AddListener(OnMenuMusicUpdate);
|
menuMusic.onValueChanged.AddListener(OnMenuMusicUpdate);
|
||||||
|
|
||||||
gameplayMusic.value = _audioService.GetSetting(AudioType.GameplayMusic);
|
gameplayMusic.value = _audioService.GetSetting(AudioType.ActionMusic);
|
||||||
gameplayMusic.onValueChanged.AddListener(OnGameplayUpdate);
|
gameplayMusic.onValueChanged.AddListener(OnGameplayUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,8 +68,9 @@ namespace Code.UI
|
|||||||
}
|
}
|
||||||
private void OnGameplayUpdate(float value)
|
private void OnGameplayUpdate(float value)
|
||||||
{
|
{
|
||||||
_audioService.ChangeSetting(AudioType.GameplayMusic, value);
|
_audioService.ChangeSetting(AudioType.ActionMusic, value);
|
||||||
_audioService.PlayTestClip(AudioType.GameplayMusic);
|
_audioService.ChangeSetting(AudioType.PeacefulMusic, value);
|
||||||
|
_audioService.PlayTestClip(AudioType.ActionMusic);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Hide()
|
public override void Hide()
|
||||||
|
|||||||
@@ -18,11 +18,6 @@ MonoBehaviour:
|
|||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
m_SubObjectGUID:
|
m_SubObjectGUID:
|
||||||
m_EditorAssetChanged: 0
|
m_EditorAssetChanged: 0
|
||||||
- m_AssetGUID: b3471d165fe389f479380f61034bea57
|
|
||||||
m_SubObjectName:
|
|
||||||
m_SubObjectType:
|
|
||||||
m_SubObjectGUID:
|
|
||||||
m_EditorAssetChanged: 0
|
|
||||||
- m_AssetGUID: 28a6c7a4124141341ab7c2b7dfd3e95b
|
- m_AssetGUID: 28a6c7a4124141341ab7c2b7dfd3e95b
|
||||||
m_SubObjectName:
|
m_SubObjectName:
|
||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
@@ -43,17 +38,7 @@ MonoBehaviour:
|
|||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
m_SubObjectGUID:
|
m_SubObjectGUID:
|
||||||
m_EditorAssetChanged: 0
|
m_EditorAssetChanged: 0
|
||||||
- m_AssetGUID: dc328d8aadb0e8545978741d451e0544
|
- m_AssetGUID: 7067a5248027e74478f4f0f53ddf06a4
|
||||||
m_SubObjectName:
|
|
||||||
m_SubObjectType:
|
|
||||||
m_SubObjectGUID:
|
|
||||||
m_EditorAssetChanged: 0
|
|
||||||
- m_AssetGUID: 19bfe93240786974ea9d7cd70a7bb635
|
|
||||||
m_SubObjectName:
|
|
||||||
m_SubObjectType:
|
|
||||||
m_SubObjectGUID:
|
|
||||||
m_EditorAssetChanged: 0
|
|
||||||
- m_AssetGUID: a1d9e5a04ac11a1468c744b27d442a00
|
|
||||||
m_SubObjectName:
|
m_SubObjectName:
|
||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
m_SubObjectGUID:
|
m_SubObjectGUID:
|
||||||
|
|||||||
@@ -43,3 +43,18 @@ MonoBehaviour:
|
|||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
m_SubObjectGUID:
|
m_SubObjectGUID:
|
||||||
m_EditorAssetChanged: 1
|
m_EditorAssetChanged: 1
|
||||||
|
- m_AssetGUID: 144ab5188f8ad7a0a92c75703bd12e60
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 0
|
||||||
|
- m_AssetGUID: a306df57f348ce7cf900d0b9431739ee
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 0
|
||||||
|
- m_AssetGUID: f74a409bf11b25148ad305acc05b14f5
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 1
|
||||||
+8
-3
@@ -10,6 +10,11 @@ MonoBehaviour:
|
|||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 83304a98bbdc4e7c9c7c643653ae1368, type: 3}
|
m_Script: {fileID: 11500000, guid: 83304a98bbdc4e7c9c7c643653ae1368, type: 3}
|
||||||
m_Name: CharacterSoundListConfig
|
m_Name: CourierSoundListConfig
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.CharacterSoundListConfig
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.CourierSoundListConfig
|
||||||
character: []
|
courierSounds:
|
||||||
|
- m_AssetGUID: bf87bc9ac43df86be8c818de81d44a54
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 0
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5160d7af825d295229a3be611f44db76
|
guid: 377caa2d01eb3e54cb77ab98346ef669
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
||||||
@@ -23,3 +23,13 @@ MonoBehaviour:
|
|||||||
m_SubObjectType:
|
m_SubObjectType:
|
||||||
m_SubObjectGUID:
|
m_SubObjectGUID:
|
||||||
m_EditorAssetChanged: 1
|
m_EditorAssetChanged: 1
|
||||||
|
- m_AssetGUID: e84e3a3c26ccbd50d92f13627403f148
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 0
|
||||||
|
- m_AssetGUID: 1cc66c0b13a946e1c9ec37026268e144
|
||||||
|
m_SubObjectName:
|
||||||
|
m_SubObjectType:
|
||||||
|
m_SubObjectGUID:
|
||||||
|
m_EditorAssetChanged: 0
|
||||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6af4f53d425a41c78ef889fd7e5c3197, type: 3}
|
m_Script: {fileID: 11500000, guid: 6af4f53d425a41c78ef889fd7e5c3197, type: 3}
|
||||||
m_Name: OrderBoxConfig
|
m_Name: OrderBoxConfig
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.OrderBoxConfig
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.OrderBoxConfig
|
||||||
activationTime: 2
|
activationTime: 0.7
|
||||||
floatingCurve:
|
floatingCurve:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Curve:
|
m_Curve:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ TextureImporter:
|
|||||||
mipmaps:
|
mipmaps:
|
||||||
mipMapMode: 0
|
mipMapMode: 0
|
||||||
enableMipMap: 1
|
enableMipMap: 1
|
||||||
sRGBTexture: 1
|
sRGBTexture: 0
|
||||||
linearTexture: 0
|
linearTexture: 0
|
||||||
fadeOut: 0
|
fadeOut: 0
|
||||||
borderMipMap: 0
|
borderMipMap: 0
|
||||||
@@ -54,7 +54,7 @@ TextureImporter:
|
|||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
alphaIsTransparency: 0
|
alphaIsTransparency: 0
|
||||||
spriteTessellationDetail: -1
|
spriteTessellationDetail: -1
|
||||||
textureType: 0
|
textureType: 1
|
||||||
textureShape: 1
|
textureShape: 1
|
||||||
singleChannelComponent: 0
|
singleChannelComponent: 0
|
||||||
flipbookRows: 1
|
flipbookRows: 1
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 350e536b9cbcefc4cab12be3ce0154ff
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!206 &-4537450527427303376
|
||||||
|
BlendTree:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Childs:
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: -3471636723063426380, guid: 5980bf2db4921204b9dbc03ca40c60a9, 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: 7400000, guid: c30bba7f8c9df71fc96b4c0014e9c681, type: 2}
|
||||||
|
m_Threshold: 0.5
|
||||||
|
m_Position: {x: 0, y: 0}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Blend
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 249b0825e3890002dab1cbacfa06346e, type: 2}
|
||||||
|
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!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Grandpa
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters:
|
||||||
|
- m_Name: Velocity
|
||||||
|
m_Type: 1
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
- m_Name: OnAttack
|
||||||
|
m_Type: 4
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 7838137981450683803}
|
||||||
|
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!1102 &6491039961499839958
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
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: -4537450527427303376}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &7838137981450683803
|
||||||
|
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: 6491039961499839958}
|
||||||
|
m_Position: {x: 260, y: 110, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 6491039961499839958}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e94cc659a49a87742bee1581a36eb537
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,139 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 568a9946a98a231449731a752331e015
|
||||||
|
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: ded_drunk_running
|
||||||
|
takeName: ded_drunk_running
|
||||||
|
internalID: -2048397514134812215
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 55
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 1.833
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
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:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 5980bf2db4921204b9dbc03ca40c60a9, type: 3}
|
||||||
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
|
animationType: 2
|
||||||
|
humanoidOversampling: 1
|
||||||
|
avatarSetup: 2
|
||||||
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
|
importBlendShapeDeformPercent: 1
|
||||||
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,139 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 73411fc2c848c214c8019eebabba2703
|
||||||
|
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: ded_drunk_walk
|
||||||
|
takeName: ded_drunk_walk
|
||||||
|
internalID: 2702294549053568716
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 90
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 3
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
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:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 5980bf2db4921204b9dbc03ca40c60a9, type: 3}
|
||||||
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
|
animationType: 2
|
||||||
|
humanoidOversampling: 1
|
||||||
|
avatarSetup: 2
|
||||||
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
|
importBlendShapeDeformPercent: 1
|
||||||
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,139 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5980bf2db4921204b9dbc03ca40c60a9
|
||||||
|
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: ded_idle
|
||||||
|
takeName: ded_idle
|
||||||
|
internalID: -3471636723063426380
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 249
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 8.3
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
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:
|
||||||
|
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:
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 249b0825e3890002dab1cbacfa06346e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c30bba7f8c9df71fc96b4c0014e9c681
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70fd7ad2e4a34df4293461fc3abc5b19
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1102 &-7546067815572600598
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
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: 895217315570894280}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Cockroach
|
||||||
|
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: 7372245365138263642}
|
||||||
|
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 &895217315570894280
|
||||||
|
BlendTree:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Childs:
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: -4101330196864147404, guid: 7df3c003de36ea5608ec08e077590a09, 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: 7400000, guid: 0aebc52c8ee52a3f6859f45317cc4e46, type: 2}
|
||||||
|
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 &7372245365138263642
|
||||||
|
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: -7546067815572600598}
|
||||||
|
m_Position: {x: 277.0588, y: 127.82004, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: -7546067815572600598}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ad00dfcdb8a512a418e85824350b7f1a
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
-2
@@ -96,11 +96,11 @@ ModelImporter:
|
|||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 332f301c5f054a7df80785fdefd47cb4, type: 3}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 0
|
avatarSetup: 2
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
importBlendShapeDeformPercent: 1
|
importBlendShapeDeformPercent: 1
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
File renamed without changes.
+31
-2
@@ -29,7 +29,36 @@ ModelImporter:
|
|||||||
animationWrapMode: 0
|
animationWrapMode: 0
|
||||||
extraExposedTransformPaths: []
|
extraExposedTransformPaths: []
|
||||||
extraUserProperties: []
|
extraUserProperties: []
|
||||||
clipAnimations: []
|
clipAnimations:
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: rig.001|rig.001|rig|walk
|
||||||
|
takeName: rig.001|rig.001|rig|walk
|
||||||
|
internalID: -3961936280736360393
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 14
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0.467
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
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
|
isReadable: 0
|
||||||
meshes:
|
meshes:
|
||||||
lODScreenPercentages: []
|
lODScreenPercentages: []
|
||||||
@@ -100,7 +129,7 @@ ModelImporter:
|
|||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 0
|
avatarSetup: 1
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
importBlendShapeDeformPercent: 1
|
importBlendShapeDeformPercent: 1
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0aebc52c8ee52a3f6859f45317cc4e46
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,125 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 74548c815db11644cbf9a1141af9d149
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 24200
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects:
|
||||||
|
- first:
|
||||||
|
type: UnityEngine:Material
|
||||||
|
assembly: UnityEngine.CoreModule
|
||||||
|
name: '{concretefloor0.002'
|
||||||
|
second: {fileID: 2100000, guid: f8c8c9015cc4df84fbbbe32a4f003660, type: 2}
|
||||||
|
- first:
|
||||||
|
type: UnityEngine:Material
|
||||||
|
assembly: UnityEngine.CoreModule
|
||||||
|
name: '{plasterwall01a.002'
|
||||||
|
second: {fileID: 2100000, guid: 46c32c803fa6b354e927b3c37077003f, type: 2}
|
||||||
|
- first:
|
||||||
|
type: UnityEngine:Material
|
||||||
|
assembly: UnityEngine.CoreModule
|
||||||
|
name: '{plasterwall01b.002'
|
||||||
|
second: {fileID: 2100000, guid: 826e07efb851b074080835cf3caee1fa, type: 2}
|
||||||
|
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: []
|
||||||
|
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: 0
|
||||||
|
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:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
|
animationType: 0
|
||||||
|
humanoidOversampling: 1
|
||||||
|
avatarSetup: 0
|
||||||
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
|
importBlendShapeDeformPercent: 1
|
||||||
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -17,8 +17,8 @@ BlendTree:
|
|||||||
m_DirectBlendParameter: Velocity
|
m_DirectBlendParameter: Velocity
|
||||||
m_Mirror: 0
|
m_Mirror: 0
|
||||||
- serializedVersion: 2
|
- serializedVersion: 2
|
||||||
m_Motion: {fileID: -8280318352368864816, guid: 8e3e2305fe09b084da3c3d4384248abb, type: 3}
|
m_Motion: {fileID: 7400000, guid: 0963adebbe96b16789d89143045734ff, type: 2}
|
||||||
m_Threshold: 10
|
m_Threshold: 12
|
||||||
m_Position: {x: 0, y: 0}
|
m_Position: {x: 0, y: 0}
|
||||||
m_TimeScale: 1
|
m_TimeScale: 1
|
||||||
m_CycleOffset: 0
|
m_CycleOffset: 0
|
||||||
@@ -27,7 +27,7 @@ BlendTree:
|
|||||||
m_BlendParameter: Velocity
|
m_BlendParameter: Velocity
|
||||||
m_BlendParameterY: Blend
|
m_BlendParameterY: Blend
|
||||||
m_MinThreshold: 0
|
m_MinThreshold: 0
|
||||||
m_MaxThreshold: 10
|
m_MaxThreshold: 12
|
||||||
m_UseAutomaticThresholds: 1
|
m_UseAutomaticThresholds: 1
|
||||||
m_NormalizedBlendValues: 0
|
m_NormalizedBlendValues: 0
|
||||||
m_BlendType: 0
|
m_BlendType: 0
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0963adebbe96b16789d89143045734ff
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -168,10 +168,10 @@ BoxCollider:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_IncludeLayers:
|
m_IncludeLayers:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 16384
|
m_Bits: 49152
|
||||||
m_ExcludeLayers:
|
m_ExcludeLayers:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 102199
|
m_Bits: 69431
|
||||||
m_LayerOverridePriority: 0
|
m_LayerOverridePriority: 0
|
||||||
m_IsTrigger: 0
|
m_IsTrigger: 0
|
||||||
m_ProvidesContacts: 0
|
m_ProvidesContacts: 0
|
||||||
@@ -240,6 +240,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: bc9fc6ce2cc24b68b2b330e4fd029b80, type: 3}
|
m_Script: {fileID: 11500000, guid: bc9fc6ce2cc24b68b2b330e4fd029b80, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Door.Door
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Door.Door
|
||||||
|
doorSelf: {fileID: 1890351345896388873}
|
||||||
|
doorPolotno: {fileID: 1669639244792780461}
|
||||||
hingeJointAnchor: {fileID: 8908677722932397074}
|
hingeJointAnchor: {fileID: 8908677722932397074}
|
||||||
hingeJoint: {fileID: 3758149385181302518}
|
hingeJoint: {fileID: 3758149385181302518}
|
||||||
rigidbody: {fileID: 448402393908802308}
|
rigidbody: {fileID: 448402393908802308}
|
||||||
|
|||||||
@@ -177,55 +177,9 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.App.SceneInstallers.GameplaySceneInstaller
|
m_EditorClassIdentifier: Assembly-CSharp::Code.App.SceneInstallers.GameplaySceneInstaller
|
||||||
_gameplaySceneEnvironment:
|
_gameplaySceneEnvironment:
|
||||||
playerSpawnPoint: {fileID: 1738762962}
|
playerSpawnPoint: {fileID: 0}
|
||||||
--- !u!1 &1738762961
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1738762962}
|
|
||||||
- component: {fileID: 1738762963}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Generator
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1738762962
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1738762961}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: -1.06532, y: 0.587, z: 6.66}
|
|
||||||
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!114 &1738762963
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1738762961}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 353230beca35458dafc91c6409c25ab3, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Generator.RoomGenerator
|
|
||||||
generatorConfig: {fileID: 11400000, guid: 417b092a73ab1034aa084c67a66c5847, type: 2}
|
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 1088990798}
|
- {fileID: 1088990798}
|
||||||
- {fileID: 1738762962}
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d7d4c4504ba2c6449b328ab64c17763e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 23800000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ef91a9f9c05cfd749a859de45ccd5c29
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 23800000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 29a4cdc1d11c1994c8abfa3d44c66c18
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 23800000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 21cea19af1fdbf44d988bd1358b21ef0
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 23800000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
Loaded 100 of 162 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user