Initial commit

This commit is contained in:
Lncvrt committed 2026-03-12 18:09:09 -07:00
commit f4f6af2aa5
96 files changed
+1772

No files matched your search

+103
View File
@@ -0,0 +1,103 @@
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
#
.utmp/
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
*.log
# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control.
*.blend1
*.blend1.meta
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Recordings can get excessive in size
/[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Jetbrains Rider personal-layer settings
*.DotSettings.user
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.slnx
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Mono auto generated files
mono_crash.*
# Builds
*.apk
*.aab
*.unitypackage
*.unitypackage.meta
*.app
# Crashlytics generated file
crashlytics-build.properties
# TestRunner generated files
InitTestScene*.unity*
# Addressables default ignores, before user customizations
/ServerData
/[Aa]ssets/StreamingAssets/aa*
/[Aa]ssets/AddressableAssetsData/link.xml*
/[Aa]ssets/Addressables_Temp*
# By default, Addressables content builds will generate addressables_content_state.bin
# files in platform-specific subfolders, for example:
# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin
/[Aa]ssets/AddressableAssetsData/*/*.bin*
# Visual Scripting auto-generated files
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
# Auto-generated scenes by play mode tests
/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity*
# MacOS Stuff
.DS_STORE
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 54687c558a9ffd34185220e1a56359b4
folderAsset: yes
timeCreated: 1773357855
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b969fd4f8babd3448987fe6e5d1ab239
folderAsset: yes
timeCreated: 1773357856
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: f85fe7696edaecf47ad8c81a63e8cfdf
timeCreated: 1773357860
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

+56
View File
@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: a0c8b50894d7bc54ba599e0a804350d9
timeCreated: 1773357858
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 4c6f6040b3d6e694e9a625b3cdd0f9ca
timeCreated: 1773357856
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 3f9211713170ac5498a4788e16d16968
timeCreated: 1773357856
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 4ebd9ebdb7fb68143bf2cfa54d0d4fa0
timeCreated: 1773357856
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 1f9252a41fef8a54a83932735e8ee083
timeCreated: 1773357856
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: b66dc68111a89e74eb1617b189dc0e60
timeCreated: 1773357859
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 5296c6d500dbcf240ade6b24d6c88948
timeCreated: 1773357857
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 25fc6e658313961478fee863c6f62db0
folderAsset: yes
timeCreated: 1773357855
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 9b24712baa61ab74c9bd79bd5bfcf1d7
timeCreated: 1773357944
licenseType: Free
TrueTypeFontImporter:
serializedVersion: 2
fontSize: 16
forceTextureCase: -2
characterSpacing: 1
characterPadding: 0
includeFontData: 1
use2xBehaviour: 0
fontNames: []
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

+56
View File
@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 7e003bc702a34344f986e7aa4ea80cdb
timeCreated: 1773357858
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+56
View File
@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 65aae302a872df04ab54a6255e0870c0
timeCreated: 1773357857
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: 0
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b85b53b12a42d43489589297321a5af4
folderAsset: yes
timeCreated: 1773357856
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: b9bc88abad49ebf40ba59461590982b5
timeCreated: 1773357921
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 70ec226b32dd79b4fb732ec4a26a5c24
timeCreated: 1773357900
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 8631b8ecbdd322c41a9b24edf678088c
timeCreated: 1773357909
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f2400f3481ca3b540915e6b9a886c1bc
timeCreated: 1773357938
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 189e05c53c4af2547ad56b91b9b94f7a
timeCreated: 1773357860
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 938fd3b060366a64ebe762a807a0f127
timeCreated: 1773357918
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 5b03ff5d2ed978c46a2f8efcbb6654e8
timeCreated: 1773357891
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f8252eba5b954794d924e6109e7a87e6
timeCreated: 1773357944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: deee606a2c7e9b64883a33b4d57d2004
timeCreated: 1773357933
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 874692067251d474bb88b0da56842e55
timeCreated: 1773357909
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 29f8b27f93426ec448e75ad9735cedd2
folderAsset: yes
timeCreated: 1773357855
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 714a014f802a0e940a9179b3cbd3a9f7
timeCreated: 1773357904
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 6a8076fb57b81cd479741751db070525
timeCreated: 1773357900
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: c4c44a0c870cb6e4297e27ce1ac679f0
timeCreated: 1773357933
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 8d5a4a9f2e8a1f94c82d398d98ceeddd
timeCreated: 1773357918
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 23d1da3a8a0218b4782380323578c0fe
timeCreated: 1773357874
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: b8728e86c6cf8ea4fac77dd6ac353c4e
timeCreated: 1773357921
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: c22617592eb0ad346be0eb709ffbcf2f
timeCreated: 1773357924
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 74a32ecd71b248549ad5613fdabfb1f3
timeCreated: 1773357908
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 3f70564e211b3f74bbed944b7e8720bf
timeCreated: 1773357879
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: e518a46c36fce8f40a99ba8207e46c01
timeCreated: 1773357938
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 50546d6e71be5af43bf890f4edf78d25
timeCreated: 1773357890
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 2
sampleRateSetting: 1
sampleRateOverride: 44100
compressionFormat: 1
quality: .810000002
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 9695f4e079810f5419171bc25ef9795a
folderAsset: yes
timeCreated: 1773357576
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 780863beac31b7e44ae2937275c9af4e
timeCreated: 1773357576
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 065df0bd35c53e845a6af36d1518410c
folderAsset: yes
timeCreated: 1773358351
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
+58
View File
@@ -0,0 +1,58 @@
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class GameMusicHandler : MonoBehaviour
{
[SerializeField] private AudioClip[] audioClips;
private AudioSource audioSource;
private int lastIndex = -1;
private bool isPaused = false;
void Start()
{
audioSource = GetComponent<AudioSource>();
PlayNextClip();
}
void Update()
{
if (!audioSource.isPlaying && !isPaused) PlayNextClip();
}
void PlayNextClip()
{
if (audioClips.Length == 0) return;
int index;
do index = Random.Range(0, audioClips.Length);
while (audioClips.Length > 1 && index == lastIndex);
lastIndex = index;
audioSource.clip = audioClips[index];
audioSource.Play();
}
public void PauseMusic()
{
if (audioSource.isPlaying)
{
audioSource.Pause();
isPaused = true;
}
}
public void ResumeMusic()
{
if (isPaused)
{
audioSource.Play();
isPaused = false;
}
}
public void RestartMusic()
{
audioSource.Stop();
audioSource.Play();
}
}
+12
View File
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f5323972fb1b6b74d9bc8af1684f5590
timeCreated: 1773359907
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+439
View File
@@ -0,0 +1,439 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class GamePlayer : MonoBehaviour
{
public static GamePlayer Instance;
private readonly float spawnRate = 1f;
private float nextSpawnTime;
internal int score;
private int attempts;
private float boostLeft;
private float slownessLeft;
private float speedyLeft;
private float antiLeft;
private float goldenLeft;
[SerializeField] private Text scoreText;
[SerializeField] private Text boostText;
[SerializeField] internal AudioSource backgroundMusic;
[SerializeField] private GameObject berryParent;
[SerializeField] private Image bird;
[SerializeField] private GameObject berryTemplate;
[SerializeField] private Rigidbody2D rb;
[SerializeField] private RectTransform canvasRect;
[SerializeField] private BoxCollider2D groundCollider;
public readonly List<GameObject> berries = new List<GameObject>();
private readonly List<int> noGravityBerries = new List<int>();
private bool hasJumped = false;
internal bool IsGrounded()
{
CircleCollider2D birdCol = bird.GetComponent<CircleCollider2D>();
Vector2 feetPos = (Vector2)bird.transform.position + Vector2.down * (birdCol.radius + 0.05f);
return groundCollider.OverlapPoint(feetPos);
}
public void Awake()
{
Instance = this;
}
public void Start()
{
UpdateStats(0, 1);
}
void MoveBird()
{
float speedModifier = 1f;
bool doMoveRight = false;
bool doMoveLeft = false;
bool doJump = false;
bool doRestart = false;
if (boostLeft > 0f || speedyLeft > 0f) speedModifier = 1.39f;
else if (slownessLeft > 0f) speedModifier = 0.56f;
if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.J))
{
doMoveLeft = true;
}
if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.L))
{
doMoveRight = true;
}
if (Input.GetKey(KeyCode.Space) || Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W) ||
Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.K) ||
Input.GetKey(KeyCode.I) || Input.GetMouseButton(0))
{
doJump = true;
}
if (Input.GetKey(KeyCode.R))
{
doRestart = true;
}
if (doMoveLeft && !doMoveRight)
{
bird.transform.position += new Vector3(-(576f * (speedModifier * canvasRect.lossyScale.x) * Time.deltaTime), 0f, 0f);
ClampPosition(bird);
bird.transform.localScale = new Vector3(1f, 1f, 1f);
}
if (doMoveRight && !doMoveLeft)
{
bird.transform.position += new Vector3(576f * (speedModifier * canvasRect.lossyScale.x) * Time.deltaTime, 0f, 0f);
ClampPosition(bird);
bird.transform.localScale = new Vector3(-1f, 1f, 1f);
}
if (doMoveLeft || doMoveRight) groundCollider.transform.position = new Vector2(bird.transform.position.x, groundCollider.transform.position.y);
if (doJump && IsGrounded() && !hasJumped)
{
hasJumped = true;
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Jump"), Camera.main.transform.position, 0.75f);
if (boostLeft > 0f || speedyLeft > 0f) rb.velocity = new Vector2(rb.velocity.x, 480f * canvasRect.lossyScale.y);
else if (slownessLeft > 0f) rb.velocity = new Vector2(rb.velocity.x, 300f * canvasRect.lossyScale.y);
else rb.velocity = new Vector2(rb.velocity.x, 380f * canvasRect.lossyScale.y);
}
if (!IsGrounded()) hasJumped = false;
if (doRestart)
{
if (score != 0) Respawn();
}
if (antiLeft > 0f || goldenLeft > 0f)
{
List<string> berryTags = new List<string>() { "NormalBerry", "SlowBerry", "UltraBerry", "SpeedyBerry", "RandomBerry", "AntiBerry", "GoldenBerry" };
if (antiLeft > 0f) berryTags.Add("PoisonBerry");
float scale = (canvasRect.lossyScale.x + canvasRect.lossyScale.y) / 2f;
float radius = antiLeft > 0f ? 250f * scale : 325f * scale;
float speed = antiLeft > 0f ? (300f * scale * Time.deltaTime) : -(420f * scale * Time.deltaTime);
foreach (string tag in berryTags)
{
foreach (var berry in GameObject.FindGameObjectsWithTag(tag))
{
RectTransform berryRect = berry.GetComponent<RectTransform>();
Vector3 dir = berryRect.position - bird.GetComponent<RectTransform>().position;
if (dir.magnitude < radius)
{
berryRect.position += speed * dir.normalized;
ClampPosition(berry.GetComponent<Image>());
noGravityBerries.Add(berry.GetInstanceID());
}
else noGravityBerries.Remove(berry.GetInstanceID());
}
}
}
else if (noGravityBerries.Count() != 0) noGravityBerries.Clear();
}
void ClampPosition(Image image)
{
RectTransform birdRect = image.GetComponent<RectTransform>();
float halfW = canvasRect.rect.width / 2f;
float halfBirdW = birdRect.rect.width / 2f;
Vector2 pos = birdRect.anchoredPosition;
pos.x = Mathf.Clamp(pos.x, -halfW + halfBirdW, halfW - halfBirdW);
birdRect.anchoredPosition = pos;
}
void SpawnBerries()
{
if (Time.time < nextSpawnTime)
{
return;
}
if (speedyLeft > 0)
{
nextSpawnTime = Time.time + 1f / (spawnRate * 1.875f);
}
else
{
nextSpawnTime = Time.time + 1f / spawnRate;
}
float spawnProbability = UnityEngine.Random.value;
Image newBerry = Instantiate(berryTemplate).GetComponent<Image>();
newBerry.transform.SetParent(berryParent.transform, false);
if (spawnProbability <= 0.425f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/Berry");
newBerry.tag = "NormalBerry";
}
else if (spawnProbability <= 0.60f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/PoisonBerry");
newBerry.tag = "PoisonBerry";
}
else if (spawnProbability <= 0.65f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/SlowBerry");
newBerry.tag = "SlowBerry";
}
else if (spawnProbability <= 0.75f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/UltraBerry");
newBerry.tag = "UltraBerry";
}
else if (spawnProbability <= 0.85f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/SpeedyBerry");
newBerry.tag = "SpeedyBerry";
}
else if (spawnProbability <= 0.90f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/BerryNoColor");
newBerry.tag = "RandomBerry";
RainbowImage randomBerryRainbowImage = newBerry.gameObject.AddComponent<RainbowImage>();
randomBerryRainbowImage.frequency = 5f;
}
else if (spawnProbability <= 0.95f)
{
newBerry.sprite = Resources.Load<Sprite>("Berries/AntiBerry");
newBerry.tag = "AntiBerry";
}
else
{
newBerry.sprite = Resources.Load<Sprite>("Berries/GoldenBerry");
newBerry.tag = "GoldenBerry";
}
float spawnPositionX = UnityEngine.Random.Range(-(canvasRect.rect.width / 2 - newBerry.rectTransform.rect.width), canvasRect.rect.width / 2 - newBerry.rectTransform.rect.width);
newBerry.transform.localPosition = new Vector3(spawnPositionX, (canvasRect.rect.height / 2) + newBerry.rectTransform.rect.height, 0f);
newBerry.gameObject.SetActive(true);
berries.Add(newBerry.gameObject);
}
public void Update()
{
if (rb.gravityScale != 100f * canvasRect.lossyScale.y) rb.gravityScale = 100f * canvasRect.lossyScale.y;
SpawnBerries();
MoveBird();
if (boostLeft > 0f)
{
boostLeft -= Time.deltaTime;
boostText.text = "Boost expires in " + string.Format("{0:0.0}", boostLeft) + "s";
}
else if (slownessLeft > 0f)
{
slownessLeft -= Time.deltaTime;
boostText.text = "Slowness expires in " + string.Format("{0:0.0}", slownessLeft) + "s";
}
else if (speedyLeft > 0f)
{
speedyLeft -= Time.deltaTime;
boostText.text = "Speed expires in " + string.Format("{0:0.0}", speedyLeft) + "s";
}
else if (antiLeft > 0f)
{
antiLeft -= Time.deltaTime;
boostText.text = "Berry repellent expires in " + string.Format("{0:0.0}", antiLeft) + "s";
}
else if (goldenLeft > 0f)
{
goldenLeft -= Time.deltaTime;
boostText.text = "Berry magnet expires in " + string.Format("{0:0.0}", goldenLeft) + "s";
}
else
{
boostText.text = "";
}
foreach (GameObject berry in berries.ToList())
{
if (berry == null)
{
berries.Remove(berry);
continue;
}
if (berry.GetComponent<RectTransform>().anchoredPosition.y < -(canvasRect.rect.height / 2) - berry.GetComponent<RectTransform>().rect.height)
{
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
}
else
{
CircleCollider2D birdCol = bird.GetComponent<CircleCollider2D>();
CircleCollider2D berryCol = berry.GetComponent<CircleCollider2D>();
Vector2 birdPos = bird.transform.position;
Vector2 berryPos = berry.transform.position;
float distance = Vector2.Distance(birdPos, berryPos);
float radiusSum = (birdCol.radius / 2) + (berryCol.radius / 2);
if (distance <= radiusSum)
{
switch (berry.tag)
{
case "NormalBerry":
DoNormalBerry(berry);
break;
case "PoisonBerry":
DoPoisonBerry();
break;
case "SlowBerry":
DoSlowBerry(berry);
break;
case "UltraBerry":
DoUltraBerry(berry);
break;
case "SpeedyBerry":
DoSpeedyBerry(berry);
break;
case "RandomBerry":
DoRandomBerry(berry);
break;
case "AntiBerry":
DoAntiBerry(berry);
break;
case "GoldenBerry":
DoGoldenBerry(berry);
break;
}
}
}
if (berry != null) berry.GetComponent<Rigidbody2D>().velocity = noGravityBerries.Contains(berry.GetInstanceID()) ? Vector2.zero : new Vector2(0f, speedyLeft == 0.0f ? (-300f * canvasRect.lossyScale.y) : (-550f * canvasRect.lossyScale.y));
}
}
void Respawn()
{
bird.GetComponent<RectTransform>().anchoredPosition = new Vector3(0f, 64f, 0f);
groundCollider.GetComponent<RectTransform>().anchoredPosition = new Vector2(0f, -2.5f);
bird.transform.localScale = new Vector3(1f, 1f, 1f);
rb.velocity = new Vector3();
score = 0;
boostLeft = 0f;
slownessLeft = 0f;
speedyLeft = 0f;
antiLeft = 0f;
UpdateStats(0, 1);
foreach (GameObject berry in berries) Destroy(berry);
berries.Clear();
noGravityBerries.Clear();
}
void UpdateStats(int scoreAddAmount, int attemptAddAmount)
{
score += scoreAddAmount;
attempts += attemptAddAmount;
scoreText.text = string.Format("Score: {0} \u2022 Attempts: {1}", score, attempts);
}
void DoNormalBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Eat"), Camera.main.transform.position, 1.2f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
UpdateStats(1, 0);
}
void DoPoisonBerry()
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Death"), Camera.main.transform.position, 1.2f);
Respawn();
UpdateStats(0, 0);
}
void DoSlowBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Downgrade"), Camera.main.transform.position, 0.35f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
boostLeft = 0f;
slownessLeft = 10f;
speedyLeft = 0f;
antiLeft = 0f;
goldenLeft = 0f;
if (score > 0)
{
UpdateStats(-1, 0);
}
}
void DoUltraBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Powerup"), Camera.main.transform.position, 0.35f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
speedyLeft = 0f;
antiLeft = 0f;
goldenLeft = 0f;
if (slownessLeft > 0f)
{
slownessLeft = 0f;
UpdateStats(1, 0);
}
else
{
boostLeft += 10f;
UpdateStats(5, 0);
}
}
void DoSpeedyBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/SpeedyPowerup"), Camera.main.transform.position, 0.35f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
boostLeft = 0f;
slownessLeft = 0f;
speedyLeft = 10f;
antiLeft = 0f;
goldenLeft = 0f;
UpdateStats(10, 0);
}
void DoRandomBerry(GameObject berry)
{
Action[] funcs = {
() => DoNormalBerry(berry),
() => DoSlowBerry(berry),
() => DoUltraBerry(berry),
() => DoSpeedyBerry(berry),
() => DoAntiBerry(berry),
() => DoGoldenBerry(berry)
};
funcs[UnityEngine.Random.Range(0, funcs.Length)]();
}
void DoAntiBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Downgrade"), Camera.main.transform.position, 0.35f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
boostLeft = 0f;
slownessLeft = 0f;
speedyLeft = 0f;
antiLeft = 10f;
goldenLeft = 0f;
UpdateStats(0, 0);
}
void DoGoldenBerry(GameObject berry)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Powerup"), Camera.main.transform.position, 0.35f);
berries.Remove(berry);
noGravityBerries.Remove(berry.GetInstanceID());
Destroy(berry);
boostLeft = 0f;
slownessLeft = 0f;
speedyLeft = 0f;
antiLeft = 0f;
goldenLeft = 10f;
UpdateStats(4, 0);
}
}
+12
View File
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: bdc6d588e9085f445ba050bd1d8791a5
timeCreated: 1773358355
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+22
View File
@@ -0,0 +1,22 @@
using UnityEngine;
using UnityEngine.UI;
public class RainbowImage : MonoBehaviour
{
public float frequency = 1f;
private Image targetImage;
void Awake()
{
targetImage = gameObject.GetComponent<Image>();
}
void Update()
{
float t = Time.time * frequency;
float r = Mathf.Sin(t) * 0.5f + 0.5f;
float g = Mathf.Sin(t + 2f) * 0.5f + 0.5f;
float b = Mathf.Sin(t + 4f) * 0.5f + 0.5f;
targetImage.color = new Color(r, g, b);
}
}
+12
View File
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4d3120bac131a684b9546296f3331a25
timeCreated: 1773358835
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
m_EditorVersion: 5.2.5f1
m_StandardAssetsVersion: 0
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.