Bläddra i källkod

新怪,新背景

龙腾猫跃 4 år sedan
förälder
incheckning
f883d9e668
32 ändrade filer med 1272 tillägg och 339 borttagningar
  1. 0 0
      Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/SOURCEHANSANSCN-NORMAL SDF.asset
  2. 20 30
      Assets/Resources/Dice/Dice.prefab
  3. 1 1
      Assets/Resources/Entities/EnemyBase.cs
  4. 1 1
      Assets/Resources/Entities/EnemyHeavy.cs
  5. BIN
      Assets/Resources/Entities/EnemyHeavy.png
  6. 5 5
      Assets/Resources/Entities/EnemyHeavy.prefab
  7. 1 1
      Assets/Resources/Entities/EnemyMover.cs
  8. 2 2
      Assets/Resources/Entities/EnemyMover.prefab
  9. 29 0
      Assets/Resources/Entities/EnemyShooter.cs
  10. 11 0
      Assets/Resources/Entities/EnemyShooter.cs.meta
  11. BIN
      Assets/Resources/Entities/EnemyShooter.png
  12. 134 0
      Assets/Resources/Entities/EnemyShooter.png.meta
  13. 226 0
      Assets/Resources/Entities/EnemyShooter.prefab
  14. 7 0
      Assets/Resources/Entities/EnemyShooter.prefab.meta
  15. 16 0
      Assets/Resources/Entities/EnemyShooterBullet.cs
  16. 11 0
      Assets/Resources/Entities/EnemyShooterBullet.cs.meta
  17. BIN
      Assets/Resources/Entities/EnemyShooterBullet.png
  18. 2 2
      Assets/Resources/Entities/EnemyShooterBullet.png.meta
  19. 154 0
      Assets/Resources/Entities/EnemyShooterBullet.prefab
  20. 7 0
      Assets/Resources/Entities/EnemyShooterBullet.prefab.meta
  21. 20 10
      Assets/Resources/Entities/Player.cs
  22. 1 1
      Assets/Resources/Map/Wall.asset
  23. BIN
      Assets/Resources/Map/Wall.png
  24. 9 3
      Assets/Resources/System/Spawner.cs
  25. 12 5
      Assets/Resources/System/StoryM.cs
  26. BIN
      Assets/Resources/UI/bg0.png
  27. 134 0
      Assets/Resources/UI/bg0.png.meta
  28. BIN
      Assets/Resources/UI/bg1.png
  29. 134 0
      Assets/Resources/UI/bg1.png.meta
  30. 333 276
      Assets/Scenes/SceneMain.unity
  31. 1 1
      ProjectSettings/Physics2DSettings.asset
  32. 1 1
      ProjectSettings/TagManager.asset

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/SOURCEHANSANSCN-NORMAL SDF.asset


+ 20 - 30
Assets/Resources/Dice/Dice.prefab

@@ -11,8 +11,8 @@ GameObject:
   - component: {fileID: 1666923398196175547}
   - component: {fileID: 1666923398196175542}
   - component: {fileID: 1666923398196175541}
-  - component: {fileID: 1666923398196175540}
   - component: {fileID: 1666923398196175543}
+  - component: {fileID: 3203297832167130577}
   m_Layer: 10
   m_Name: Dice
   m_TagString: Dice
@@ -101,41 +101,15 @@ Rigidbody2D:
   m_Simulated: 1
   m_UseFullKinematicContacts: 0
   m_UseAutoMass: 0
-  m_Mass: 10000
+  m_Mass: 10
   m_LinearDrag: 0
   m_AngularDrag: 0.05
-  m_GravityScale: 1
+  m_GravityScale: 0.5
   m_Material: {fileID: 6200000, guid: e938aca3f71562d499deb20bf7e0edcd, type: 2}
   m_Interpolate: 0
   m_SleepingMode: 1
   m_CollisionDetection: 1
