Compare commits

..

41 Commits

Author SHA1 Message Date
Pasha Bibko
c31c2574b0 [Feature] Improved accesability 2025-12-04 11:05:53 +00:00
Pasha Bibko
df1a1c145e [Feature] Made text move 2025-12-02 15:35:31 +00:00
Pasha Bibko
28280d87cc [Feature] Improved text look 2025-12-02 13:09:10 +00:00
Pasha Bibko
933bf758d4 [Refactor] Reimplemented changing object sizes 2025-12-02 11:26:37 +00:00
Pasha Bibko
9265cbbf99 [Feature] Added text of powerups 2025-11-28 18:10:10 +00:00
Pasha Bibko
569056a9a5 [Refactor] Made other orbitals attached to a parent holder 2025-11-28 17:29:33 +00:00
Pasha Bibko
80be4cc853 [Refactor] Reworked how OrbitalBehaviour behaves under the hood 2025-11-28 17:26:10 +00:00
Pasha Bibko
2d974f5217 [Refactor] General cleanup 2025-11-27 21:54:11 +00:00
Pasha Bibko
201675720c [Refactor] GlobalOrbitalSettings 2025-11-27 21:32:47 +00:00
Pasha Bibko
540cc700e4 Removed jetbrains IDE folder 2025-11-27 21:13:27 +00:00
Pasha Bibko
7f3f2e3e56 Made player modifiers more effective 2025-11-27 15:03:40 +00:00
Pasha Bibko
eccb70da24 Removed bloom modification 2025-11-27 15:00:40 +00:00
Pasha Bibko
37c0ad0991 Small fixes 2025-11-27 13:50:47 +00:00
Pasha Bibko
886622cd6c Made player mods affect the player 2025-11-27 13:34:55 +00:00
Pasha Bibko
055e688df5 Added player mod (powerups) 2025-11-27 11:21:14 +00:00
Pasha Bibko
0dbbf02789 Saved player score with PlayerPrefs 2025-11-27 10:56:36 +00:00
Pasha Bibko
8291d627c1 Made GlobalInput work with mobile 2025-11-27 10:48:09 +00:00
Pasha Bibko
d61a44b1dc Fixed enemy position [Minor] 2025-11-27 10:25:30 +00:00
Pasha Bibko
6ee784bf4e Added high score
Also made player always render on top of enemies
2025-11-25 15:08:04 +00:00
Pasha Bibko
3ae3d3e0d0 Updated Visual Style 2025-11-25 14:55:33 +00:00
Pasha Bibko
c85076c588 Added build folders to .gitignore 2025-11-25 13:32:34 +00:00
Pasha Bibko
8b141dcd93 Added touch support for controls 2025-11-25 13:24:31 +00:00
Pasha Bibko
4fe8132656 Updated rendering
Made +1 score on ring destruction
2025-11-25 13:18:18 +00:00
Pasha Bibko
229b92e0d0 Added score counter 2025-11-25 11:50:23 +00:00
Pasha Bibko
4f3aab0a36 Inverted player death direction
Cause Unity Transform was bugging out
2025-11-25 11:31:51 +00:00
Pasha Bibko
561594d123 Fixed player death launch 2025-11-25 10:14:25 +00:00
Pasha Bibko
e55f6fc92b Made player launch to center on death 2025-11-25 09:46:43 +00:00
Pasha Bibko
80c625ffc8 Made player launch when hit
Needs fixing
2025-11-20 15:44:07 +00:00
Pasha Bibko
07de9b4fe9 Made local time scale 2025-11-20 15:08:40 +00:00
c0ab668a8d Updated link in README.md 2025-11-20 14:26:02 +00:00
Pasha Bibko
88fa7e4ff3 Made respawn when hit centre 2025-11-20 14:21:46 +00:00
Pasha Bibko
19b2c06fab Reduced nausea 2025-11-20 13:34:25 +00:00
Pasha Bibko
70a09156a1 Updated PP rendering 2025-11-20 13:11:02 +00:00
Pasha Bibko
0ded385c97 Added post processing 2025-11-20 13:01:59 +00:00
Pasha Bibko
9bcc2b917c Made circle rendering work 2025-11-20 12:51:12 +00:00
Pasha Bibko
112a88d07e Changed IDE to rider 2025-11-20 11:32:52 +00:00
Pasha Bibko
583f417e24 Added custom collision 2025-11-20 11:15:29 +00:00
Pasha Bibko
0dce94924c Added basic enemy
Does not attack the player currently
2025-11-18 15:52:13 +00:00
Pasha Bibko
321dc1f149 MAde lines look nicer 2025-11-18 15:34:28 +00:00
Pasha Bibko
5811cb20b1 Made lines set width 2025-11-18 14:59:54 +00:00
Pasha Bibko
9e66cf63d1 Made objects stick to rings 2025-11-18 14:37:09 +00:00
37 changed files with 1965 additions and 339 deletions

8
.gitignore vendored
View File

