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} 个敌人");
}
///