-  m_Constraints: 4
---- !u!61 &1666923398196175540
-BoxCollider2D:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1666923398196175546}
-  m_Enabled: 1
-  m_Density: 1
-  m_Material: {fileID: 6200000, guid: e938aca3f71562d499deb20bf7e0edcd, type: 2}
-  m_IsTrigger: 0
-  m_UsedByEffector: 0
-  m_UsedByComposite: 0
-  m_Offset: {x: 0, y: 0}
-  m_SpriteTilingProperty:
-    border: {x: 0, y: 0, z: 0, w: 0}
-    pivot: {x: 0.5, y: 0.5}
-    oldSize: {x: 1, y: 1}
-    newSize: {x: 1, y: 1}
-    adaptiveTilingThreshold: 0.5
-    drawMode: 0
-    adaptiveTiling: 0
-  m_AutoTiling: 0
-  serializedVersion: 2
-  m_Size: {x: 1, y: 1}
-  m_EdgeRadius: 0
+  m_Constraints: 5
 --- !u!114 &1666923398196175543
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -150,6 +124,22 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   key: 4
   canRestore: 1
+--- !u!58 &3203297832167130577
+CircleCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1666923398196175546}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 6200000, guid: e938aca3f71562d499deb20bf7e0edcd, type: 2}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0}
+  serializedVersion: 2
+  m_Radius: 0.6
 --- !u!1 &1666923398225157471
 GameObject:
   m_ObjectHideFlags: 0

+ 1 - 1
Assets/Resources/Entities/EnemyBase.cs

