feat(audio): increase SFX pool size and preload audio data

- Increased SFX pool size from 8 to 16 in AudioManager
- Enabled preloadAudioData for multiple SFX files
- Removed unused VisualScripting import from Checkpoint script
- Reordered using statements in several scripts for consistency
- Added CoinCollectible component to Coin prefab with pickup effects
- Updated sorting layers and mesh LOD settings in Coin prefabs
- Fixed typo in Interfaces.cs: optionaAttachPoint to optionalAttachPoint
- Modified AddCoin method to accept count parameter and handle coin overflow
- Moved projectile scripts (BasicProjectile, EnemyBasicProjectile, PhysicsProjectile, PickableProjectile)
- Cleaned up unused namespaces and imports across various scripts
This commit is contained in:
Данил Ярош 2025-10-30 16:39:15 +03:00
parent a845161079
commit 5bafc385da
79 changed files with 29772 additions and 6583 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1009,8 +1009,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 16ac12688a958d34983f6f0307a045ad, type: 3}
m_Name:
m_EditorClassIdentifier:
config: {fileID: 11400000, guid: d8fdc5ccf56a1ca4389e7927d0b86526, type: 2}
sfxAsset: {fileID: 11400000, guid: 9cb4dd9d30f2420439e056018daf622a, type: 2}
config: {fileID: 11400000, guid: d8fdc5ccf56a1ca4389e7927d0b86526, type: 2}
--- !u!114 &-3949889748814893039
MonoBehaviour:
m_ObjectHideFlags: 0
@ -2208,7 +2208,7 @@ MonoBehaviour:
m_Intensity: 1
m_LightVolumeIntensity: 1
m_LightVolumeEnabled: 1
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000db1824314b917f3a
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000
m_LightCookieSprite: {fileID: 0}
m_DeprecatedPointLightCookieSprite: {fileID: 0}
m_LightOrder: 0
@ -2311,7 +2311,7 @@ MonoBehaviour:
m_Intensity: 2
m_LightVolumeIntensity: 1
m_LightVolumeEnabled: 0
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000db1824314b917f3a
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000
m_LightCookieSprite: {fileID: 0}
m_DeprecatedPointLightCookieSprite: {fileID: 0}
m_LightOrder: 0
@ -2399,7 +2399,7 @@ MonoBehaviour:
m_Intensity: 2
m_LightVolumeIntensity: 1
m_LightVolumeEnabled: 0
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000db1824314b917f3a
m_ApplyToSortingLayers: dfa480882177ca34a5d60f666b66224500000000
m_LightCookieSprite: {fileID: 0}
m_DeprecatedPointLightCookieSprite: {fileID: 0}
m_LightOrder: 0

View File

@ -12,6 +12,7 @@ GameObject:
- component: {fileID: 8918354566690060046}
- component: {fileID: 8292445450809725220}
- component: {fileID: 8919454405038276609}
- component: {fileID: 2739203642713137311}
m_Layer: 0
m_Name: Coin
m_TagString: Coin
@ -108,6 +109,23 @@ MonoBehaviour:
angleX: 0
angleY: 5
angleZ: 0
--- !u!114 &2739203642713137311
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 351781492710161714}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7ca95c06b31a03142815bc9f7d95e558, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::CoinCollectible
pickupSFX:
sound: {fileID: 8300000, guid: d151d983bbf55f7448d1be4e1a2535d0, type: 3}
volume: 0.25
pitch: 1
pickupVFX: {fileID: 0}
--- !u!1 &455729165605353665
GameObject:
m_ObjectHideFlags: 0
@ -160,6 +178,8 @@ SpriteRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@ -181,8 +201,9 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 1159882347
m_SortingLayer: -1
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 1f74e1a975bb7354182032db92f3d725, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}

View File

