From c06a8abad0799fae2ed01751454fb40166aafecc Mon Sep 17 00:00:00 2001 From: keshaohong <740612340@qq.com> Date: Sun, 5 Jul 2026 22:50:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BC=A0=E9=80=81=E9=97=A8?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20=E5=A2=9E=E5=8A=A0=E6=97=A0=E6=95=8C?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2.5D Engine/Scripts/HealthSystem.cs | 49 ++ unity/Assets/Scenes/DoorPortal.cs | 10 + unity/Assets/Scenes/Gameplay.unity | 813 +++--------------- .../Scenes/res/Prefabs/door_true.prefab | 97 +++ .../Scenes/res/Prefabs/door_true.prefab.meta | 7 + unity/Assets/UI/Materials/WaterRippleFade.mat | 4 +- unity/Assets/enemy/GameSpawnManager.cs | 39 +- 7 files changed, 322 insertions(+), 697 deletions(-) create mode 100644 unity/Assets/Scenes/res/Prefabs/door_true.prefab create mode 100644 unity/Assets/Scenes/res/Prefabs/door_true.prefab.meta diff --git a/unity/Assets/2.5D Engine/Scripts/HealthSystem.cs b/unity/Assets/2.5D Engine/Scripts/HealthSystem.cs index fbd7bbb..0da9a3b 100644 --- a/unity/Assets/2.5D Engine/Scripts/HealthSystem.cs +++ b/unity/Assets/2.5D Engine/Scripts/HealthSystem.cs @@ -29,10 +29,19 @@ namespace IndianOceanAssets.Engine2_5D [SerializeField] private float fadeDuration = 2f; private bool _isDead = false; // 防止重复触发死亡 + private bool _isInvincible = false; // 无敌状态 + private float _invincibleTimer = 0f; // 无敌剩余时间(<=0 表示永久无敌) + + [Header("受伤无敌")] + [Tooltip("玩家受伤后的无敌时间(秒)")] + [SerializeField] private float damageInvincibleDuration = 2f; /// 是否已死亡(只读) public bool IsDead => _isDead; + /// 是否处于无敌状态(只读) + public bool IsInvincible => _isInvincible; + /// 最大血量(只读) public int MaxHealth => maxHealth; @@ -46,6 +55,7 @@ namespace IndianOceanAssets.Engine2_5D public void Damage(int damageAmount) { if (_isDead) return; // 已死亡,不再处理 + if (_isInvincible) return; // 无敌状态,免疫伤害 health -= damageAmount; @@ -57,6 +67,10 @@ namespace IndianOceanAssets.Engine2_5D if (isPlayer && AudioManager.Instance != null) AudioManager.Instance.PlaySFXFromResources("SFX/Hurt", 0.7f); + // 玩家受伤后进入短暂无敌(防止连续掉血) + if (isPlayer && !_isDead) + MakeInvincible(damageInvincibleDuration); + // If dead if (health <= 0) { @@ -75,6 +89,41 @@ namespace IndianOceanAssets.Engine2_5D } } + /// + /// 进入无敌状态。 + /// duration <= 0 表示永久无敌(直到被外部取消)。 + /// duration > 0 表示限时无敌,到期后自动解除。 + /// + public void MakeInvincible(float duration = 0f) + { + _isInvincible = true; + + if (duration <= 0f) + { + // 永久无敌 + _invincibleTimer = -1f; + StopCoroutine(nameof(InvincibleCountdown)); + } + else + { + // 限时无敌:刷新计时器 + _invincibleTimer = duration; + StopCoroutine(nameof(InvincibleCountdown)); + StartCoroutine(InvincibleCountdown()); + } + } + + /// 限时无敌倒计时协程 + private IEnumerator InvincibleCountdown() + { + while (_invincibleTimer > 0f) + { + _invincibleTimer -= Time.deltaTime; + yield return null; + } + _isInvincible = false; + } + // Handles death logic and effects public void Die() { diff --git a/unity/Assets/Scenes/DoorPortal.cs b/unity/Assets/Scenes/DoorPortal.cs index f2db7a9..66b3c17 100644 --- a/unity/Assets/Scenes/DoorPortal.cs +++ b/unity/Assets/Scenes/DoorPortal.cs @@ -1,5 +1,6 @@ using UnityEngine; using GameFramework; +using IndianOceanAssets.Engine2_5D; /// /// 传送门/出口 Door —— 玩家碰触后触发胜利流程。 @@ -16,6 +17,15 @@ public class DoorPortal : MonoBehaviour void OnTriggerEnter(Collider other) { if (!other.CompareTag("Player")) return; + + // 玩家进入传送门后永久无敌,胜利流程中不再掉血 + var health = other.GetComponent(); + if (health != null) + { + health.MakeInvincible(); // duration<=0 即永久无敌 + Debug.Log("[DoorPortal] 玩家已进入无敌状态"); + } + Debug.Log("[DoorPortal] 玩家进入传送门,触发胜利!"); GameManager.Win(); } diff --git a/unity/Assets/Scenes/Gameplay.unity b/unity/Assets/Scenes/Gameplay.unity index 0572e90..cfe4bb2 100644 --- a/unity/Assets/Scenes/Gameplay.unity +++ b/unity/Assets/Scenes/Gameplay.unity @@ -371,7 +371,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: darknessMaterial: {fileID: 2100000, guid: 6dd18d2379aff3040813ab8005b1898a, type: 2} - debugShowAll: 0 + debugShowAll: 1 minBrightness: 0 darknessColor: {r: 0.01, g: 0.01, b: 0.02, a: 1} lightSoftness: 1 @@ -5025,94 +5025,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!1 &94057967 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 7 - m_Component: - - component: {fileID: 94057968} - - component: {fileID: 94057969} - m_Layer: 0 - m_HasEditorInfo: 1 - m_Name: EchoOutline_cloud1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &94057968 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 94057967} - serializedVersion: 2 - 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: 440821787} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &94057969 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 94057967} - m_Enabled: 0 - 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_virtualGeometry: 0 - m_virtualGeometryShadow: 0 - m_ShadingRate: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11e3d8d6a18b43a46822358d3d579298, 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: 10001 - m_Sprite: {fileID: 21300000, guid: 6c1b89179752fce4e94b424f475abdb8, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.18, y: 1.69} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 --- !u!1 &94462660 GameObject: m_ObjectHideFlags: 0 @@ -11337,91 +11249,6 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.8, y: 3, z: 0.7077024} m_Center: {x: 0, y: 0, z: 0} ---- !u!1001 &232215155 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 301522936781993068, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - - target: {fileID: 6899754420521126267, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Name - value: trap (1) - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.x - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.y - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.z - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.x - value: 7.45 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.y - value: 0.32 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.z - value: 11.34 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_ConstrainProportionsScale - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - insertIndex: -1 - addedObject: {fileID: 1608221887} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} ---- !u!4 &232215156 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - m_PrefabInstance: {fileID: 232215155} - m_PrefabAsset: {fileID: 0} --- !u!1 &232843857 GameObject: m_ObjectHideFlags: 0 @@ -13500,94 +13327,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} m_PrefabInstance: {fileID: 276881049} m_PrefabAsset: {fileID: 0} ---- !u!1 &283807661 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 7 - m_Component: - - component: {fileID: 283807662} - - component: {fileID: 283807663} - m_Layer: 0 - m_HasEditorInfo: 1 - m_Name: EchoOutline_cloud1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &283807662 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283807661} - serializedVersion: 2 - 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: 1072091857} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &283807663 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283807661} - m_Enabled: 0 - 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_virtualGeometry: 0 - m_virtualGeometryShadow: 0 - m_ShadingRate: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11e3d8d6a18b43a46822358d3d579298, 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: 10001 - m_Sprite: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.18, y: 1.69} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 --- !u!1 &284284989 GameObject: m_ObjectHideFlags: 0 @@ -21618,87 +21357,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} m_PrefabInstance: {fileID: 439960526} m_PrefabAsset: {fileID: 0} ---- !u!1001 &440821786 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 511857182} - m_Modifications: - - target: {fileID: 301522936781993068, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 6c1b89179752fce4e94b424f475abdb8, type: 3} - - target: {fileID: 6899754420521126267, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Name - value: door - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.x - value: 0.17530441 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.y - value: 0.17530441 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.z - value: 0.17530441 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.x - value: -2.71 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.y - value: -6.91 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.z - value: 4.28 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - insertIndex: -1 - addedObject: {fileID: 94057968} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} ---- !u!4 &440821787 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - m_PrefabInstance: {fileID: 440821786} - m_PrefabAsset: {fileID: 0} --- !u!1 &441728673 GameObject: m_ObjectHideFlags: 0 @@ -24449,7 +24107,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 440821787} + - {fileID: 8451410411015647321} - {fileID: 26016573} - {fileID: 716662952} - {fileID: 1042709077} @@ -31557,6 +31215,56 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &631691767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 631691769} + - component: {fileID: 631691768} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: GameSpawnManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &631691768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631691767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d4e960f40679de49b4793a1cd339bec, type: 3} + m_Name: + m_EditorClassIdentifier: + playerPrefab: {fileID: 5335793847516647023, guid: a60578acb930546489d4f5b6d598bce8, type: 3} + enemyPrefabs: [] + enemyCounts: + maxEnemies: 5 + playerSafeDistance: 5 +--- !u!4 &631691769 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631691767} + serializedVersion: 2 + 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: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &631719236 GameObject: m_ObjectHideFlags: 0 @@ -51463,91 +51171,6 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.8, y: 3, z: 1.1978499} m_Center: {x: 0, y: 0, z: 0} ---- !u!1001 &1034654557 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 301522936781993068, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - - target: {fileID: 6899754420521126267, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Name - value: trap - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.x - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.y - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.z - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.x - value: 32.34 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.y - value: 0.32 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.z - value: 2.75 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_ConstrainProportionsScale - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - insertIndex: -1 - addedObject: {fileID: 1692087385} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} ---- !u!4 &1034654558 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - m_PrefabInstance: {fileID: 1034654557} - m_PrefabAsset: {fileID: 0} --- !u!1 &1035401570 GameObject: m_ObjectHideFlags: 0 @@ -53190,91 +52813,6 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.8, y: 3, z: 0.97202635} m_Center: {x: 0, y: 0, z: 0} ---- !u!1001 &1072091856 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 301522936781993068, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - - target: {fileID: 6899754420521126267, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_Name - value: trap (2) - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.x - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.y - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalScale.z - value: 0.42766812 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.x - value: 7.55 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.y - value: 0.32 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalPosition.z - value: 7.71 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - propertyPath: m_ConstrainProportionsScale - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - insertIndex: -1 - addedObject: {fileID: 283807662} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} ---- !u!4 &1072091857 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8451410411389343811, guid: 3b47d748441aeb64da7d88325a75f1b7, type: 3} - m_PrefabInstance: {fileID: 1072091856} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1072218995 PrefabInstance: m_ObjectHideFlags: 0 @@ -80306,94 +79844,6 @@ PrefabInstance: addedObject: {fileID: 2078274731} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 559314d2eb0483149908bafda142bcd7, type: 3} ---- !u!1 &1608221886 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 7 - m_Component: - - component: {fileID: 1608221887} - - component: {fileID: 1608221888} - m_Layer: 0 - m_HasEditorInfo: 1 - m_Name: EchoOutline_cloud1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1608221887 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1608221886} - serializedVersion: 2 - 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: 232215156} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &1608221888 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1608221886} - m_Enabled: 0 - 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_virtualGeometry: 0 - m_virtualGeometryShadow: 0 - m_ShadingRate: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11e3d8d6a18b43a46822358d3d579298, 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: 10001 - m_Sprite: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.18, y: 1.69} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 --- !u!1 &1608695994 GameObject: m_ObjectHideFlags: 0 @@ -83358,94 +82808,6 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.8, y: 3, z: 0.52031326} m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1692087384 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 7 - m_Component: - - component: {fileID: 1692087385} - - component: {fileID: 1692087386} - m_Layer: 0 - m_HasEditorInfo: 1 - m_Name: EchoOutline_cloud1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1692087385 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1692087384} - serializedVersion: 2 - 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: 1034654558} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &1692087386 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1692087384} - m_Enabled: 0 - 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_virtualGeometry: 0 - m_virtualGeometryShadow: 0 - m_ShadingRate: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11e3d8d6a18b43a46822358d3d579298, 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: 10001 - m_Sprite: {fileID: 21300000, guid: bd41a798cd0a7104ca97280cc521a63a, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.18, y: 1.69} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 --- !u!1 &1692492985 GameObject: m_ObjectHideFlags: 0 @@ -102121,6 +101483,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: playerPrefab: {fileID: 5335793847516647023, guid: a60578acb930546489d4f5b6d598bce8, type: 3} + doorPrefab: {fileID: 1279378, guid: Dy8asyP/BntP/PMGAMK4lEXOwXWzTmScaNbDYT8D1UJoV6ymcQSNr6Q=, type: 3} enemyPrefabs: - {fileID: 2150025513644625521, guid: 11f73614f8ff05e42a78a4747e4209b9, type: 3} - {fileID: 2150025513644625521, guid: 5e1db01cdb919944395a115f55a807cc, type: 3} @@ -104006,6 +103369,67 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.8, y: 3, z: 0.81275463} m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &90792937852834854 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 511857182} + m_Modifications: + - target: {fileID: 1801260057822435587, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_Name + value: door + objectReference: {fileID: 0} + - target: {fileID: 1801260057822435587, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.x + value: -2.71 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.y + value: -6.91 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.z + value: 4.28 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8e69b54076f03e648902560ba4204a44, type: 3} --- !u!1001 &7284155913238797251 PrefabInstance: m_ObjectHideFlags: 0 @@ -104067,6 +103491,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: a60578acb930546489d4f5b6d598bce8, type: 3} +--- !u!4 &8451410411015647321 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + m_PrefabInstance: {fileID: 90792937852834854} + m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -104091,9 +103520,6 @@ SceneRoots: - {fileID: 1391105969} - {fileID: 221625452} - {fileID: 1620277924} - - {fileID: 1034654557} - - {fileID: 232215155} - - {fileID: 1072091856} - {fileID: 220516728} - {fileID: 1498727430} - {fileID: 818408702} @@ -104103,3 +103529,4 @@ SceneRoots: - {fileID: 1115832006} - {fileID: 2106106797} - {fileID: 2084288743} + - {fileID: 631691769} diff --git a/unity/Assets/Scenes/res/Prefabs/door_true.prefab b/unity/Assets/Scenes/res/Prefabs/door_true.prefab new file mode 100644 index 0000000..acfac8c --- /dev/null +++ b/unity/Assets/Scenes/res/Prefabs/door_true.prefab @@ -0,0 +1,97 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!1 &3382882467993173453 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1566621330025074582} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: door_true + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1566621330025074582 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3382882467993173453} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.28, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1130831817861698962} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4323641396241006235 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1566621330025074582} + m_Modifications: + - target: {fileID: 1801260057822435587, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_Name + value: door + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8e69b54076f03e648902560ba4204a44, type: 3} +--- !u!4 &1130831817861698962 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3724808382566460169, guid: 8e69b54076f03e648902560ba4204a44, type: 3} + m_PrefabInstance: {fileID: 4323641396241006235} + m_PrefabAsset: {fileID: 0} diff --git a/unity/Assets/Scenes/res/Prefabs/door_true.prefab.meta b/unity/Assets/Scenes/res/Prefabs/door_true.prefab.meta new file mode 100644 index 0000000..48f28a4 --- /dev/null +++ b/unity/Assets/Scenes/res/Prefabs/door_true.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: C3wdtCr+UXtWnj2qs5ylSSwF7igoze7Te2yySuuJV+QrP+j/H9yquxQ= +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/UI/Materials/WaterRippleFade.mat b/unity/Assets/UI/Materials/WaterRippleFade.mat index 942f04a..b0dcea3 100644 --- a/unity/Assets/UI/Materials/WaterRippleFade.mat +++ b/unity/Assets/UI/Materials/WaterRippleFade.mat @@ -59,10 +59,10 @@ Material: - _DecalMeshDepthBias: 0 - _DecalMeshViewBias: 0 - _DrawOrder: 0 - - _FadeAlpha: 0.9602355 + - _FadeAlpha: 1 - _RippleAmplitude: 0.0412 - _RippleFrequency: 10.5 - - _RippleIntensity: 0.6882374 + - _RippleIntensity: -0 - _RippleSpeed: 3 - _Shininess: 0.2 - _Stencil: 0 diff --git a/unity/Assets/enemy/GameSpawnManager.cs b/unity/Assets/enemy/GameSpawnManager.cs index 4a4c9e6..1f44761 100644 --- a/unity/Assets/enemy/GameSpawnManager.cs +++ b/unity/Assets/enemy/GameSpawnManager.cs @@ -19,6 +19,10 @@ namespace IndianOceanAssets.Engine2_5D [Tooltip("玩家预制体")] [SerializeField] GameObject playerPrefab; + [Header("传送门")] + [Tooltip("传送门/出口预制体(DoorPortal)")] + [SerializeField] GameObject doorPrefab; + [Header("敌人配置")] [Tooltip("敌人预制体数组(enemy_01 ~ enemy_05)")] [SerializeField] GameObject[] enemyPrefabs; @@ -93,7 +97,38 @@ namespace IndianOceanAssets.Engine2_5D } } - // 2. 生成敌人 + // 2. 生成传送门(选择离玩家最远的出生点) + if (doorPrefab != null && usedIndex < _allSpawnPoints.Count) + { + Vector3 playerPos = _spawnedPlayer != null ? _spawnedPlayer.transform.position : _allSpawnPoints[0].position; + Transform doorSpawn = null; + float maxDist = -1f; + for (int i = usedIndex; i < _allSpawnPoints.Count; i++) + { + float dist = Vector3.Distance(_allSpawnPoints[i].position, playerPos); + if (dist > maxDist) + { + maxDist = dist; + doorSpawn = _allSpawnPoints[i]; + } + } + if (doorSpawn == null) + doorSpawn = _allSpawnPoints[usedIndex]; + + int doorIdx = _allSpawnPoints.IndexOf(doorSpawn); + if (doorIdx != usedIndex) + { + var temp = _allSpawnPoints[usedIndex]; + _allSpawnPoints[usedIndex] = _allSpawnPoints[doorIdx]; + _allSpawnPoints[doorIdx] = temp; + } + usedIndex++; + + Instantiate(doorPrefab, doorSpawn.position, doorSpawn.rotation); + Debug.Log($"[GameSpawnManager] 传送门出生在 #{GetSpawnPointIndex(doorSpawn)} 位置=({doorSpawn.position.x:F1}, {doorSpawn.position.y:F1}, {doorSpawn.position.z:F1}) 距玩家={maxDist:F1}"); + } + + // 3. 生成敌人 if (enemyPrefabs != null && enemyCounts != null) { int prefabCount = Mathf.Min(enemyPrefabs.Length, enemyCounts.Length); @@ -121,7 +156,7 @@ namespace IndianOceanAssets.Engine2_5D } } - Debug.Log($"[GameSpawnManager] 生成完毕:1 个玩家 + {_spawnedEnemies.Count} 个敌人"); + Debug.Log($"[GameSpawnManager] 生成完毕:1 个玩家 + {(doorPrefab != null ? "1 个传送门 + " : "")}{_spawnedEnemies.Count} 个敌人"); } ///