@@ -17,7 +17,7 @@ public abstract class EnemyBase : EntityBase {
         // 死亡判断
         if (currentHp == -1) currentHp = hp;
         currentHp--;
-        if (currentHp < 0) {
+        if (currentHp <= 0) {
             AudioM.Play("enemy_die");
             transform.localScale = Vector3.zero;
             Destroy(gameObject, 1); // 防止动画没播放完导致报错

+ 1 - 1
Assets/Resources/Entities/EnemyHeavy.cs

@@ -17,7 +17,7 @@ public class EnemyHeavy : EnemyBase {
         turnCooldown -= Time.deltaTime;
         if (shouldTurn && turnCooldown <= 0f) {
             movingLeft = !movingLeft;
-            turnCooldown = 0.5f;
+            turnCooldown = 1f;
         }
     }
 

BIN
Assets/Resources/Entities/EnemyHeavy.png


+ 5 - 5
Assets/Resources/Entities/EnemyHeavy.prefab

@@ -102,7 +102,7 @@ Rigidbody2D:
   m_Mass: 5
   m_LinearDrag: 0
   m_AngularDrag: 0.05
-  m_GravityScale: 1
+  m_GravityScale: 0.5
   m_Material: {fileID: 6200000, guid: 6a9410bb3043e384eba63a5622b25c09, type: 2}
   m_Interpolate: 0
   m_SleepingMode: 1
@@ -121,18 +121,18 @@ BoxCollider2D:
   m_IsTrigger: 0
   m_UsedByEffector: 0
   m_UsedByComposite: 0
-  m_Offset: {x: 0, y: 0.5}
+  m_Offset: {x: 0, y: 0.75}
   m_SpriteTilingProperty:
     border: {x: 0, y: 0, z: 0, w: 0}
     pivot: {x: 0.5, y: 0}
-    oldSize: {x: 1, y: 1}
+    oldSize: {x: 1.5, y: 1.5}
     newSize: {x: 1, y: 1}
     adaptiveTilingThreshold: 0.5
     drawMode: 0
     adaptiveTiling: 0
   m_AutoTiling: 0
   serializedVersion: 2
-  m_Size: {x: 1, y: 1}
+  m_Size: {x: 1.5, y: 1.5}
   m_EdgeRadius: 0
 --- !u!114 &9040011293892009549
 MonoBehaviour:
@@ -159,7 +159,7 @@ MonoBehaviour:
   filpSpeed: 0.3
   jumpBufferTime: 0.15
   jumpWolfTime: 0.2
-  baseMass: 3
+  baseMass: 5
   movingLeft: 0
   hp: 15
   knockbackForceH: 30

+ 1 - 1
Assets/Resources/Entities/EnemyMover.cs

@@ -18,7 +18,7 @@ public class EnemyMover : EnemyBase {
         turnCooldown -= Time.deltaTime;
         if (shouldTurn && turnCooldown <= 0f) {
             movingLeft = !movingLeft;
-            turnCooldown = 0.5f;
+            turnCooldown = 1f;
         }
     }
 

+ 2 - 2
Assets/Resources/Entities/EnemyMover.prefab

@@ -102,7 +102,7 @@ Rigidbody2D:
   m_Mass: 1
   m_LinearDrag: 0
   m_AngularDrag: 0.05
-  m_GravityScale: 1
+  m_GravityScale: 0.5
   m_Material: {fileID: 6200000, guid: 6a9410bb3043e384eba63a5622b25c09, type: 2}
   m_Interpolate: 0
   m_SleepingMode: 1
@@ -161,6 +161,6 @@ MonoBehaviour:
   jumpWolfTime: 0.2
   baseMass: 1
   movingLeft: 0
-  hp: 6
+  hp: 5
   knockbackForceH: 40
   knockbackForceV: 10

+ 29 - 0
Assets/Resources/Entities/EnemyShooter.cs

@@ -0,0 +1,29 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EnemyShooter : EnemyBase {
+
+    internal override bool isPressingCrouch() => false;
+    internal override bool isPressDownJump() => false;
+    internal override bool isPressingLeft() => false;
+    internal override bool isPressingRight() => false;
+    internal override void OnHitEnemy(Collision2D collision) {}
+
+    public float shootDelay = 5f, bulletSpeed = 1f; private float shootCooldown = 0f;
+    public GameObject bullet;
+    internal override void OnUpdate() {
+        if (!isLand) return;
+        shootCooldown += Time.deltaTime;
+        if (shootCooldown < shootDelay) return;
+        shootCooldown = 0f;
+        // TODO: ¹¥»÷ÒôЧ
+        // Éú³É×Óµ¯
+        GameObject newBullet = Instantiate(bullet, transform);
+        newBullet.transform.position += new Vector3(0.5f, -0.5f, 0);
+        newBullet.transform.SetParent(null);
+        newBullet.GetComponent<Rigidbody2D>().velocity = new Vector2((float) Modules.randomDefault.NextDouble() - 0.5f, 0.25f).normalized * bulletSpeed;
+    }
+
+
+}

+ 11 - 0
Assets/Resources/Entities/EnemyShooter.cs.meta

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

BIN
Assets/Resources/Entities/EnemyShooter.png


+ 134 - 0
Assets/Resources/Entities/EnemyShooter.png.meta

@@ -0,0 +1,134 @@
+fileFormatVersion: 2
+guid: cd71811f0a949ae42a359249609c18d2
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  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
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 7
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 32
+  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
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 226 - 0
Assets/Resources/Entities/EnemyShooter.prefab

@@ -0,0 +1,226 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6371604957627978580
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6371604957627978583}
+  - component: {fileID: 6371604957627978536}
+  - component: {fileID: 6371604957627978537}
+  - component: {fileID: 6371604957627978582}
+  - component: {fileID: 6371604957627978543}
+  m_Layer: 8
+  m_Name: EnemyShooter
+  m_TagString: Enemy
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6371604957627978583
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6371604957627978580}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -1.08, y: 1.75, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8597255516571522798}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6371604957627978536
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6371604957627978580}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  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: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: -1
+  m_Sprite: {fileID: 21300000, guid: cd71811f0a949ae42a359249609c18d2, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!50 &6371604957627978537
+Rigidbody2D:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6371604957627978580}
+  m_BodyType: 0
+  m_Simulated: 1
+  m_UseFullKinematicContacts: 0
+  m_UseAutoMass: 0
+  m_Mass: 1
+  m_LinearDrag: 0
+  m_AngularDrag: 0.05
+  m_GravityScale: 0.5
+  m_Material: {fileID: 6200000, guid: 6a9410bb3043e384eba63a5622b25c09, type: 2}
+  m_Interpolate: 0
+  m_SleepingMode: 1
+  m_CollisionDetection: 1
+  m_Constraints: 4
+--- !u!61 &6371604957627978582
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6371604957627978580}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 2.5}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0}
+    oldSize: {x: 1, y: 3}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 0.9, y: 1}
+  m_EdgeRadius: 0
+--- !u!114 &6371604957627978543
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6371604957627978580}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 052f443851fac364f96fad4a5859910f, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  spriteNormal: {fileID: 21300000, guid: cd71811f0a949ae42a359249609c18d2, type: 3}
+  spriteDown: {fileID: 0}
+  canCrouch: 0
+  movementSpeed: 0
+  jumpForce: 20
+  horizontalF: 0.5
+  horizontalA: 0.3
+  jumpThreshold: 0.1
+  downA: 0.3
+  fallA: 0.1
+  filpSpeed: 1000000
+  jumpBufferTime: 0.2
+  jumpWolfTime: 0.2
+  baseMass: 5
+  movingLeft: 0
+  hp: 5
+  shootDelay: 1
+  bulletSpeed: 2.5
+  bullet: {fileID: 6338471913790559837, guid: 96699fe6403b7e24795680135973e8a7, type: 3}
+--- !u!1 &8597255516571522799
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8597255516571522798}
+  - component: {fileID: 8597255516571522797}
+  m_Layer: 14
+  m_Name: ShooterBase
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8597255516571522798
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8597255516571522799}
+  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: 6371604957627978583}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!61 &8597255516571522797
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8597255516571522799}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0.1}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0, y: 0}
+    oldSize: {x: 0, y: 0}
+    newSize: {x: 0, y: 0}
+    adaptiveTilingThreshold: 0
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 0.9, y: 0.2}
+  m_EdgeRadius: 0