@ -77,8 +77,8 @@ SpriteRenderer:
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingLayerID: 1159882347
m_SortingLayer: -1
m_SortingOrder: 0
m_Sprite: {fileID: 2945333585519367011, guid: db25ddb63ca20c24e9337f4a968840db, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
@ -143,7 +143,7 @@ MonoBehaviour:
m_Intensity: 0.4
m_LightVolumeIntensity: 0.4
m_LightVolumeEnabled: 1
m_ApplyToSortingLayers: 2177ca34a5d60f666b66224500000000
m_ApplyToSortingLayers: 2177ca34a5d60f666b662245
m_LightCookieSprite: {fileID: 0}
m_DeprecatedPointLightCookieSprite: {fileID: 0}
m_LightOrder: 0

View File

@ -2699,7 +2699,7 @@ Rigidbody2D:
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 1
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 1
m_Constraints: 4

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 942 KiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: 6907d95bc206e3d4991e2572e2d23317
TextureImporter:
internalIDToNameTable:
- first:
213: -606407578565957281
second: Level_3_256x256_v1_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Level_3_256x256_v1_0
rect:
serializedVersion: 2
x: 0
y: 5
width: 1792
height: 1531
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: f59a87a258b9597f0800000000000000
internalID: -606407578565957281
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Level_3_256x256_v1_0: -606407578565957281
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: 65cac75fa467ace4d951152db6ea5785
TextureImporter:
internalIDToNameTable:
- first:
213: -3142202629690266425
second: Level_3_256x256_v2_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Level_3_256x256_v2_0
rect:
serializedVersion: 2
x: 0
y: 5
width: 1792
height: 1531
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 7cc630d3b57a464d0800000000000000
internalID: -3142202629690266425
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Level_3_256x256_v2_0: -3142202629690266425
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
preloadAudioData: 1
platformSettingOverrides: {}
forceToMono: 0
normalize: 1

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: d151d983bbf55f7448d1be4e1a2535d0
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,9 +19,9 @@ namespace RR.Common.Interfaces
/// Привязывает снаряд к точке привязки на игроке.
/// </summary>
/// <param name="newOwner">Новый владелец объекта</param>
/// <param name="optionaAttachPoint">Опциональная точка привязки. При передаче, объект будет привязан на нее</param>
/// <param name="optionalAttachPoint">Опциональная точка привязки. При передаче, объект будет привязан на нее</param>
/// <returns>bool - получилось ли поднять объект</returns>
public bool TryPickup(GameObject newOwner, Transform optionaAttachPoint = null);
public bool TryPickup(GameObject newOwner, Transform optionalAttachPoint = null);
}

View File

@ -1,5 +1,4 @@
using System;
using UnityEngine;
using UnityEngine;
using RR.Game2D.Behaviour;
using RR.Game2D.Behaviour.ScriptableObjects;

View File