@@ -64,6 +64,14 @@ sysinfo.txt
*.unitypackage.meta
*.app
# Build output folders
/WebGL-Build
/Win64-Build
/Build
# Rider IDE project files
.idea/
# Crashlytics generated file
crashlytics-build.properties

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,127 +0,0 @@
fileFormatVersion: 2
guid: fb4bc5a0cfdd0764c993dbdcc33b97c7
TextureImporter:
internalIDToNameTable: []
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: 2
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
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: 3
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: 3
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: 3
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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,104 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BlackMat
m_Shader: {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainBump:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- PixelSnap: 0
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableExternalAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Shininess: 0.2
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
- _Specular: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a7292488fc42280428b7d5183069b410
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DarkGreenMat
m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- PixelSnap: 0
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableExternalAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 0, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 22eb1f2017d2a15459d4c10b27104270
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GreenMat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -23,6 +23,10 @@ Material:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -61,10 +65,13 @@ Material:
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- PixelSnap: 0
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableExternalAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
@@ -75,9 +82,17 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 1, b: 0, a: 1}
- _Color: {r: 1, g: 0.63082826, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []

View File

@@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: WhiteMat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -23,6 +23,10 @@ Material:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -61,10 +65,12 @@ Material:
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- PixelSnap: 0
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableExternalAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
@@ -80,4 +86,6 @@ Material:
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a7292488fc42280428b7d5183069b410
guid: 8f49dabfaa53ce947958cc0ed2975b2c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000

138
Assets/Prefabs/Enemy.prefab Normal file
View File

@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &345795220292517504
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8341506432217282029}
- component: {fileID: 3813189644929098082}
m_Layer: 0
m_Name: Enemy
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8341506432217282029
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 345795220292517504}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.4, y: 0.4, z: 0.4}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 1739635715747709762}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3813189644929098082
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 345795220292517504}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a4502a12b7f15246aa7b9cc2d30a862, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OrbitalPosition:
m_AttachedRing: 0
m_DistanceFromCentre: 0
m_DistanceAlongRadius: 0
m_ObjectRadius: 0
m_IsAttachedToRings: 0
m_Behaviour: {fileID: 0}
m_SpinSpeed: 0
--- !u!1 &4804673878835712602
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1739635715747709762}
- component: {fileID: 5026174633141696716}
- component: {fileID: 8577569336777110376}
m_Layer: 0
m_Name: Model
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1739635715747709762
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4804673878835712602}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8341506432217282029}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &5026174633141696716
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4804673878835712602}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a7292488fc42280428b7d5183069b410, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &8577569336777110376
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4804673878835712602}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ec4a924a38b208240b281bd7983b07b7
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3345171783113818284
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5264147178014863578}
- component: {fileID: 8309954331828580361}
- component: {fileID: 7594426098938812954}
m_Layer: 0
m_Name: Model
m_TagString: PlayerMod
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5264147178014863578
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3345171783113818284}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6262878747777363767}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &8309954331828580361
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3345171783113818284}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &7594426098938812954
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3345171783113818284}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8f49dabfaa53ce947958cc0ed2975b2c, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &7367671708397998036
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6262878747777363767}
- component: {fileID: 3305490538895218547}
m_Layer: 0
m_Name: PlayerMod
m_TagString: PlayerMod
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6262878747777363767
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7367671708397998036}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5264147178014863578}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3305490538895218547
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7367671708397998036}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 29014004c04338246b2673078c5d8a52, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OrbitalPosition:
m_AttachedRing: 0
m_DistanceFromCentre: 0
m_DistanceAlongRadius: 0
m_ObjectRadius: 0
m_IsAttachedToRings: 0
m_Behaviour: {fileID: 0}
m_SpinSpeed: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 780bf151465173e4a82da2763da54b2b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &948790708724241901
--- !u!1 &7195916227006500999
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -8,51 +8,52 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3163593764429408667}
- component: {fileID: 5367498319078075666}
- component: {fileID: 3996593117675006400}
- component: {fileID: 291899916163864377}
m_Layer: 0
m_Name: Sprite
m_Name: Renderer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3163593764429408667
--- !u!4 &3996593117675006400
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 948790708724241901}
m_GameObject: {fileID: 7195916227006500999}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.025, y: 1, z: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5052103053041639182}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5367498319078075666
SpriteRenderer:
--- !u!120 &291899916163864377
LineRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 948790708724241901}
m_GameObject: {fileID: 7195916227006500999}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -65,7 +66,7 @@ SpriteRenderer:
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
@@ -73,17 +74,68 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: fb4bc5a0cfdd0764c993dbdcc33b97c7, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2, y: 2}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_Positions:
- {x: 0, y: 0, z: 0}
- {x: 0, y: 0, z: 1}
m_Parameters:
serializedVersion: 3
widthMultiplier: 1
widthCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
colorGradient:
serializedVersion: 2
key0: {r: 1, g: 0, b: 0, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_ColorSpace: 0
m_NumColorKeys: 2
m_NumAlphaKeys: 2
numCornerVertices: 0
numCapVertices: 0
alignment: 0
textureMode: 0
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
m_MaskInteraction: 0
m_SpriteSortPoint: 0
m_UseWorldSpace: 1
m_Loop: 0
m_ApplyActiveColorSpace: 1
--- !u!1 &8276642441649562681
GameObject:
m_ObjectHideFlags: 0
@@ -113,6 +165,6 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3163593764429408667}
- {fileID: 3996593117675006400}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@@ -153,6 +153,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2895addc317815345b19503bab859a6a, type: 3}
m_Name:
m_EditorClassIdentifier:
m_AttachedRing: 0
m_DistanceAlongCircumference: 0
m_ObjectRadius: 0.1
m_SpinSpeed: 0.1
m_DistanceFromCentre: 0
<ObjectRadiusMultiplier>k__BackingField: 1
<IsAttachedToRings>k__BackingField: 1
m_Renderer: {fileID: 104400500}
m_ScoreText: {fileID: 1501855168}
m_ModifierText: {fileID: 1227804579}
m_DefaultMaterial: {fileID: 2100000, guid: 2b4111cfdf7255c48b4c3dbcf9e202a6, type: 2}
m_FreeHitMaterial: {fileID: 2100000, guid: 22eb1f2017d2a15459d4c10b27104270, type: 2}
m_PostProcessVolume: {fileID: 519420033}
--- !u!4 &104400498
Transform:
m_ObjectHideFlags: 0
@@ -218,6 +231,108 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 104400496}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &233643650
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 233643654}
- component: {fileID: 233643653}
- component: {fileID: 233643652}
- component: {fileID: 233643651}
m_Layer: 5
m_Name: INGUI-World
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &233643651
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233643650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &233643652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233643650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &233643653
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233643650}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 519420031}
m_PlaneDistance: 5
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &233643654
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233643650}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1227804578}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
@@ -229,6 +344,8 @@ GameObject:
- component: {fileID: 519420032}
- component: {fileID: 519420031}
- component: {fileID: 519420029}
- component: {fileID: 519420034}
- component: {fileID: 519420033}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
@@ -254,7 +371,7 @@ Camera:
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
@@ -276,7 +393,7 @@ Camera:
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
far clip plane: 25
field of view: 60
orthographic: 1
orthographic size: 5
@@ -303,14 +420,91 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1486841466
--- !u!114 &519420033
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier:
sharedProfile: {fileID: 11400000, guid: 176ee39659a078c4cb0e333f2fec4563, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 0
--- !u!114 &519420034
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
m_Name:
m_EditorClassIdentifier:
volumeTrigger: {fileID: 519420032}
volumeLayer:
serializedVersion: 2
m_Bits: 23
stopNaNPropagation: 1
finalBlitToCameraTarget: 0
antialiasingMode: 3
temporalAntialiasing:
jitterSpread: 0.75
sharpness: 0.25
stationaryBlending: 0.95
motionBlending: 0.85
subpixelMorphologicalAntialiasing:
quality: 2
fastApproximateAntialiasing:
fastMode: 0
keepAlpha: 0
fog:
enabled: 1
excludeSkybox: 1
debugLayer:
lightMeter:
width: 512
height: 256
showCurves: 1
histogram:
width: 512
height: 256
channel: 3
waveform:
exposure: 0.12
height: 256
vectorscope:
size: 256
exposure: 0.12
overlaySettings:
linearDepth: 0
motionColorIntensity: 4
motionGridSize: 64
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles: []
m_AfterStackBundles: []
--- !u!1 &1158970869
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -318,84 +512,334 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1486841468}
- component: {fileID: 1486841467}
m_Layer: 0
m_Name: Light
- component: {fileID: 1158970873}
- component: {fileID: 1158970872}
- component: {fileID: 1158970871}
- component: {fileID: 1158970870}
m_Layer: 5
m_Name: IGUI-Overlay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1486841467
Light:
--- !u!114 &1158970870
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1486841466}
m_GameObject: {fileID: 1158970869}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 1
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &1486841468
--- !u!114 &1158970871
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1158970869}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &1158970872
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1158970869}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 519420031}
m_PlaneDistance: 5
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 1
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &1158970873
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1158970869}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1501855167}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!1 &1227804577
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1227804578}
- component: {fileID: 1227804580}
- component: {fileID: 1227804579}
- component: {fileID: 1227804581}
m_Layer: 5
m_Name: ModifierText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1227804578
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1227804577}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 233643654}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1227804579
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1227804577}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 65
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 65
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text:
--- !u!222 &1227804580
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1227804577}
m_CullTransparentMesh: 1
--- !u!114 &1227804581
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1227804577}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 1, g: 1, b: 1, a: 1}
m_EffectDistance: {x: 2, y: 2}
m_UseGraphicAlpha: 1
--- !u!1 &1501855166
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1501855167}
- component: {fileID: 1501855169}
- component: {fileID: 1501855168}
m_Layer: 5
m_Name: ScoreDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1501855167
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501855166}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1158970873}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 5, y: 5}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1501855168
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501855166}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 50
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 50
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: 0
--- !u!222 &1501855169
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501855166}
m_CullTransparentMesh: 1
--- !u!1 &1692737941
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1692737944}
- component: {fileID: 1692737943}
- component: {fileID: 1692737942}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1692737942
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1692737941}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SendPointerHoverToParent: 1
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1692737943
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1692737941}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1692737944
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1486841466}
m_GameObject: {fileID: 1692737941}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
@@ -433,10 +877,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1b1a209741ad95946a6f0138e93431c4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RadiusSpeed: 4.72
m_DistanceSpeed: 0.6
m_GapDistance: 1
m_RingPrefab: {fileID: 8276642441649562681, guid: 2b69b065f2beade4d91167a23508e29e, type: 3}
<RadiusSpeed>k__BackingField: 0.5
<DistanceSpeed>k__BackingField: 0.6
<GapDistance>k__BackingField: 1
<RingPrefab>k__BackingField: {fileID: 8276642441649562681, guid: 2b69b065f2beade4d91167a23508e29e, type: 3}
<EnemyPrefab>k__BackingField: {fileID: 345795220292517504, guid: ec4a924a38b208240b281bd7983b07b7, type: 3}
<ModifierPrefab>k__BackingField: {fileID: 7367671708397998036, guid: 780bf151465173e4a82da2763da54b2b, type: 3}
--- !u!4 &1827131557
Transform:
m_ObjectHideFlags: 0
@@ -457,6 +903,8 @@ SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 1827131557}
- {fileID: 519420032}
- {fileID: 104400498}
- {fileID: 1486841468}
- {fileID: 519420032}
- {fileID: 1158970873}
- {fileID: 1692737944}
- {fileID: 233643654}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3e98e9784b45f4a458500add6468a752
guid: 481e746898a124b4995e38d3ad27eb3d
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,63 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
m_Name: Main Camera Profile
m_EditorClassIdentifier:
settings:
- {fileID: 6234815572536140264}
--- !u!114 &6234815572536140264
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3}
m_Name: Bloom
m_EditorClassIdentifier:
active: 1
enabled:
overrideState: 1
value: 1
intensity:
overrideState: 1
value: 10
threshold:
overrideState: 1
value: 0
softKnee:
overrideState: 1
value: 0.5
clamp:
overrideState: 1
value: 35
diffusion:
overrideState: 1
value: 3
anamorphicRatio:
overrideState: 1
value: 0
color:
overrideState: 0
value: {r: 1, g: 1, b: 1, a: 1}
fastMode:
overrideState: 0
value: 0
dirtTexture:
overrideState: 0
value: {fileID: 0}
defaultState: 1
dirtIntensity:
overrideState: 0
value: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 176ee39659a078c4cb0e333f2fec4563
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
using System.Collections.Generic;
using UnityEngine;
public class EnemyController : OrbitalBehaviour
{
private static readonly List<EnemyController> Instances = new();
public static void KillAllEnemies()
{
foreach (EnemyController controller in Instances)
{
Destroy(controller.gameObject);
PlayerController.s_PlayerScore++;
}
Instances.Clear();
}
private void Start()
{
Instances.Add(this);
RegisterObject(new OrbitalInitializer
{
DistanceAlongCircumference = Random.Range(0f, Mathf.PI * 2f),
ObjectRadius = 0.1f,
SpinSpeed = 0.7f
});
transform.position = new Vector3(0, 0, -200f);
}
protected override void OnReachCentre()
{
if (BehaviourManager.IsSimulationRunning)
PlayerController.s_PlayerScore++;
Destroy(gameObject);
}
private void OnDestroy()
{
BehaviourManager.UnregisterOrbitalInstance(this);
Instances.Remove(this);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8a4502a12b7f15246aa7b9cc2d30a862
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,52 @@
using UnityEngine;
public static class GlobalInput
{
private class InputTracker : MonoBehaviour
{
private void Start() => DontDestroyOnLoad(gameObject);
private bool m_IsContact;
private bool m_TouchStartedThisFrame;
private float m_HeldTime;
private static bool IsPressedInternal()
{
return
Input.GetMouseButton(0) ||
Input.anyKey ||
Input.touchCount != 0;
}
private void Update()
{
float tmp = m_HeldTime;
m_HeldTime = 0f;
if (!IsPressedInternal())
{
m_IsContact = false;
return;
}
m_TouchStartedThisFrame = !m_IsContact;
m_IsContact = true;
m_HeldTime = tmp + Time.unscaledDeltaTime;
}
public bool _IsScreenClicked() => m_TouchStartedThisFrame;
public bool _IsScreenHeld() => m_IsContact && m_HeldTime > 0.5f;
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void Initialize()
{
GameObject go = new ("InputTracker");
s_InputTracker = go.AddComponent<InputTracker>();
}
private static InputTracker s_InputTracker;
public static bool IsScreenClicked => s_InputTracker._IsScreenClicked();
public static bool IsScreenHeld => s_InputTracker._IsScreenHeld();
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1f0047bf5b13c1a49ae952046f359333
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,250 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public partial class OrbitalBehaviour
{
public class BehaviourManager : MonoBehaviour
{
private static BehaviourManager Instance;
private Vector3[] m_PrecalculatedPositions;
private bool m_CurrentRingAllowsSpawning;
private bool m_IsSimulationRunning;
private bool m_AllowPlayerInput;
public static bool IsSimulationRunning => Instance.m_IsSimulationRunning;
public static bool AllowPlayerInput => Instance.m_AllowPlayerInput;
private float m_LocalDeltaTimeScale = 1f;
private float m_TimeOfLastRingSpawn;
private int m_LastGeneratedRing;
private readonly Dictionary<int, float> m_Distances = new();
private readonly List<OrbitalBehaviour> m_ObjectInstances = new();
private readonly List<Ring> m_Rings = new();
private OrbitalBehaviour m_PlayerInstance;
private GameObject m_ModiferParent;
private GameObject m_EnemyParent;
private GameObject m_RingParent;
private const int CirclePoints = 100;
public static IEnumerator StartPlayerSpeedupModifier()
{
Instance.m_LocalDeltaTimeScale *= 1.5f;
yield return new WaitForSeconds(10f);
Instance.m_LocalDeltaTimeScale /= 1.5f;
Instance.m_LocalDeltaTimeScale *= 2f;
yield return new WaitForSeconds(5f);
Instance.m_LocalDeltaTimeScale /= 2f;
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void OnApplicationStart()
{
GameObject manager = new("OrbitalManager");
DontDestroyOnLoad(manager);
Instance = manager.AddComponent<BehaviourManager>();
Instance.PrecalculatePositions();
Instance.StartCoroutine(RestartSimulation());
Instance.m_ModiferParent = new GameObject("ModifierParent");
Instance.m_EnemyParent = new GameObject("EnemyHolder");
Instance.m_RingParent = new GameObject("RingHolder");
}
private void PrecalculatePositions()
{
m_PrecalculatedPositions = new Vector3[CirclePoints];
for (int idx = 0; idx < m_PrecalculatedPositions.Length; idx++)
{
m_PrecalculatedPositions[idx] = new Vector3
(
x: Mathf.Cos(Mathf.Deg2Rad * (359f / CirclePoints * idx)),
y: Mathf.Sin(Mathf.Deg2Rad * (359f / CirclePoints * idx)),
z: 0
);
}
}
public static IEnumerator RestartSimulation()
{
Instance.m_IsSimulationRunning = false;
Instance.m_AllowPlayerInput = false;
Instance.m_LocalDeltaTimeScale = 7f;
for (int idx = 0; idx < 100; idx++) // 100 = 5 seconds of fixed updates
{
if (Instance.m_PlayerInstance != null)
{
Instance.m_PlayerInstance.m_AttachedRing = Instance.m_LastGeneratedRing;
}
yield return new WaitForFixedUpdate();
}
PlayerController.AttachPlayer();
foreach (OrbitalBehaviour behaviour in Instance.m_ObjectInstances)
{
behaviour.OnSimulationRestart();
}
yield return new WaitForSeconds(1.3f);
Instance.m_IsSimulationRunning = true;
Instance.m_AllowPlayerInput = true;
Instance.m_LocalDeltaTimeScale = 1f;
}
private void SpawnNewRing()
{
GameObject newRing = Instantiate(Settings.Instance.RingPrefab, m_RingParent.transform);
newRing.transform.localScale = new Vector3(12f, 12f, 1f);
Ring ring = newRing.AddComponent<Ring>();
ring.m_ID = m_LastGeneratedRing + 1;
m_Rings.Add(ring);
LineRenderer lineRenderer = newRing.GetComponentInChildren<LineRenderer>();
lineRenderer.loop = true;
lineRenderer.positionCount = CirclePoints;
lineRenderer.startWidth = 0.1f;
lineRenderer.endWidth = 0.1f;
lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
m_LastGeneratedRing = ring.m_ID;
m_TimeOfLastRingSpawn = Time.time;
m_CurrentRingAllowsSpawning = Random.Range(0, 25) != 0;
if (!m_CurrentRingAllowsSpawning && m_AllowPlayerInput)
{
Instantiate(Settings.Instance.ModifierPrefab, m_ModiferParent.transform);
}
}
private void Update()
{
if (Time.time - m_TimeOfLastRingSpawn > Settings.Instance.GapDistance / m_LocalDeltaTimeScale)
{
SpawnNewRing();
}
List<Ring> toRemove = new();
m_Distances.Clear();
foreach (Ring ring in m_Rings)
{
float diff = (m_LocalDeltaTimeScale * Time.deltaTime) * Settings.Instance.DistanceSpeed;
ring.transform.localScale -= new Vector3(diff, diff, 0f);
LineRenderer lineRenderer = ring.GetComponentInChildren<LineRenderer>();
for (int vert = 0; vert < CirclePoints; vert++)
{
lineRenderer.SetPosition(vert, new Vector3
(
x: m_PrecalculatedPositions[vert].x * ring.transform.localScale.x,
y: m_PrecalculatedPositions[vert].y * ring.transform.localScale.y,
z: 10
));
}
float lerp = (ring.transform.localScale.x - 0.5f) / 4f;
Color c = Color.Lerp(Color.black, Color.white, Mathf.Clamp01(lerp));
if (ring.transform.localScale.x < 0.5f)
{
if (m_IsSimulationRunning)
PlayerController.s_PlayerScore++;
toRemove.Add(ring);
}
lineRenderer.startColor = c;
lineRenderer.endColor = c;
m_Distances[ring.m_ID] = ring.transform.localScale.x;
}
foreach (Ring ring in toRemove)
{
m_Rings.Remove(ring);
Destroy(ring.gameObject);
}
foreach (OrbitalBehaviour orbitalPosition in m_ObjectInstances)
{
if (!orbitalPosition.IsAttachedToRings)
continue;
if (!m_Distances.TryGetValue(orbitalPosition.m_AttachedRing, out float distance))
{
orbitalPosition.m_AttachedRing = m_LastGeneratedRing;
orbitalPosition.OnReachCentre();
continue;
}
orbitalPosition.m_DistanceFromCentre = distance;
float deltaTime = Time.deltaTime * m_LocalDeltaTimeScale;
float movement = deltaTime * Settings.Instance.RadiusSpeed * orbitalPosition.m_SpinSpeed;
orbitalPosition.m_DistanceAlongCircumference += movement;
orbitalPosition.m_DistanceAlongCircumference %= Mathf.PI * 2;
orbitalPosition.transform.position = orbitalPosition.TranslateToVector3();
}
}
private void FixedUpdate()
{
foreach (OrbitalBehaviour orbital in m_ObjectInstances)
{
if (orbital == m_PlayerInstance)
continue;
Vector2 a = orbital.TranslateToVector3();
Vector2 b = m_PlayerInstance.TranslateToVector3();
float d = (a - b).magnitude;
float r1 = m_PlayerInstance.m_ObjectRadius * m_PlayerInstance.ObjectRadiusMultiplier;
float r2 = orbital.m_ObjectRadius * orbital.ObjectRadiusMultiplier;
if (d > (r1 + r2))
continue;
m_PlayerInstance.OnOrbitalCollision(orbital);
orbital.OnOrbitalCollision(m_PlayerInstance);
}
if (Random.Range(0, 15) == 0 && m_AllowPlayerInput && m_CurrentRingAllowsSpawning)
{
Instantiate(Settings.Instance.EnemyPrefab, m_EnemyParent.transform);
}
}
public static void UnregisterOrbitalInstance(OrbitalBehaviour instance)
{
Instance.m_ObjectInstances.Remove(instance);
}
public static void RegisterOrbitalInstance(OrbitalBehaviour instance)
{
instance.m_AttachedRing = Instance.m_LastGeneratedRing; // Connects it to last generated ring
Instance.m_ObjectInstances.Add(instance);
}
public static void SetPlayer(OrbitalBehaviour player)
{
Instance.m_PlayerInstance = player;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 49460c83aa57cc6478a9366b88bc63e7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,20 +1,16 @@
using UnityEngine;
public class GlobalOrbitalSettings : MonoBehaviour
public class Settings : MonoBehaviour
{
private static GlobalOrbitalSettings Instance = null;
public static Settings Instance;
[SerializeField, Range(0f, Mathf.PI * 2)] float m_RadiusSpeed = 2f;
public static float RadiusSpeed => Instance.m_RadiusSpeed;
[field: SerializeField, Range(0f, Mathf.PI * 2)] public float RadiusSpeed { get; private set; } = 2f;
[field: SerializeField, Range(0f, 2f)] public float DistanceSpeed { get; private set; } = 0.6f;
[field: SerializeField, Range(0f, 1f)] public float GapDistance { get; private set; } = 0.3f;
[SerializeField, Range(0f, 2f)] float m_DistanceSpeed = 0.6f;
public static float DistanceSpeed => Instance.m_DistanceSpeed;
[field: SerializeField] public GameObject RingPrefab { get; private set; }
[field: SerializeField] public GameObject EnemyPrefab { get; private set; }
[field: SerializeField] public GameObject ModifierPrefab { get; private set; }
[SerializeField, Range(0f, 1f)] float m_GapDistance = 0.3f;
public static float GapDistance => Instance.m_GapDistance;
[SerializeField] GameObject m_RingPrefab;
public static GameObject RingPrefab => Instance.m_RingPrefab;
void Start() => Instance = this;
private void Start() => Instance = this;
}

View File

@@ -1,100 +1,53 @@
using System.Collections.Generic;
using UnityEngine;
public class OrbitalPosition
public partial class OrbitalBehaviour : MonoBehaviour
{
public float DistanceFromCentre = 0;
public float RadiusDistance = 0;
[Header("Orbital Information")]
[SerializeField] private int m_AttachedRing;
[SerializeField] private float m_DistanceAlongCircumference;
[SerializeField] private float m_ObjectRadius = 0.1f;
[SerializeField] private float m_SpinSpeed = 0.1f;
public Transform owner = null;
[SerializeField] private float m_DistanceFromCentre;
public OrbitalPosition(GameObject _owner)
[field: SerializeField] protected float ObjectRadiusMultiplier { get; set; } = 1.0f;
[field: SerializeField] protected bool IsAttachedToRings { get; set; } = true;
protected void RegisterObject(OrbitalInitializer init)
{
owner = _owner.transform;
BehaviourManager.RegisterOrbitalInstance(this);
m_DistanceAlongCircumference = init.DistanceAlongCircumference;
m_ObjectRadius = init.ObjectRadius;
m_SpinSpeed = init.SpinSpeed;
}
public Vector3 TranslateToVec3() => new
public Vector3 TranslateToVector3() => new
(
x: DistanceFromCentre * Mathf.Cos(RadiusDistance),
y: DistanceFromCentre * Mathf.Sin(RadiusDistance)
x: m_DistanceFromCentre * Mathf.Cos(m_DistanceAlongCircumference),
y: m_DistanceFromCentre * Mathf.Sin(m_DistanceAlongCircumference),
z: 0
);
protected virtual void OnOrbitalCollision(OrbitalBehaviour other) { }
protected virtual void OnSimulationRestart() { }
protected virtual void OnReachCentre() { }
protected void AdvanceRing()
{
m_AttachedRing++;
}
}
public class GlobalOrbitalPositionManager : MonoBehaviour
public class OrbitalInitializer
{
static GlobalOrbitalPositionManager s_Instance = null;
private readonly List<OrbitalPosition> m_ObjectInstances = new();
private readonly List<Transform> m_Rings = new();
private float m_TimeOfLastRingSpawn = float.NegativeInfinity;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void OnApplicationStart()
{
GameObject manager = new("GLOBAL ORBITAL MANAGER");
DontDestroyOnLoad(manager);
s_Instance = manager.AddComponent<GlobalOrbitalPositionManager>();
}
public void Update()
{
if (Time.time - m_TimeOfLastRingSpawn > GlobalOrbitalSettings.GapDistance)
{
GameObject newRing = Instantiate(GlobalOrbitalSettings.RingPrefab);
m_Rings.Add(newRing.transform);
newRing.transform.localScale = new Vector3(10f, 10f, 1);
m_TimeOfLastRingSpawn = Time.time;
}
foreach (OrbitalPosition orbitalPosition in m_ObjectInstances)
{
orbitalPosition.DistanceFromCentre = Mathf.Clamp(orbitalPosition.DistanceFromCentre - (Time.deltaTime * GlobalOrbitalSettings.DistanceSpeed), 0f, float.PositiveInfinity);
orbitalPosition.RadiusDistance = (orbitalPosition.RadiusDistance + (Time.deltaTime * GlobalOrbitalSettings.RadiusSpeed)) % (Mathf.PI * 2);
orbitalPosition.owner.position = orbitalPosition.TranslateToVec3();
}
List<Transform> toRemove = new();
foreach (Transform ring in m_Rings)
{
float diff = Time.deltaTime * GlobalOrbitalSettings.DistanceSpeed;
ring.localScale -= new Vector3(diff, diff, 0f);
if (ring.localScale.x < 0)
{
toRemove.Add(ring);
}
}
foreach (Transform ring in toRemove)
{
m_Rings.Remove(ring);
Destroy(ring.gameObject);
}
}
public static void RegisterOrbitalPositionInstance(OrbitalPosition newInstance) =>
s_Instance.m_ObjectInstances.Add(newInstance);
public static void UnregisterOrbitalPositionInstance(OrbitalPosition removedInstance) =>
s_Instance.m_ObjectInstances.Remove(removedInstance);
public float DistanceAlongCircumference { get; set; }
public float ObjectRadius { get; set; }
public float SpinSpeed { get; set; }
}
public abstract class OrbitalPositionBehaviour : MonoBehaviour
public class Ring : MonoBehaviour
{
protected OrbitalPosition m_OrbitalPosition = null;
private void Start()
{
m_OrbitalPosition = new OrbitalPosition(gameObject);
GlobalOrbitalPositionManager.RegisterOrbitalPositionInstance(m_OrbitalPosition);
OnStart();
}
private void OnDestroy() =>
GlobalOrbitalPositionManager.UnregisterOrbitalPositionInstance(m_OrbitalPosition);
public abstract void OnStart();
public int m_ID;
}

View File

@@ -1,21 +1,228 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Rendering.PostProcessing;
public class PlayerController : OrbitalPositionBehaviour
public class PlayerController : OrbitalBehaviour
{
float m_StartPosition;
[Header("References")]
[SerializeField] private MeshRenderer m_Renderer;
[SerializeField] private Text m_ScoreText;
[SerializeField] private Text m_ModifierText;
[SerializeField] private Material m_DefaultMaterial;
[SerializeField] private Material m_FreeHitMaterial;
[SerializeField] private PostProcessVolume m_PostProcessVolume;
public override void OnStart()
private static PlayerController Instance;
private static int s_HighScore = 20;
public static int s_PlayerScore;
private Vector3 m_SuicidePoint;
private float m_DeathLerp;
private bool m_HasFreeHitActive;
private bool m_HasInvincibility;
private bool m_KillingItself;
private void Start()
{
m_OrbitalPosition.DistanceFromCentre = m_StartPosition;
s_HighScore = Mathf.Max(s_HighScore, PlayerPrefs.GetInt("HighScore", 0));
Instance = this;
BehaviourManager.SetPlayer(this);
RegisterObject(new OrbitalInitializer
{
ObjectRadius = 0.1f,
SpinSpeed = 0.2f
});
IsAttachedToRings = true;
}
private void UpdateUI()
{
m_ScoreText.text = s_PlayerScore.ToString();
m_ScoreText.color = s_PlayerScore > s_HighScore ? Color.yellow : Color.white;
m_Renderer.material = m_HasFreeHitActive ? m_FreeHitMaterial : m_DefaultMaterial;
}
private void UpdatePlayerInput()
{
if (GlobalInput.IsScreenClicked && BehaviourManager.AllowPlayerInput)
{
AdvanceRing();
}
}
private void UpdateDeathState()
{
if (!m_KillingItself)
return;
transform.position = Vector3.Lerp(m_SuicidePoint, m_SuicidePoint.normalized * 20f, m_DeathLerp);
m_DeathLerp += Time.deltaTime;
}
public void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
UpdateUI();
UpdatePlayerInput();
UpdateDeathState();
}
private IEnumerator OnGrowPlayerModifier()
{
transform.localScale *= 1.5f;
ObjectRadiusMultiplier = 1.5f;
yield return new WaitForSecondsRealtime(15f);
transform.localScale /= 1.5f;
ObjectRadiusMultiplier = 1.0f;
}
private IEnumerator OnShrinkPlayerModifier()
{
transform.localScale *= 0.6f;
ObjectRadiusMultiplier = 0.6f;
yield return new WaitForSecondsRealtime(15f);
transform.localScale /= 0.6f;
ObjectRadiusMultiplier = 1.0f;
}
private IEnumerator TriggerInvincibility()
{
m_HasFreeHitActive = false;
m_HasInvincibility = true;
yield return new WaitForSecondsRealtime(1f);
m_HasInvincibility = false;
}
private IEnumerator OnModiferPickup()
{
Vector3 start = TranslateToVector3();
Vector3 direction = Vector3.zero - start;
direction.Normalize();
direction *= 3;
Vector3 end = start + direction;
m_ModifierText.transform.position = start;
Color startColor = m_ModifierText.color;
Color endColor = m_ModifierText.color;
endColor.a = 0;
for (float lerp = 0f; lerp < 1f; lerp += Time.deltaTime / 2f)
{
m_OrbitalPosition.DistanceFromCentre += GlobalOrbitalSettings.GapDistance;
m_ModifierText.color = Color.Lerp(startColor, endColor, lerp);
m_ModifierText.transform.position = Vector3.Lerp(start, end, lerp);
yield return new WaitForEndOfFrame();
}
m_ModifierText.color = startColor;
m_ModifierText.text = "";
yield return null;
}
protected override void OnOrbitalCollision(OrbitalBehaviour other)
{
if (!IsAttachedToRings)
return;
if (other.CompareTag("Enemy"))
{
if (m_HasInvincibility)
{
return;
}
if (m_HasFreeHitActive)
{
StartCoroutine(TriggerInvincibility());
return;
}
StartCoroutine(BehaviourManager.RestartSimulation());
m_SuicidePoint = transform.position;
m_KillingItself = true;
m_DeathLerp = 0f;
}
else if (other.CompareTag("PlayerMod"))
{
PlayerModifier mod = (PlayerModifier)other;
m_ModifierText.text = PlayerModifier.ModifierToString(mod.Modifier);
StartCoroutine(OnModiferPickup());
switch (mod.Modifier)
{
case PlayerModifier.Modifiers.GainPoints:
s_PlayerScore += 100;
break;
case PlayerModifier.Modifiers.FreeHit:
m_HasFreeHitActive = true;
break;
case PlayerModifier.Modifiers.GrowPlayer:
StartCoroutine(OnGrowPlayerModifier());
break;
case PlayerModifier.Modifiers.ShrinkPlayer:
StartCoroutine(OnShrinkPlayerModifier());
break;
case PlayerModifier.Modifiers.SpeedUp:
StartCoroutine(BehaviourManager.StartPlayerSpeedupModifier());
break;
case PlayerModifier.Modifiers.ClearAllEnemies:
EnemyController.KillAllEnemies();
break;
default:
Debug.Log($"Collision with unknown modifier occured [{mod.Modifier}]");
break;
}
}
else
{
Debug.Log("Unknown collision occured");
}
}
protected override void OnSimulationRestart()
{
m_KillingItself = false;
m_Renderer.enabled = true;
m_HasFreeHitActive = false;
m_Renderer.material.color = Color.green;
s_HighScore = Math.Max(s_HighScore, s_PlayerScore);
PlayerPrefs.SetInt("HighScore", s_HighScore);
s_PlayerScore = 0;
}
protected override void OnReachCentre()
{
StartCoroutine(BehaviourManager.RestartSimulation());
}
public static void AttachPlayer()
{
Instance.IsAttachedToRings = true;
}
}

View File

@@ -0,0 +1,59 @@
using System;
using UnityEngine;
using URandom = UnityEngine.Random;
public class PlayerModifier : OrbitalBehaviour
{
public enum Modifiers
{
GainPoints,
FreeHit,
GrowPlayer,
ShrinkPlayer,
ClearAllEnemies,
SpeedUp
}
public static string ModifierToString(Modifiers mod) =>
mod switch
{
Modifiers.GainPoints => "100 Points",
Modifiers.FreeHit => "Temporary Shield",
Modifiers.GrowPlayer => "Grow Player",
Modifiers.ShrinkPlayer => "Shrink Player",
Modifiers.ClearAllEnemies => "Clear all enemies",
Modifiers.SpeedUp => "Speed Boost",
_ => "NULL"
};
private static readonly System.Random s_RandomGenerator = new();
public Modifiers Modifier { get; private set; }
private static Modifiers GetRandomModifier()
{
Array possibilities = Enum.GetValues(typeof(Modifiers));
return (Modifiers)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length));
}
private void Start()
{
RegisterObject(new OrbitalInitializer
{
DistanceAlongCircumference = URandom.Range(0f, Mathf.PI * 2f),
ObjectRadius = 0.3f,
SpinSpeed = 1.6f
});
transform.position = new Vector3(0, 0, -100f);
Modifier = GetRandomModifier();
}
protected override void OnOrbitalCollision(OrbitalBehaviour other) => Destroy(gameObject);
protected override void OnReachCentre() => Destroy(gameObject);
private void OnDestroy()
{
BehaviourManager.UnregisterOrbitalInstance(this);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 29014004c04338246b2673078c5d8a52
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -4,6 +4,7 @@
"com.unity.feature.2d": "2.0.1",
"com.unity.ide.rider": "3.0.36",
"com.unity.ide.visualstudio": "2.0.22",
"com.unity.postprocessing": "3.4.0",
"com.unity.test-framework": "1.1.33",
"com.unity.textmeshpro": "3.0.7",
"com.unity.timeline": "1.7.7",

View File

@@ -170,6 +170,15 @@
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.postprocessing": {
"version": "3.4.0",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.modules.physics": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": {
"version": "1.1.33",
"depth": 0,

View File

@@ -603,11 +603,26 @@ PlayerSettings:
webGLMemoryGeometricGrowthStep: 0.2
webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2
scriptingDefineSymbols: {}
scriptingDefineSymbols:
Android: UNITY_POST_PROCESSING_STACK_V2
EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2
GameCoreXboxOne: UNITY_POST_PROCESSING_STACK_V2
Nintendo Switch: UNITY_POST_PROCESSING_STACK_V2
PS4: UNITY_POST_PROCESSING_STACK_V2
PS5: UNITY_POST_PROCESSING_STACK_V2
QNX: UNITY_POST_PROCESSING_STACK_V2
Stadia: UNITY_POST_PROCESSING_STACK_V2
Standalone: UNITY_POST_PROCESSING_STACK_V2
VisionOS: UNITY_POST_PROCESSING_STACK_V2
WebGL: UNITY_POST_PROCESSING_STACK_V2
XboxOne: UNITY_POST_PROCESSING_STACK_V2
tvOS: UNITY_POST_PROCESSING_STACK_V2
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend: {}
il2cppCompilerConfiguration: {}
scriptingBackend:
Standalone: 0
il2cppCompilerConfiguration:
Standalone: 2
il2cppCodeGeneration: {}
managedStrippingLevel:
EmbeddedLinux: 1

View File

@@ -3,7 +3,9 @@
--- !u!78 &1
TagManager:
serializedVersion: 2
tags: []
tags:
- Enemy
- PlayerMod
layers:
- Default
- TransparentFX

View File

@@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 53
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3}
m_Name:
m_EditorClassIdentifier:
assetDefaultFramerate: 60
m_DefaultFrameRate: 60

View File

@@ -4,4 +4,4 @@
# Resources
- [Game Design Document](SpinnerGDD.md)
- [Play here](pashabibko.itch.io)
- [Play here](https://pashabibko.itch.io)

BIN
WebGL-Build.zip Normal file

Binary file not shown.