+ 7 - 0
Assets/Resources/Entities/EnemyShooter.prefab.meta

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

+ 16 - 0
Assets/Resources/Entities/EnemyShooterBullet.cs

@@ -0,0 +1,16 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EnemyShooterBullet : EnemyBase {
+
+    internal override bool isPressingCrouch() => false;
+    internal override bool isPressDownJump() => false;
+    internal override bool isPressingLeft() => movingLeft;
+    internal override bool isPressingRight() => !movingLeft;
+
+    internal override void OnHitEnemy(Collision2D collision) {
+        Destroy(gameObject);
+    }
+
+}

+ 11 - 0
Assets/Resources/Entities/EnemyShooterBullet.cs.meta

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

BIN
Assets/Resources/Entities/EnemyShooterBullet.png


+ 2 - 2
Assets/Resources/Map/Wall.png.meta → Assets/Resources/Entities/EnemyShooterBullet.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 0eefa124a369acd48b78c018f5ee31a7
+guid: 45bdff39a3fe5d342b429941106756ad
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}
@@ -47,7 +47,7 @@ TextureImporter:
   spriteMeshType: 1
   alignment: 0
   spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 45
+  spritePixelsToUnits: 32
   spriteBorder: {x: 0, y: 0, z: 0, w: 0}
   spriteGenerateFallbackPhysicsShape: 1
   alphaUsage: 1

+ 154 - 0
Assets/Resources/Entities/EnemyShooterBullet.prefab

@@ -0,0 +1,154 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6338471913790559837
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6338471913790559838}
+  - component: {fileID: 6338471913790559834}
+  - component: {fileID: 6338471913790559833}
+  - component: {fileID: 6338471913790559832}
+  - component: {fileID: 2840634545719704270}
+  m_Layer: 13
+  m_Name: EnemyShooterBullet
+  m_TagString: Enemy
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6338471913790559838
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6338471913790559837}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0.33, y: 3.34, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6338471913790559834
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6338471913790559837}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  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: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 1
+  m_Sprite: {fileID: 21300000, guid: 45bdff39a3fe5d342b429941106756ad, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 0.16, y: 0.16}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!50 &6338471913790559833
+Rigidbody2D:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6338471913790559837}
+  m_BodyType: 0
+  m_Simulated: 1
+  m_UseFullKinematicContacts: 0
+  m_UseAutoMass: 0
+  m_Mass: 1
+  m_LinearDrag: 0
+  m_AngularDrag: 0.05
+  m_GravityScale: 0.1
+  m_Material: {fileID: 0}
+  m_Interpolate: 0
+  m_SleepingMode: 1
+  m_CollisionDetection: 0
+  m_Constraints: 4
+--- !u!58 &6338471913790559832
+CircleCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6338471913790559837}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0}
+  serializedVersion: 2
+  m_Radius: 0.25
+--- !u!114 &2840634545719704270
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6338471913790559837}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 03097d2a123acdd439036a6370f814d6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  spriteNormal: {fileID: 0}
+  spriteDown: {fileID: 0}
+  canCrouch: 0
+  movementSpeed: 0
+  jumpForce: 20
+  horizontalF: 1
+  horizontalA: 0
+  jumpThreshold: 0.1
+  downA: 0
+  fallA: 0
+  filpSpeed: 100000
+  jumpBufferTime: 0
+  jumpWolfTime: 0
+  baseMass: 1
+  movingLeft: 0
+  hp: 1

