From 6253bd856c8da6ea8c4df66992c9254d8084069a Mon Sep 17 00:00:00 2001 From: Roman <1325980292@qq.com> Date: Sun, 12 Dec 2021 23:40:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=9A=E6=90=AD=E5=BB=BA?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E7=9A=84=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.实装一些美术素材 2.完成木马召唤小怪攻击逻辑 (1.修复伊斯兰小怪的炸飞方向丢失Bug (2.给伊斯兰小怪两种被击飞模式,当被普通武器攻击,轻度正常击飞,当被炸弹炸飞,剧烈飞出 3.完成木马喷射炸弹攻击逻辑 (1.与召唤小怪逻辑类似 (2.创建炸弹类 (3.3次喷射,仅确定首次力度和方向,后两次依靠倍率改变力度 4.完成炸弹逻辑,用于召唤炸弹和喷射炸弹两种攻击方式 (1.碰到东西即爆炸 (2.有一个触发器表示爆炸范围,当有东西进入 ,尝试获取被炸对象接口,如果有,则将其加入攻击列表,爆炸时对列表中的每一个对象造成伤害,攻击力来自于owner (3.当有物体离开触发器,康康它是否在列表中,若在,将其移除 5.整理脚本 下班 --- Assets/Prefabs/伊斯兰.prefab | 1 + Assets/Prefabs/炸弹.prefab | 163 ++++++++++ Assets/Prefabs/炸弹.prefab.meta | 7 + Assets/Scenes/TeLuoYiStageTest.unity | 310 ++++++++++++++++++-- Assets/Scenes/test.unity | 28 +- Assets/Scripts/Bommer.cs | 115 ++++++++ Assets/Scripts/Bommer.cs.meta | 11 + Assets/Scripts/Enemy.cs | 2 +- Assets/Scripts/MyPlayer.cs | 18 +- Assets/Scripts/TrojanHorse.cs | 66 ++++- Assets/Scripts/YiSiLan.cs | 44 ++- Assets/Sprites/早期临时混乱/地面.png | Bin 0 -> 4535 bytes Assets/Sprites/早期临时混乱/地面.png.meta | 96 ++++++ Assets/Sprites/早期临时混乱/背景图.png | Bin 0 -> 58865 bytes Assets/Sprites/早期临时混乱/背景图.png.meta | 96 ++++++ UserSettings/EditorUserSettings.asset | 4 +- 16 files changed, 918 insertions(+), 43 deletions(-) create mode 100644 Assets/Prefabs/炸弹.prefab create mode 100644 Assets/Prefabs/炸弹.prefab.meta create mode 100644 Assets/Scripts/Bommer.cs create mode 100644 Assets/Scripts/Bommer.cs.meta create mode 100644 Assets/Sprites/早期临时混乱/地面.png create mode 100644 Assets/Sprites/早期临时混乱/地面.png.meta create mode 100644 Assets/Sprites/早期临时混乱/背景图.png create mode 100644 Assets/Sprites/早期临时混乱/背景图.png.meta diff --git a/Assets/Prefabs/伊斯兰.prefab b/Assets/Prefabs/伊斯兰.prefab index b5b032d..c468248 100644 --- a/Assets/Prefabs/伊斯兰.prefab +++ b/Assets/Prefabs/伊斯兰.prefab @@ -161,6 +161,7 @@ MonoBehaviour: deadRotationRangeMin: 500 boomTime: 0 hitToflyParameter: {x: 3, y: 3} + canHitPlayer: 0 --- !u!50 &4312721376048571789 Rigidbody2D: serializedVersion: 4 diff --git a/Assets/Prefabs/炸弹.prefab b/Assets/Prefabs/炸弹.prefab new file mode 100644 index 0000000..d4964b1 --- /dev/null +++ b/Assets/Prefabs/炸弹.prefab @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7438740031623559657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7438740031623559663} + - component: {fileID: 7438740031623559656} + - component: {fileID: 7438740031623559662} + - component: {fileID: 7438740031623559661} + - component: {fileID: 7438740031623559635} + - component: {fileID: 7438740031623559660} + m_Layer: 0 + m_Name: "\u70B8\u5F39" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7438740031623559663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.98, y: -1.46, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7438740031623559656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 328d1361227b9fd40b3fc2f5b1ad2fe0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!212 &7438740031623559662 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 3 + m_Sprite: {fileID: 21300000, guid: 6f62c397230d6d845b87a8e53d67c0e1, 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!61 &7438740031623559661 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + 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 +--- !u!50 &7438740031623559635 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &7438740031623559660 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7438740031623559657} + 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.5 diff --git a/Assets/Prefabs/炸弹.prefab.meta b/Assets/Prefabs/炸弹.prefab.meta new file mode 100644 index 0000000..f624b96 --- /dev/null +++ b/Assets/Prefabs/炸弹.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f425457493cafb409f540876c51609c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/TeLuoYiStageTest.unity b/Assets/Scenes/TeLuoYiStageTest.unity index 1a75506..1b3dbe5 100644 --- a/Assets/Scenes/TeLuoYiStageTest.unity +++ b/Assets/Scenes/TeLuoYiStageTest.unity @@ -123,6 +123,36 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &230279235 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 230279236} + m_Layer: 7 + m_Name: "\u55B7\u5C04\u70B8\u5F39\u70B9" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &230279236 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 230279235} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.27, y: 2.21, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1208549691} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &482671851 GameObject: m_ObjectHideFlags: 0 @@ -495,7 +525,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 600486443} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.59000015, y: -0.44, z: -10} + m_LocalPosition: {x: -0.59000015, y: -0.32, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1074312559} @@ -532,6 +562,88 @@ Transform: m_Father: {fileID: 482671858} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1068582822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1068582823} + - component: {fileID: 1068582824} + m_Layer: 0 + m_Name: "\u80CC\u666F\u56FE" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1068582823 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068582822} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 3.13, z: 0} + m_LocalScale: {x: 1, y: 0.672269, z: 1} + m_Children: [] + m_Father: {fileID: 1123387179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1068582824 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1068582822} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 0524a118693de844792a47d96c9f05c4, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 16.56, y: 9.6} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1074312558 GameObject: m_ObjectHideFlags: 3 @@ -578,7 +690,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_BindingMode: 1 - m_FollowOffset: {x: 7.06, y: 0, z: -10} + m_FollowOffset: {x: 7.06, y: 0.26, z: -10} m_XDamping: 0 m_YDamping: 0 m_ZDamping: 0 @@ -692,8 +804,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1091564853} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.15303718, y: 3.1327734, z: 0} - m_LocalScale: {x: 0.050341185, y: 0.672269, z: 1} + m_LocalPosition: {x: -2.512396, y: 3.1327734, z: 0} + m_LocalScale: {x: 0.82644624, y: 0.672269, z: 1} m_Children: [] m_Father: {fileID: 1095864398} m_RootOrder: 0 @@ -758,7 +870,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3} + m_Sprite: {fileID: 21300000, guid: 04793ec80b1d3534a99686af8f3fb3af, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 @@ -777,10 +889,11 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1095864396} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 3.0399995, y: -4.66, z: 0} - m_LocalScale: {x: 19.864452, y: 1.4875, z: 1} + m_LocalPosition: {x: 2.94, y: -4.66, z: 0} + m_LocalScale: {x: 1.1, y: 1.4875, z: 1} m_Children: - {fileID: 1091564855} + - {fileID: 1859446325} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -801,14 +914,14 @@ BoxCollider2D: m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} + oldSize: {x: 16.56, y: 0.84} 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: 16.55, y: 0.84} m_EdgeRadius: 0 --- !u!114 &1095864400 MonoBehaviour: @@ -835,11 +948,11 @@ BoxCollider2D: m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 - m_Offset: {x: 0.47, y: 0.19} + m_Offset: {x: 8.2, y: 0.19} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} + oldSize: {x: 16.56, y: 0.84} newSize: {x: 1, y: 1} adaptiveTilingThreshold: 0.5 drawMode: 0 @@ -885,14 +998,14 @@ BoxCollider2D: m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} + oldSize: {x: 16.56, y: 0.84} 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: 16.55, y: 0.84} m_EdgeRadius: 0 --- !u!212 &1123387178 SpriteRenderer: @@ -934,7 +1047,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3} + m_Sprite: {fileID: 21300000, guid: 04793ec80b1d3534a99686af8f3fb3af, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 @@ -953,9 +1066,10 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1123387176} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -16.82, y: -4.66, z: 0} - m_LocalScale: {x: 19.864452, y: 1.4875, z: 1} - m_Children: [] + m_LocalPosition: {x: -15.27, y: -4.66, z: 0} + m_LocalScale: {x: 1.1, y: 1.4875, z: 1} + m_Children: + - {fileID: 1068582823} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -984,11 +1098,11 @@ BoxCollider2D: m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 - m_Offset: {x: 0.47, y: 0.19} + m_Offset: {x: 8.21, y: 0.19} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} + oldSize: {x: 16.56, y: 0.84} newSize: {x: 1, y: 1} adaptiveTilingThreshold: 0.5 drawMode: 0 @@ -1077,11 +1191,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1208549689} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -7.65, y: -0.44, z: 0} + m_LocalPosition: {x: -7.65, y: -0.58, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1266729902} - {fileID: 1367477611} + - {fileID: 230279236} m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1104,10 +1219,14 @@ MonoBehaviour: canBeHit: 1 state: 0 HPLeft: 0 - timeBetweenAttacks: 1 + timeBetweenAttacks: 0 yiSiLan: {fileID: 4312721376048571783, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} yiSiLanMinTime: 3 yiSiLanMaxTime: 6 + sprayBoomer: {fileID: 7438740031623559657, guid: 6f425457493cafb409f540876c51609c, type: 3} + sprayBoomerTime: 1 + sprayBoomerDir: {x: 1.5, y: 1} + sprayBoomerMultiple: 1.5 isMove: 0 --- !u!61 &1208549693 BoxCollider2D: @@ -1133,7 +1252,7 @@ BoxCollider2D: adaptiveTiling: 0 m_AutoTiling: 0 serializedVersion: 2 - m_Size: {x: 3.9314287, y: 6.9942856} + m_Size: {x: 2.93, y: 6.9942856} m_EdgeRadius: 0 --- !u!61 &1208549694 BoxCollider2D: @@ -1247,7 +1366,7 @@ SpriteRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1266729901} - m_Enabled: 1 + m_Enabled: 0 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 @@ -1370,7 +1489,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1305025512} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.59000015, y: -0.47660133, z: -10} + m_LocalPosition: {x: -0.59000015, y: -0.32, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2009,6 +2128,88 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1859446324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1859446325} + - component: {fileID: 1859446326} + m_Layer: 0 + m_Name: "\u80CC\u666F\u56FE" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1859446325 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859446324} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 3.1299996, z: 0} + m_LocalScale: {x: 1, y: 0.672269, z: 1} + m_Children: [] + m_Father: {fileID: 1095864398} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1859446326 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859446324} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 0524a118693de844792a47d96c9f05c4, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 16.56, y: 9.6} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2108572885 GameObject: m_ObjectHideFlags: 0 @@ -2160,3 +2361,64 @@ MonoBehaviour: optionalRotationMode: 0 optionalScrambleMode: 0 optionalString: +--- !u!1001 &7438740032665260723 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7438740031623559657, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_Name + value: "\u70B8\u5F39" + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559657, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalPosition.x + value: 4.98 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalPosition.y + value: -1.46 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7438740031623559663, guid: 6f425457493cafb409f540876c51609c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6f425457493cafb409f540876c51609c, type: 3} diff --git a/Assets/Scenes/test.unity b/Assets/Scenes/test.unity index 496c860..5f69d11 100644 --- a/Assets/Scenes/test.unity +++ b/Assets/Scenes/test.unity @@ -571,7 +571,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 326335321} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 4.24, y: 0.153, z: 0} + m_LocalPosition: {x: 1.77, y: 0.153, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 321454206} @@ -882,7 +882,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 519420028} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5.0099998, y: 0.953, z: -10} + m_LocalPosition: {x: 2.54, y: 0.953, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 189736997} @@ -974,7 +974,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!61 &906466580 BoxCollider2D: m_ObjectHideFlags: 0 @@ -1439,7 +1439,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1160673894} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5.0099998, y: 0.953, z: -10} + m_LocalPosition: {x: 2.54, y: 0.953, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1225561446} @@ -2345,10 +2345,30 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4312721376048571782, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} + propertyPath: hitToflyParameter.x + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4312721376048571782, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} + propertyPath: hitToflyParameter.y + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4312721376048571782, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} + propertyPath: deadRotationRangeMax + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 4312721376048571782, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} + propertyPath: deadRotationRangeMin + value: 500 + objectReference: {fileID: 0} - target: {fileID: 4312721376048571783, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} propertyPath: m_Name value: "\u4F0A\u65AF\u5170" objectReference: {fileID: 0} + - target: {fileID: 4312721376048571783, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: fbfdd225dbb0dfe4ca6246532e0ec9cb, type: 3} --- !u!1001 &7746389308018742370 diff --git a/Assets/Scripts/Bommer.cs b/Assets/Scripts/Bommer.cs new file mode 100644 index 0000000..b4c29ca --- /dev/null +++ b/Assets/Scripts/Bommer.cs @@ -0,0 +1,115 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using DG.Tweening; +using Sirenix.OdinInspector; + +/// +/// 炸弹类,控制木马喷射和召唤的炸弹 +/// +public class Bommer : MonoBehaviour +{ + // _____ _ _ _ + // | __ \ | | | (_) + // | |__) | _| |__ | |_ ___ + // | ___/ | | | '_ \| | |/ __| + // | | | |_| | |_) | | | (__ + // |_| \__,_|_.__/|_|_|\___| + + /// + /// 可以被炸弹炸到的物体,实现一些炸与被炸的功能 + /// + public interface I_CanBeBoomedObj{ + /// + /// 被炸的时候触发 + /// + void BeBoomed(float atk, int dir); + Transform ObjTransform(); + } + [HideInInspector] + public Rigidbody2D m_rigidbody; + + // _____ _ _ + // | __ \ (_) | | + // | |__) | __ ___ ____ _| |_ ___ + // | ___/ '__| \ \ / / _` | __/ _ \ + // | | | | | |\ V / (_| | || __/ + // |_| |_| |_| \_/ \__,_|\__\___| + + private TrojanHorse owner; + /// + /// 爆炸会受影响的东西,只能是伊斯兰、木马或者玩家 + /// + private List boomingObj; + + // _____ _ _ ____ _ + // / ____| | | | _ \ | | + // | | __ _| | | |_) | __ _ ___| | __ + // | | / _` | | | _ < / _` |/ __| |/ / + // | |___| (_| | | | |_) | (_| | (__| < + // \_____\__,_|_|_|____/ \__,_|\___|_|\_\ + + void Start(){ + Init(); + } + + // _ _ _ + // | \ | | | | + // | \| | ___ _ __ _ __ ___ __ _| | + // | . ` |/ _ \| '__| '_ ` _ \ / _` | | + // | |\ | (_) | | | | | | | | (_| | | + // |_| \_|\___/|_| |_| |_| |_|\__,_|_| + + private void Init(){ + //找到必须的物体和组件 + owner = FindObjectOfType(); + boomingObj = new List(); + m_rigidbody = GetComponent(); + } + + + /// + /// 爆炸的瞬间执行 + /// + private void Boom(){ + //对于每一个范围内的被炸物体 + foreach(I_CanBeBoomedObj obj in boomingObj){ + //执行被炸事件 + obj.BeBoomed(owner.ATK, + (obj.ObjTransform().position.x - transform.position.x > 0) ? 1 : 1 + ); + } + //销毁自己 + Destroy(gameObject); + } + + // _____ _ _ _ _ + // / ____| | | (_) (_) + // | | ___ | | |_ ___ _ ___ _ __ + // | | / _ \| | | / __| |/ _ \| '_ \ + // | |___| (_) | | | \__ \ | (_) | | | | + // \_____\___/|_|_|_|___/_|\___/|_| |_| + + //当与物体碰上 + void OnCollisionEnter2D(Collision2D other){ + //直接爆炸,不管是什么 + Boom(); + } + //当有东西进入爆炸范围 + void OnTriggerEnter2D(Collider2D other){ + //看看是不是可被炸对象(对象需要实现被炸接口) + if(other.TryGetComponent(out I_CanBeBoomedObj obj)){ + //是则将其加入被炸对象列表 + boomingObj.Add(obj); + } + } + //当有东西离开爆炸范围 + void OnTriggerExit2D(Collider2D other){ + //看看是不是可被炸对象(对象需要实现被炸接口) + if(other.TryGetComponent(out I_CanBeBoomedObj obj)){ + //是则将其移除出被炸对象列表 + boomingObj.Remove(obj); + } + } + +} diff --git a/Assets/Scripts/Bommer.cs.meta b/Assets/Scripts/Bommer.cs.meta new file mode 100644 index 0000000..81c4c2e --- /dev/null +++ b/Assets/Scripts/Bommer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 328d1361227b9fd40b3fc2f5b1ad2fe0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy.cs b/Assets/Scripts/Enemy.cs index 11b4070..754d86d 100644 --- a/Assets/Scripts/Enemy.cs +++ b/Assets/Scripts/Enemy.cs @@ -118,7 +118,7 @@ public class Enemy : MonoBehaviour // | | ___ | | |_ ___ _ ___ _ __ // | | / _ \| | | / __| |/ _ \| '_ \ // | |___| (_) | | | \__ \ | (_) | | | | - // \_____\___/|_|_|_|___/_|\___/|_| |_| + // \_____\___/|_|_|_|___/_|\___/|_| |_| protected void OnCollisionEnter2D(Collision2D other)//当有物体碰上 { if(other.collider.gameObject.TryGetComponent(out MyPlayer player)) diff --git a/Assets/Scripts/MyPlayer.cs b/Assets/Scripts/MyPlayer.cs index 440cda6..1760938 100644 --- a/Assets/Scripts/MyPlayer.cs +++ b/Assets/Scripts/MyPlayer.cs @@ -8,7 +8,7 @@ using Sirenix.OdinInspector; /// /// 玩家类,控制玩家相关的东西 /// -public class MyPlayer : MonoBehaviour +public class MyPlayer : MonoBehaviour, Bommer.I_CanBeBoomedObj { // _____ _ _ _ // | __ \ | | | (_) @@ -473,6 +473,22 @@ public class MyPlayer : MonoBehaviour public void OnThrowingEnd(){isThrowing = false;} + // _____ _ __ + // |_ _| | | / _| + // | | _ __ | |_ ___ _ __| |_ __ _ ___ ___ + // | | | '_ \| __/ _ \ '__| _/ _` |/ __/ _ \ + // _| |_| | | | || __/ | | || (_| | (_| __/ + // |_____|_| |_|\__\___|_| |_| \__,_|\___\___| + + public void BeBoomed(float atk, int dir){ + OnBeHit(atk,dir); + } + + public Transform ObjTransform(){return transform;} + + + + // _______ _ _____ _ // |__ __| | |/ ____| | // | | ___ ___ | | | | | __ _ ___ ___ diff --git a/Assets/Scripts/TrojanHorse.cs b/Assets/Scripts/TrojanHorse.cs index 3ad5403..83c39b9 100644 --- a/Assets/Scripts/TrojanHorse.cs +++ b/Assets/Scripts/TrojanHorse.cs @@ -7,7 +7,7 @@ using DG.Tweening; /// /// 木马类 /// -public class TrojanHorse : Enemy +public class TrojanHorse : Enemy, Bommer.I_CanBeBoomedObj { // _____ _ _ _ // | __ \ | | | (_) @@ -36,6 +36,26 @@ public class TrojanHorse : Enemy /// [Header("召唤小怪攻击中,生成小怪之间间隔的最长时间")][FoldoutGroup("木马")] public float yiSiLanMaxTime; + /// + /// 炸弹的预制体,用来喷射的那种 + /// + [Header("炸弹的预制体,用来喷射的那种")][FoldoutGroup("预制体")] + public GameObject sprayBoomer; + /// + /// 喷射炸弹的时间间隔 + /// + [Header("喷射炸弹的时间间隔")][FoldoutGroup("木马")] + public float sprayBoomerTime; + /// + /// 喷射炸弹的方向 + /// + [Header("喷射炸弹的方向")][FoldoutGroup("木马")] + public Vector2 sprayBoomerDir; + /// + /// 喷射炸弹的力度倍数 + /// + [Header("喷射炸弹的力度倍数")][FoldoutGroup("木马")] + public float sprayBoomerMultiple; // _____ _ _ // | __ \ (_) | | @@ -57,6 +77,10 @@ public class TrojanHorse : Enemy /// 召唤伊斯兰小怪的初始位置 /// private Transform callYiSiLanPosition; + /// + /// 喷射炸弹的起点 + /// + private Transform sprayBoomerPosition; // _____ _ _ ____ _ // / ____| | | | _ \ | | @@ -68,6 +92,7 @@ public class TrojanHorse : Enemy void Start(){Init();} void Update(){ + //如果开关开着,则移动 if(isMove) Move(); } @@ -79,7 +104,9 @@ public class TrojanHorse : Enemy // | |\ | (_) | | | | | | | | (_| | | // |_| \_|\___/|_| |_| |_| |_|\__,_|_| private void Init(){ + //找到必须的组件和物体 callYiSiLanPosition = transform.Find("小怪召唤点"); + sprayBoomerPosition = transform.Find("喷射炸弹点"); } /// @@ -90,9 +117,13 @@ public class TrojanHorse : Enemy yield return new WaitForSeconds(timeBetweenAttacks); //决定行动 Action action = DecideAAction(); + //开始行动 StartCoroutine(action()); } + /// + /// 决定行动的函数 + /// private Action DecideAAction(){ Action action; ///从0、1、2中随机生成一种 @@ -103,7 +134,7 @@ public class TrojanHorse : Enemy action = SprayBoomer; else action = CallBoomer; - return CallYiSiLan; + return SprayBoomer; } /// @@ -131,8 +162,22 @@ public class TrojanHorse : Enemy /// /// private IEnumerator SprayBoomer(){ - yield return new WaitForEndOfFrame(); Debug.Log("正在使用:喷射炸弹"); + //循环若干次(这里先硬编码成3次) + for(int i = 0; i < 3; i++){ + //实例化预制体 + Bommer bommer = Instantiate( + sprayBoomer, + sprayBoomerPosition.position, + Quaternion.identity + ).GetComponent(); + //初始化喷出的炸弹 + //给予初始的速度 + yield return new WaitForEndOfFrame(); + bommer.m_rigidbody.velocity = sprayBoomerDir * (i + 1) * sprayBoomerMultiple; + //等待喷射炸弹时间间隔 + yield return new WaitForSeconds(sprayBoomerTime); + } ATKEnd(); } /// @@ -182,4 +227,19 @@ public class TrojanHorse : Enemy /// 攻击结束的时候触发,重新开始新一轮攻击 /// public void ATKEnd(){StartCoroutine(ATK());} + + + // _____ _ __ + // |_ _| | | / _| + // | | _ __ | |_ ___ _ __| |_ __ _ ___ ___ + // | | | '_ \| __/ _ \ '__| _/ _` |/ __/ _ \ + // _| |_| | | | || __/ | | || (_| | (_| __/ + // |_____|_| |_|\__\___|_| |_| \__,_|\___\___| + + public void BeBoomed(float atk, int dir){ + OnBeHit(MyPlayer.AtkMethod.反弹炸弹,dir); + } + + public Transform ObjTransform(){return transform;} + } diff --git a/Assets/Scripts/YiSiLan.cs b/Assets/Scripts/YiSiLan.cs index ee24bcc..f69e57f 100644 --- a/Assets/Scripts/YiSiLan.cs +++ b/Assets/Scripts/YiSiLan.cs @@ -6,7 +6,7 @@ using Sirenix.OdinInspector; /// /// 伊斯兰小怪类 /// -public class YiSiLan : Enemy +public class YiSiLan : Enemy, Bommer.I_CanBeBoomedObj { // _____ _ _ _ // | __ \ | | | (_) @@ -45,6 +45,7 @@ public class YiSiLan : Enemy /// /// 记录此时玩家是否在爆炸范围内 /// + [Header("记录此时玩家是否在爆炸范围内")][SerializeField][FoldoutGroup("伊斯兰")][ReadOnly] private bool canHitPlayer; // _____ _ _ ____ _ @@ -89,15 +90,23 @@ public class YiSiLan : Enemy transform.rotation.z); } /// - /// 伊斯兰爆炸的时候Call这个,通过协程触发,因为爆炸有个延时 + /// 碰到玩家的时候触发,伊斯兰爆炸的时候Call这个,通过协程触发,因为爆炸有个延时 /// private void Boom(){ - OnDead(); + // + deadRotationRangeMax *= 3; + deadRotationRangeMin *= 3; + hitToflyParameter *= 3; + state = State.dead; + OnBeHit(MyPlayer.AtkMethod.反弹炸弹,(target.position.x - transform.position.x > 0) ? 1:-1); + // //让自己去世 + // OnDead(); + //判定能否攻击到玩家 if(canHitPlayer){ FindObjectOfType().OnBeHit(ATK,(target.position.x - transform.position.x > 0) ? -1:1); - //加一个扭矩,营造死亡的效果 - m_rigidbody.AddTorque(Random.Range(deadRotationRangeMin,deadRotationRangeMax) * - ((target.position.x - transform.position.x > 0) ? -1:1)); + // //加一个扭矩,营造死亡的效果 + // m_rigidbody.AddTorque(Random.Range(deadRotationRangeMin,deadRotationRangeMax) * + // ((target.position.x - transform.position.x > 0) ? -1:1)); } } @@ -160,8 +169,27 @@ public class YiSiLan : Enemy //触发器代表炸弹范围,进入说明能炸到,离开说明炸不到了 protected override void OnTriggerEnter2D(Collider2D other){ base.OnTriggerEnter2D(other); - canHitPlayer = true; + if(other.gameObject.TryGetComponent(out MyPlayer player)) + canHitPlayer = true; } - void OnTriggerExit2D(Collider2D other){canHitPlayer = false;} + void OnTriggerExit2D(Collider2D other){ + if(other.gameObject.TryGetComponent(out MyPlayer player)) + canHitPlayer = false; + } + + + // _____ _ __ + // |_ _| | | / _| + // | | _ __ | |_ ___ _ __| |_ __ _ ___ ___ + // | | | '_ \| __/ _ \ '__| _/ _` |/ __/ _ \ + // _| |_| | | | || __/ | | || (_| | (_| __/ + // |_____|_| |_|\__\___|_| |_| \__,_|\___\___| + + public void BeBoomed(float atk, int dir){ + //需要重写 + OnBeHit(MyPlayer.AtkMethod.反弹炸弹,dir); + } + + public Transform ObjTransform(){return transform;} } \ No newline at end of file diff --git a/Assets/Sprites/早期临时混乱/地面.png b/Assets/Sprites/早期临时混乱/地面.png new file mode 100644 index 0000000000000000000000000000000000000000..6798b08c9c3a11a466d9ddb3fe5f2d82fd57ffb9 GIT binary patch literal 4535 zcmaJ^2T&7j*IkNAks>V=>4F82ZlMb*L8+mubOnJxP)Z2B2&hPtCcO#*0Te+Z5Q0dR zCLk^J8ZbaWN~Hf0=Y7BLpHJDDeV#M3yJye6_uM1a4<005xV0AGgyz;RC! zHlR9ATC*@$M@SpB3)s{Z0BD(ion%0ADmwtsXxXc&>FPd&xxri?!d&Z+y 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

${VA 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 WLPVDReUS