@ -1,10 +1,9 @@
using System;
using UnityEngine;
using RR.Common.Audio;
using RR.Common.Managers;
using RR.Game2D.Core.Managers;
using RR.Game2D.Behaviour;
using RR.Game2D.Behaviour.ScriptableObjects;
using RR.Game2D.Core.Managers;
using UnityEngine;
namespace RR.Game2D.Animations
{

View File

@ -1,8 +1,9 @@
using System;
using UnityEngine;
using RR.Game2D.Behaviour;
using RR.Game2D.Behaviour.ScriptableObjects;
using RR.Game2D.Core.Managers;
using UnityEngine;
namespace RR.Common.Audio
{

View File

@ -25,7 +25,7 @@ namespace RR.Common.Managers
[Tooltip("Длительность фейда по умолчанию (сек)")] [SerializeField]
private float defaultFadeDuration = 0.8f;
[Header("SFX Pool")] [SerializeField] private int sfxPoolSize = 8;
[Header("SFX Pool")] [SerializeField] private int sfxPoolSize = 16;
[SerializeField] private Transform sfxPoolParent; // child: SFX Pool
[Tooltip("Группа микшера для SFX (необязательно)")] [SerializeField]
@ -41,7 +41,7 @@ namespace RR.Common.Managers
private Coroutine crossfadeCoroutine;
private float storedMusicVolumeBeforePause = 1f;
private bool isPausedFaded = false;
#region Unity Lifetime
public void Initialize()

View File

@ -1,5 +1,4 @@
using System;
using System.Collections;
using System.Collections;
using Unity.Cinemachine;
using UnityEngine;

View File

@ -1,7 +1,8 @@
using RR.Game2D.Core.Managers;
using Unity.Cinemachine;
using Unity.Cinemachine;
using UnityEngine;
using RR.Game2D.Core.Managers;
public class CinemachineFindPlayer : MonoBehaviour
{

View File

@ -4,7 +4,6 @@ using UnityEngine.VFX;
using RR.Common.Audio;
using RR.Game2D.Core.Managers;
using Unity.VisualScripting;
namespace RR.Game2D.Entities
{

View File

@ -1,6 +1,7 @@
using UnityEngine;
using RR.Common.Managers;
using RR.Game2D.Core.Managers;
using UnityEngine;
namespace RR.Common.Controllers
{

View File

@ -158,11 +158,11 @@ namespace RR.Game2D.Behaviour
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Coin"))
{
GameManager.Instance.AddCoin();
Destroy(collision.gameObject);
}
// if (collision.CompareTag("Coin"))
// {
// GameManager.Instance.AddCoin();
// Destroy(collision.gameObject);
// }
if (collision.CompareTag("Finish"))
{

View File

@ -1,4 +1,5 @@
using UnityEngine;
using RR.Common.Interfaces;
namespace RR.Game2D.Behaviour

View File

@ -1,9 +1,10 @@
using System.Collections.Generic;
using RR.Game2D.Core.Managers;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using RR.Game2D.Core.Managers;
namespace RR.Game2D.Behaviour.Lighting
{
[RequireComponent(typeof(Collider2D))]

View File

@ -1,4 +1,5 @@
using UnityEngine;
using RR.Game2D.Core.Managers;
using RR.Game2D.Behaviour;

View File

@ -1,4 +1,5 @@
using UnityEngine;
using RR.Common.Interfaces;
using RR.Game2D.Core.Managers;
using RR.Game2D.Behaviour;

View File

@ -1,5 +1,6 @@
using System.Collections;
using UnityEngine;
using RR.Game2D.Core.Managers.Interfaces;
namespace RR.Game2D.Entities.Projectiles

View File

@ -1,4 +1,5 @@
using UnityEngine;
using RR.Game2D.Entities.Projectiles;
namespace RR.Game2D.Behaviour

View File

@ -1,7 +1,8 @@
using RR.Game2D.Behaviour.ScriptableObjects;
using RR.Game2D.Core.Managers;
using UnityEngine;
using UnityEngine;
using UnityEngine.InputSystem;
using RR.Game2D.Core.Managers;
using RR.Game2D.Behaviour.ScriptableObjects;
using RR.Game2D.Entities.Projectiles;
namespace RR.Game2D.Behaviour

View File

@ -1,8 +1,8 @@
using RR.Common.Controllers;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
using RR.Common.Controllers;
[CustomEditor(typeof(MusicController))]
public class MusicController_Inspector : Editor
{

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c028493069ae45179e342fa6668f6aef
timeCreated: 1761819400

View File

@ -0,0 +1,16 @@
using UnityEngine;
using RR.Game2D.Core.Managers;
public class CoinCollectible : Collectible
{
public override bool TryPickup(GameObject newOwner, Transform optionalAttachPoint = null)
{
base.TryPickup(newOwner, optionalAttachPoint);
GameManager.Instance.AddCoin();
Destroy(gameObject);
return true;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7ca95c06b31a03142815bc9f7d95e558

View File

@ -0,0 +1,34 @@
using UnityEngine;
using UnityEngine.VFX;
using RR.Common.Interfaces;
using RR.Common.Audio;
using RR.Game2D.Core.Managers;
[RequireComponent(typeof(Collider2D))]
public class Collectible : MonoBehaviour, IPickable
{
[SerializeField] private SoundEffect pickupSFX;
[SerializeField] private VisualEffect pickupVFX;
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player")) TryPickup(other.gameObject);
}
public virtual bool TryPickup(GameObject newOwner, Transform optionalAttachPoint = null)
{
if (pickupSFX.sound != null)
GameManager.Instance.Audio.PlaySfxAt(pickupSFX.sound, transform.position,
pickupSFX.volume, pickupSFX.pitch);
if (pickupVFX != null)
{
pickupVFX.transform.position = transform.position;
pickupVFX.Play();
pickupVFX.Stop();
}
return true;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bffad3c29c0ba774fbdee5e71f329d78

View File

@ -1,7 +1,6 @@
using System;
using UnityEngine;
using RR.Game2D.Behaviour;
using RR.Game2D.Core.Managers;
using UnityEngine;
namespace RR.Game2D.Entities.Hazards
{

View File

@ -1,8 +1,9 @@
using RR.Game2D.Behaviour;
using RR.Game2D.Core.Managers;
using UnityEngine;
using UnityEngine;
using UnityEngine.VFX;
using RR.Game2D.Behaviour;
using RR.Game2D.Core.Managers;
namespace RR.Game2D.FX
{
[RequireComponent(typeof(VisualEffect))]

View File

@ -343,13 +343,13 @@ namespace RR.Game2D.Core.Managers
/// <summary>
/// Метод добавления монеты
/// </summary>
public void AddCoin()
public void AddCoin(int count = 1)
{
Coins++;
Coins += count;
// Можно заменить на другое поведение
if (Coins >= 100)
{
Coins = 0;
Coins -= 100;
AddLife();
}
// --

View File

@ -1,4 +1,3 @@
using System;
using UnityEngine;
using RR.Common.Audio;

View File

@ -1,6 +1,7 @@
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using RR.Game2D.Core.Managers;
namespace RR.Common.UI

View File

@ -1,10 +1,10 @@
using System.Collections;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
namespace RR.Common.UI
{

View File

@ -1,5 +1,6 @@
using UnityEngine;
using UnityEngine.UI;
using RR.Game2D.Core.Managers;
namespace RR.Common.UI

View File

@ -1,7 +1,7 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using UnityEngine.EventSystems;
namespace RR.Common.UI
{

View File

@ -1,7 +1,8 @@
using UnityEngine;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using UnityEngine.InputSystem;
using RR.Game2D.Core.Managers;
namespace RR.Common.UI

View File

@ -1,5 +1,6 @@
using TMPro;
using UnityEngine;
using UnityEngine;
using TMPro;
using RR.Game2D.Core.Managers;
namespace RR.Common.UI

View File

@ -1,5 +1,6 @@
using RR.Game2D.Core.Managers;
using UnityEngine;
using UnityEngine;
using RR.Game2D.Core.Managers;
public class DebugSettings : MonoBehaviour
{

View File

@ -598,7 +598,7 @@ PlayerSettings:
platformArchitecture: {}
scriptingBackend:
Android: 1
Standalone: 1
Standalone: 0
il2cppCompilerConfiguration: {}
il2cppCodeGeneration: {}
il2cppStacktraceInformation: {}