+ 7 - 0
Assets/Resources/Entities/EnemyShooterBullet.prefab.meta

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

+ 20 - 10
Assets/Resources/Entities/Player.cs

@@ -27,19 +27,27 @@ public class Player : EntityBase {
     public float knockbackForceH = 30f, knockbackForceV = 15f;
     internal override void OnHitBorder() {
         Hurt();
-        transform.position = new Vector3(0, 8, 0);
+        transform.position = new Vector3(-6, 10, 0);
     }
     internal override void OnHitEnemy(Collision2D collision) {
-        Hurt();
-        int face = collision.transform.position.x < transform.position.x ? 1 : -1;
-        rb.velocity = new Vector2(face * knockbackForceH, knockbackForceV);
+        if (Hurt()) {
+            int face = collision.transform.position.x < transform.position.x ? 1 : -1;
+            rb.velocity = new Vector2(face * knockbackForceH, knockbackForceV);
+        }
     }
-    public void Hurt() {
-        hp--;
-        AudioM.Play("hurt");
-        rb.velocity = Vector2.zero;
-        DOTween.Kill("ScreenShake");
-        Camera.current.DOShakePosition(0.3f, 0.3f, 20).SetId("ScreenShake");
+    public float resistanceOnHurt = 1f; private float resistanceTime = 0f;
+    public bool Hurt() {
+        if (resistanceTime <= 0.001f) {
+            resistanceTime = resistanceOnHurt;
+            hp--;
+            AudioM.Play("hurt");
+            rb.velocity = Vector2.zero;
+            DOTween.Kill("ScreenShake");
+            Camera.current.DOShakePosition(0.3f, 0.3f, 20).SetId("ScreenShake");
+            return true;
+        } else {
+            return false;
+        }
     }
 
     // ÖÎÁÆ
@@ -58,6 +66,8 @@ public class Player : EntityBase {
     public float bulletSpeed = 50f, bulletKnockback = 1f;
     public GameObject bullet; public TMPro.TextMeshProUGUI textBullet;
     internal override void OnUpdate() {
+        // ÎÞµÐ
+        if (resistanceTime > 0f) resistanceTime -= Time.deltaTime;
         // ÖÎÁÆ
         if (isPressingCrouch() && hp < 3 && isLand) {
             currentHealTime += Time.deltaTime;

+ 1 - 1
Assets/Resources/Map/Wall.asset

@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 13312, guid: 0000000000000000e000000000000000, type: 0}
   m_Name: Wall
   m_EditorClassIdentifier: 
-  m_Sprite: {fileID: 21300000, guid: 0eefa124a369acd48b78c018f5ee31a7, type: 3}
+  m_Sprite: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_Transform:
     e00: 1

BIN
Assets/Resources/Map/Wall.png


+ 9 - 3
Assets/Resources/System/Spawner.cs

@@ -5,14 +5,20 @@ using UnityEngine;
 public class Spawner : MonoBehaviour {
     public GameObject prefeb;
     public EnemyType type;
-    public enum EnemyType { Arrow, Mover, Heavy }
+    public enum EnemyType { Arrow, Mover, Heavy, Shooter }
     public GameObject parent;
     public void Spawn() {
         GameObject obj = Instantiate(prefeb, transform);
         obj.transform.parent = parent.transform;
         obj.GetComponent<EnemyBase>().movingLeft = transform.localScale.x < 0;
-        if (type == EnemyType.Arrow) {
-            obj.transform.position += Mathf.RoundToInt((float) Modules.randomDefault.NextDouble() - 0.15f) * Vector3.down * 0.8f;
+        switch (type) {
+            case EnemyType.Arrow:
+                obj.transform.position += Mathf.RoundToInt((float) Modules.randomDefault.NextDouble() - 0.15f) * Vector3.down * 0.8f;
+                break;
+            case EnemyType.Shooter:
+                obj.transform.localScale = Vector3.one;
+                obj.transform.position += Modules.randomDefault.Next(-2, 2) * Vector3.left;
+                break;
         }
     }
 }

+ 12 - 5
Assets/Resources/System/StoryM.cs

@@ -23,8 +23,9 @@ public class StoryM : MonoBehaviour {
         DOTween.Kill("StoryFont"); textStory.DOColor(Color.white, 0.25f).SetId("StoryFont");
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX((textStory.rectTransform.rect.width + 40f) / 100f, 0.15f).SetId("StoryBackground");
         // 消失
-        float time = 1.5f + (isCn ? textCn.Length / 1.5f : textEn.Split(" ").Length / 2f);
-        StopCoroutine(nameof(WaitForHideStoryText)); StartCoroutine(WaitForHideStoryText(time));
+        float time = 1.5f + (isCn ? textCn.Length / 3f : textEn.Split(" ").Length / 3f);
+        StopCoroutine("WaitForHideStoryText"); StartCoroutine("WaitForHideStoryText", time);
+        Debug.Log(time + " -> " + textCn);
         return time;
     }
     IEnumerator WaitForStoryText(string textCh, string textEn = "English") {
@@ -33,6 +34,7 @@ public class StoryM : MonoBehaviour {
     IEnumerator WaitForHideStoryText(float delay) {
         yield return new WaitForSeconds(delay);
         textStory.text = "";
+        Debug.Log(delay);
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX(0, 0.2f).SetId("StoryBackground");
     }
 
@@ -52,7 +54,8 @@ public class StoryM : MonoBehaviour {
         }
         // 实际刷怪
         spawners[type].Shuffle();
-        for (int i = 0; i < Mathf.Min(6, count); i++) {
+        for (int i = 0; i < count; i++) {
+            if (i >= spawners[type].Count) i = 0;
             spawners[type][i].Spawn();
         }
     }
@@ -81,10 +84,14 @@ public class StoryM : MonoBehaviour {
             canSpawnArrow = true;
             Spawn(Spawner.EnemyType.Mover, 3);
             SetStoryText("先刷几个瞎晃悠的", "");
-            yield return new WaitForSeconds(4f);
+            yield return new WaitForSeconds(3f);
+
+            Spawn(Spawner.EnemyType.Shooter);
+            SetStoryText("炮塔!", "");
+            yield return new WaitForSeconds(2f);
 
             Spawn(Spawner.EnemyType.Heavy, 2);
-            SetStoryText("然后是两个贼硬的……", "");
+            SetStoryText("最后是两个贼硬的……", "");
             yield return StartCoroutine(WaitUntilClear(2));
 
             canSpawnArrow = false;

BIN
Assets/Resources/UI/bg0.png


+ 134 - 0
Assets/Resources/UI/bg0.png.meta

@@ -0,0 +1,134 @@
+fileFormatVersion: 2
+guid: 402451a85ddddfb4c8c08e9abe58b4ae
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  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
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 35
+  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
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/UI/bg1.png


+ 134 - 0
Assets/Resources/UI/bg1.png.meta

@@ -0,0 +1,134 @@
+fileFormatVersion: 2
+guid: ff8a49df24e42834586285d878866a93
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  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
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 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
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 333 - 276
Assets/Scenes/SceneMain.unity


+ 1 - 1
ProjectSettings/Physics2DSettings.asset

@@ -53,4 +53,4 @@ Physics2DSettings:
   m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
   m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
   m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
-  m_LayerCollisionMatrix: bbffffffbbf7ffff88f7fffffff7ffffbbf7ffffbbf7ffffc8f7ffffffe7ffffffd7fffffff3fffffff5ffff01c0ffff7fe7ffffffd6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+  m_LayerCollisionMatrix: bb9fffffbb97ffff8897ffffffd7ffffbb97ffffbb97ffffc897ffffffa7ffffff97fffffff3ffffff95ffff0180ffff7fa7ffff8092ffff08c2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

+ 1 - 1
ProjectSettings/TagManager.asset

@@ -24,7 +24,7 @@ TagManager:
   - Marker
   - Bullet
   - EnemyArrow
-  - 
+  - EnemyBase
   - 
   - 
   - 

Vissa filer visades inte eftersom för många filer har ändrats