From 4e892d74c402f6f1852f7a895a663de6b9220a5f Mon Sep 17 00:00:00 2001 From: huadexuan <491009149@qq.com> Date: Mon, 14 Sep 2026 23:11:35 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(UnitBase):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E5=88=86=E6=95=A3=E6=9C=BA=E5=88=B6=E5=92=8C?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E9=80=89=E6=8B=A9=E5=81=8F=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增阵型分散参数:separationRadius、separationWeight、targetSpreadBias - 实现ComputeSeparation方法计算友军分离力,避免单位扎堆 - 添加确定性分散偏移,让不同单位偏好不同目标,避免全部涌向同一敌人 - 在移动逻辑中集成分离向量计算 feat(WorldHealthBar): 实现伤害数字显示系统 - 添加伤害数字相关配置参数:showDamageNumbers、damageNumberDuration等 - 实现TakeDamage和Heal方法中的伤害数字生成逻辑 - 创建DamageNumber组件处理数字的上升、缩放、淡出动画 - 实现白字黑边效果,使用TextMesh副本组合方式实现描边 refactor(CoreBattleTest): 更新AI巡逻和检测参数 - 将clickStopDistance替换为patrolStopDistance、patrolPause、patrolRadius - 添加leashRadius和friendlyBuildingTag参数 - 为攻击单位增加detectRange检测范围参数 chore(dependencies): 更新包管理依赖配置 - 添加TJGenerators和CodelyBridge包引用 - 调整包依赖顺序,保持XR模块引用 docs(CODELY): 更新开发日志记录 - 添加建筑系统核心脚本实现说明 - 记录NavMesh烘焙问题及解决方案 - 详细说明伤害数字系统的实现要点和技术难点 ``` --- Assets/Scenes/BattleTest.scene | 1771 +++++++++++++++++++ Assets/Scenes/BattleTest.scene.meta | 7 + Assets/Scenes/Chapter1/CoreBattleTest.scene | 10 +- Assets/Script/UnitBase.cs | 60 +- Assets/Script/WorldHealthBar.cs | 215 ++- CODELY.md | 4 + Packages/manifest.json | 6 +- 7 files changed, 2060 insertions(+), 13 deletions(-) create mode 100644 Assets/Scenes/BattleTest.scene create mode 100644 Assets/Scenes/BattleTest.scene.meta diff --git a/Assets/Scenes/BattleTest.scene b/Assets/Scenes/BattleTest.scene new file mode 100644 index 0000000..73ae662 --- /dev/null +++ b/Assets/Scenes/BattleTest.scene @@ -0,0 +1,1771 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 3 + m_OcclusionCullingData: {fileID: 0} + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionEnabled: 0 + m_DisplayOccluded: 0 + m_SceneDepthBufferWidth: 512 + m_SceneDepthBufferHeight: 512 + m_ShadowDepthBufferWidth: 512 + m_ShadowDepthBufferHeight: 512 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 2 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &225324703 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: maxHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: currentHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_Name + value: "Enemy_\u7CBE\u9510\u58EB\u5175_0" + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_TagString + value: Enemy + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.x + value: 1.3159285 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.z + value: 14.294626 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6be579752d2424feea054ce267928002, type: 3} +--- !u!1001 &270900691 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: maxHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: currentHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: damageNumberOutlineWidth + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_Name + value: "Friend_\u7CBE\u9510\u58EB\u5175_3" + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.x + value: -6.95883 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.z + value: -16.63348 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6be579752d2424feea054ce267928002, type: 3} +--- !u!1 &290942435 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 290942437} + - component: {fileID: 290942436} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &290942436 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290942435} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_UseOcclusionCulling: 1 +--- !u!4 &290942437 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290942435} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &408319471 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: maxHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: currentHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.0058984756 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.z + value: 16.941511 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_Name + value: "Enemy_\u4EBA\u7C7B\u58EB\u5175_7" + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, type: 3} +--- !u!1001 &690042700 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.6875448 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.z + value: 16.830326 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_Name + value: "Enemy_\u5F13\u7BAD\u624B_2" + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: maxHealth + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: currentHealth + value: 200 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7d2074c48a1b3544eb534bb509ffc845, type: 3} +--- !u!1001 &697871298 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 990449840913200210, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: maxHealth + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 990449840913200210, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: currentHealth + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 7062617501994129594, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_Name + value: "Friend_\u6CD5\u5E08_5" + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.7631547 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.z + value: -16.533115 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6fb249c0311f442ecb190db77248eafc, type: 3} +--- !u!1001 &723932963 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.6875448 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.z + value: -13.169673 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_Name + value: "Friend_\u5F13\u7BAD\u624B_2" + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_TagString + value: Friend + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: maxHealth + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: currentHealth + value: 200 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7d2074c48a1b3544eb534bb509ffc845, type: 3} +--- !u!1001 &1100396753 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1242979668690031507, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_Name + value: "Enemy_\u76FE\u536B_1" + objectReference: {fileID: 0} + - target: {fileID: 1242979668690031507, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_TagString + value: Enemy + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.x + value: 3.3223836 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.z + value: 14.43012 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6884400399417614731, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: maxHealth + value: 900 + objectReference: {fileID: 0} + - target: {fileID: 6884400399417614731, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: currentHealth + value: 900 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5a43e36885a204515891085639dd22c4, type: 3} +--- !u!1001 &1191980862 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1242979668690031507, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_Name + value: "Friend_\u76FE\u536B_1" + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.x + value: 3.3223836 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalPosition.z + value: -15.56988 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1906187853415385385, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6884400399417614731, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: maxHealth + value: 900 + objectReference: {fileID: 0} + - target: {fileID: 6884400399417614731, guid: 5a43e36885a204515891085639dd22c4, + type: 3} + propertyPath: currentHealth + value: 900 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5a43e36885a204515891085639dd22c4, type: 3} +--- !u!1001 &1442734776 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.1439931 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.z + value: -13.785329 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_Name + value: "Friend_\u5F13\u7BAD\u624B_4" + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_TagString + value: Friend + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: maxHealth + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: currentHealth + value: 200 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7d2074c48a1b3544eb534bb509ffc845, type: 3} +--- !u!1001 &1482853062 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.1439931 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalPosition.z + value: 16.214672 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4855131310118735827, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200308054099318121, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: m_Name + value: "Enemy_\u5F13\u7BAD\u624B_4" + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: maxHealth + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 7720102017902192686, guid: 7d2074c48a1b3544eb534bb509ffc845, + type: 3} + propertyPath: currentHealth + value: 200 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7d2074c48a1b3544eb534bb509ffc845, type: 3} +--- !u!1 &1563868219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1563868223} + - component: {fileID: 1563868222} + - component: {fileID: 1563868221} + - component: {fileID: 1563868220} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: BattleGround + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &1563868220 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563868219} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_virtualGeometry: 0 + m_ShadingRate: 0 + m_ForceDisableGRD: 0 + m_ForceDisableSmallMeshCull: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} + m_MaskInteraction: 0 +--- !u!64 &1563868221 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563868219} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1563868222 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563868219} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1563868223 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563868219} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 6, y: 1, z: 15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1572651156 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: maxHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: currentHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.x + value: 1.1686678 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.z + value: -15.583392 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_Name + value: "Friend_\u4EBA\u7C7B\u58EB\u5175_6" + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_TagString + value: Friend + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, type: 3} +--- !u!1001 &1631682245 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: maxHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: currentHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_Name + value: "Friend_\u7CBE\u9510\u58EB\u5175_0" + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.x + value: 1.3159285 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.z + value: -15.705374 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6be579752d2424feea054ce267928002, type: 3} +--- !u!1001 &1664565141 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: maxHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: currentHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.x + value: 1.1686678 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.z + value: 14.416608 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_Name + value: "Enemy_\u4EBA\u7C7B\u58EB\u5175_6" + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, type: 3} +--- !u!1001 &1844487676 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 990449840913200210, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: maxHealth + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 990449840913200210, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: currentHealth + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 7062617501994129594, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_Name + value: "Enemy_\u6CD5\u5E08_5" + objectReference: {fileID: 0} + - target: {fileID: 7062617501994129594, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_TagString + value: Enemy + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.7631547 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalPosition.z + value: 13.466884 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7586495671476240896, guid: 6fb249c0311f442ecb190db77248eafc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6fb249c0311f442ecb190db77248eafc, type: 3} +--- !u!1 &1923261449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1923261452} + - component: {fileID: 1923261451} + - component: {fileID: 1923261450} + - component: {fileID: 1923261453} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1923261450 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923261449} + m_Enabled: 1 +--- !u!20 &1923261451 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923261449} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.6, g: 0.65, b: 0.7, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 200 + field of view: 113.4 + orthographic: 1 + orthographic size: 12.92 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_enableGDRP: 1 + m_backfaceCulling: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1923261452 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923261449} + serializedVersion: 2 + m_LocalRotation: {x: 0.32556805, y: 0, z: 0, w: 0.9455186} + m_LocalPosition: {x: -1.5, y: 16.63, z: -18.5} + 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!114 &1923261453 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923261449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9776e0490097a4f2c9ba65dc7ba21b08, type: 3} + m_Name: + m_EditorClassIdentifier: + keyboardDragSpeed: 10 + mouseDragSpeed: 0.5 + touchDragSpeed: 0.5 + zoomSpeed: 10 + minOrthographicSize: 5 + maxOrthographicSize: 20 + minFieldOfView: 30 + maxFieldOfView: 90 + enableBounds: 1 + minX: -4 + maxX: 4 + minZ: -18 + maxZ: 34 +--- !u!1001 &1932551464 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: maxHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3773753810590757696, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: currentHealth + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_Name + value: "Enemy_\u7CBE\u9510\u58EB\u5175_3" + objectReference: {fileID: 0} + - target: {fileID: 3933539425749946856, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_TagString + value: Enemy + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.x + value: -6.95883 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalPosition.z + value: 13.36652 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000004371139 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4457840052845775698, guid: 6be579752d2424feea054ce267928002, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6be579752d2424feea054ce267928002, type: 3} +--- !u!1001 &2106004287 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: maxHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 2920089167710187078, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: currentHealth + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.0058984756 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalPosition.z + value: -13.058489 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280232900360528736, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_Name + value: "Friend_\u4EBA\u7C7B\u58EB\u5175_7" + objectReference: {fileID: 0} + - target: {fileID: 7945271050725079514, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, + type: 3} + propertyPath: m_TagString + value: Friend + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 04ae1b1fe51474dda8ae5daf0b1df7c1, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1923261452} + - {fileID: 290942437} + - {fileID: 1563868223} + - {fileID: 1631682245} + - {fileID: 1191980862} + - {fileID: 723932963} + - {fileID: 270900691} + - {fileID: 1442734776} + - {fileID: 697871298} + - {fileID: 1572651156} + - {fileID: 2106004287} + - {fileID: 225324703} + - {fileID: 1100396753} + - {fileID: 690042700} + - {fileID: 1932551464} + - {fileID: 1482853062} + - {fileID: 1844487676} + - {fileID: 1664565141} + - {fileID: 408319471} diff --git a/Assets/Scenes/BattleTest.scene.meta b/Assets/Scenes/BattleTest.scene.meta new file mode 100644 index 0000000..388e642 --- /dev/null +++ b/Assets/Scenes/BattleTest.scene.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: WX9L5imoAXkCHljMap97vqYyzg9I5X1I571UQ4RQ4VxeVSYM4KqSijA= +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Chapter1/CoreBattleTest.scene b/Assets/Scenes/Chapter1/CoreBattleTest.scene index a6189cb..30c8213 100644 --- a/Assets/Scenes/Chapter1/CoreBattleTest.scene +++ b/Assets/Scenes/Chapter1/CoreBattleTest.scene @@ -5778,10 +5778,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: moveSpeed: 4 - clickStopDistance: 0.08 - limitToBattlePlatform: 1 - xLimits: {x: -7.5, y: 7.5} - zLimits: {x: -14, y: 80} + patrolStopDistance: 0.15 + patrolPause: 1.5 + patrolRadius: 5 + leashRadius: 8 + friendlyBuildingTag: Friend --- !u!4 &1830287376 stripped Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 6b859b567d8ba4a7a87c03aa4b87c18c, @@ -5801,6 +5802,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: attackRange: 8 + detectRange: 10 attackPower: 50 attackInterval: 2 modelFacingOffset: 90 diff --git a/Assets/Script/UnitBase.cs b/Assets/Script/UnitBase.cs index 5909c98..8003f76 100644 --- a/Assets/Script/UnitBase.cs +++ b/Assets/Script/UnitBase.cs @@ -67,6 +67,13 @@ public class UnitBase : MonoBehaviour [Min(0f)] public float energyPerAttack = 20f; + [Header("阵型分散")] + [Min(0f)] public float separationRadius = 1.5f; + [Min(0f)] public float separationWeight = 3f; + [Min(0f)] public float targetSpreadBias = 6f; + + private static Collider[] s_separationBuffer = new Collider[30]; + //角色状态 private State state = State.Alert; @@ -305,9 +312,12 @@ public class UnitBase : MonoBehaviour } float sqrDistance = (opponent.transform.position - transform.position).sqrMagnitude; - if (sqrDistance < nearestSqrDistance) + //加入确定性分散偏移:让不同单位偏好不同目标,避免全部涌向同一个敌人 + float bias = ((uint)(gameObject.GetInstanceID() * 7919) ^ (uint)(opponent.GetInstanceID())) % 10u / 10f * targetSpreadBias; + float adjustedSqrDistance = sqrDistance + bias; + if (adjustedSqrDistance < nearestSqrDistance) { - nearestSqrDistance = sqrDistance; + nearestSqrDistance = adjustedSqrDistance; nearestOpponent = opponent; } } @@ -882,6 +892,15 @@ public class UnitBase : MonoBehaviour void move(Vector3 movement) { movement.y = 0; + + //友军分离力:与过近的同阵营单位互相推开,避免扎堆 + Vector3 separation = ComputeSeparation(); + if (separation.sqrMagnitude > 0.0001f) + { + movement += separation * separationWeight; + movement.y = 0; + } + if (movement == Vector3.zero) { animator.SetInteger("speed", 0); @@ -900,6 +919,43 @@ public class UnitBase : MonoBehaviour transform.rotation = Quaternion.Euler(0f, movementRotation.eulerAngles.y, 0f); } + //计算与附近同阵营单位的分离向量;越近推力越大。 + private Vector3 ComputeSeparation() + { + if (separationRadius <= 0f) + { + return Vector3.zero; + } + + int hitCount = Physics.OverlapSphereNonAlloc(transform.position, separationRadius, s_separationBuffer); + Vector3 separation = Vector3.zero; + + for (int i = 0; i < hitCount; i++) + { + Collider other = s_separationBuffer[i]; + if (other == null || other.gameObject == gameObject) + { + continue; + } + + //只推开同阵营单位,敌人间的碰撞由CharacterController自然阻挡 + if (!other.CompareTag(gameObject.tag)) + { + continue; + } + + Vector3 diff = transform.position - other.transform.position; + diff.y = 0f; + float distance = diff.magnitude; + if (distance > 0.01f && distance < separationRadius) + { + separation += diff / distance * (separationRadius - distance); + } + } + + return separation; + } + private float getVerticalVelocity() { diff --git a/Assets/Script/WorldHealthBar.cs b/Assets/Script/WorldHealthBar.cs index ffb2904..7152484 100644 --- a/Assets/Script/WorldHealthBar.cs +++ b/Assets/Script/WorldHealthBar.cs @@ -33,6 +33,14 @@ public class WorldHealthBar : MonoBehaviour // 死亡时使用的浅蓝色粒子颜色。 public Color deathEffectColor = new Color(0.55f, 0.9f, 1f, 1f); + [Header("伤害数字")] + public bool showDamageNumbers = true; + [Min(0.1f)] public float damageNumberDuration = 0.8f; + [Min(0f)] public float damageNumberRiseHeight = 1.2f; + [Min(0f)] public float damageNumberSpawnHeight = 1.5f; + [Min(0.01f)] public float damageNumberSize = 0.09f; + [Min(0f)] public float damageNumberOutlineWidth = 0.015f; + // 血条 UI 的像素尺寸,实际显示大小由 worldWidth 控制。 private const int PixelWidth = 100; private const int PixelHeight = 14; @@ -146,11 +154,28 @@ public class WorldHealthBar : MonoBehaviour } } - // 让单位受到伤害。 - public void TakeDamage(float amount) => SetHealth(currentHealth - amount); + // 让单位受到伤害,并弹出伤害数字。 + public void TakeDamage(float amount) + { + bool wasDead = isDead; + SetHealth(currentHealth - amount); + if (showDamageNumbers && amount > 0f && !wasDead) + { + SpawnDamageNumber(amount, false); + } + } - // 让单位恢复生命值。 - public void Heal(float amount) => SetHealth(currentHealth + amount); + // 让单位恢复生命值,并弹出绿色治疗数字。 + public void Heal(float amount) + { + bool wasDead = isDead; + float healed = Mathf.Min(amount, maxHealth - currentHealth); + SetHealth(currentHealth + amount); + if (showDamageNumbers && healed > 0f && !wasDead) + { + SpawnDamageNumber(healed, true); + } + } // 增加技能能量,并返回本次增加后是否达到满能量。 public bool AddEnergy(float amount) @@ -514,4 +539,186 @@ public class WorldHealthBar : MonoBehaviour roundedSprite.hideFlags = HideFlags.HideAndDontSave; return roundedSprite; } + + // 在单位头顶生成一个漂浮伤害数字;数字独立于单位存活,死亡单位也能看到最后一击。 + // TextMesh 不支持原生描边,用 4 个偏移的黑色副本 + 1 个白色主字组合出黑边效果。 + private void SpawnDamageNumber(float amount, bool isHeal) + { + if (DamageNumber.ActiveCount >= DamageNumber.MaxActive) + { + return; + } + + GameObject rootObject = new GameObject("DamageNumber"); + Vector3 spawnPosition = transform.position + Vector3.up * damageNumberSpawnHeight; + spawnPosition.x += Random.Range(-0.3f, 0.3f); + rootObject.transform.position = spawnPosition; + + string text = Mathf.RoundToInt(amount).ToString(); + float outline = damageNumberOutlineWidth; + + // 黑色描边副本先画(sortingOrder 低)。 + CreateNumberText(rootObject.transform, text, new Vector3(-outline, 0f, 0f), Color.black, damageNumberSize, 60); + CreateNumberText(rootObject.transform, text, new Vector3(outline, 0f, 0f), Color.black, damageNumberSize, 60); + CreateNumberText(rootObject.transform, text, new Vector3(0f, -outline, 0f), Color.black, damageNumberSize, 60); + CreateNumberText(rootObject.transform, text, new Vector3(0f, outline, 0f), Color.black, damageNumberSize, 60); + // 白色主字最后画(sortingOrder 高),覆盖在黑边之上。 + CreateNumberText(rootObject.transform, text, Vector3.zero, Color.white, damageNumberSize, 61); + + DamageNumber number = rootObject.AddComponent(); + number.duration = damageNumberDuration; + number.riseHeight = damageNumberRiseHeight; + } + + // 创建一个配置好的数字 TextMesh 子物体。 + private static TextMesh CreateNumberText(Transform parent, string text, Vector3 localOffset, Color color, float characterSize, int sortingOrder) + { + GameObject textObject = new GameObject("Text"); + textObject.transform.SetParent(parent, false); + textObject.transform.localPosition = localOffset; + + Font font = GetBuiltinFont(); + TextMesh textMesh = textObject.AddComponent(); + textMesh.text = text; + textMesh.font = font; + textMesh.fontSize = 40; + textMesh.characterSize = characterSize; + textMesh.anchor = TextAnchor.MiddleCenter; + textMesh.alignment = TextAlignment.Center; + textMesh.fontStyle = FontStyle.Bold; + textMesh.richText = false; + textMesh.color = color; + + MeshRenderer textRenderer = textObject.GetComponent(); + if (font != null) + { + textRenderer.sharedMaterial = font.material; + } + // 渲染在单位之上、血条(100)之下;白主字必须比黑边高一级, + // 同材质同 sortingOrder 的渲染顺序不确定,后画的黑边会盖住白字。 + textRenderer.sortingOrder = sortingOrder; + return textMesh; + } + + // 缓存引擎内置字体;Tuanjie 2022.3 使用 LegacyRuntime,旧版本回退 Arial。 + private static Font cachedBuiltinFont; + + private static Font GetBuiltinFont() + { + if (cachedBuiltinFont == null) + { + try + { + cachedBuiltinFont = Resources.GetBuiltinResource("LegacyRuntime.ttf"); + } + catch + { + cachedBuiltinFont = null; + } + + if (cachedBuiltinFont == null) + { + try + { + cachedBuiltinFont = Resources.GetBuiltinResource("Arial.ttf"); + } + catch + { + cachedBuiltinFont = null; + } + } + } + + return cachedBuiltinFont; + } +} + +// 漂浮伤害数字:上升、缩放回弹、淡出后自动销毁。 +// 独立于所属单位存活,即使单位死亡仍会完整播放动画。 +public class DamageNumber : MonoBehaviour +{ + // 全场同时存在的伤害数字上限,防止极端情况下刷屏。 + public const int MaxActive = 60; + public static int ActiveCount { get; private set; } + + public float duration = 0.8f; + public float riseHeight = 1.2f; + + // 一个数字由主字+描边副本共5个TextMesh组成,统一驱动透明度。 + private TextMesh[] textMeshes; + private Color[] startColors; + private Vector3 startPosition; + private Camera targetCamera; + private float elapsed; + + private void Awake() + { + ActiveCount++; + textMeshes = GetComponentsInChildren(); + startColors = new Color[textMeshes.Length]; + for (int i = 0; i < textMeshes.Length; i++) + { + startColors[i] = textMeshes[i].color; + } + startPosition = transform.position; + } + + private void Start() + { + GameObject mainCameraObject = GameObject.Find("Main Camera"); + if (mainCameraObject != null) + { + targetCamera = mainCameraObject.GetComponent(); + } + + if (targetCamera == null) + { + targetCamera = Camera.main; + } + } + + private void Update() + { + elapsed += Time.deltaTime; + if (elapsed >= duration) + { + Destroy(gameObject); + return; + } + + float t = elapsed / duration; + + // 匀加速上升。 + Vector3 position = startPosition; + position.y += riseHeight * Mathf.SmoothStep(0f, 1f, t); + transform.position = position; + + // 前20%从1.35倍缩放回弹到1倍。 + float scale = t < 0.2f ? Mathf.Lerp(1.35f, 1f, t / 0.2f) : 1f; + transform.localScale = Vector3.one * scale; + + // 后30%淡出。 + float alpha = t < 0.7f ? 1f : 1f - (t - 0.7f) / 0.3f; + for (int i = 0; i < textMeshes.Length; i++) + { + if (textMeshes[i] != null) + { + textMeshes[i].color = new Color(startColors[i].r, startColors[i].g, startColors[i].b, alpha); + } + } + + // 每帧朝向摄像机。TextMesh 可读面朝本地-Z,所以 +Z 要背向摄像机, + // 否则文字从背面被看到会左右镜像。 + if (targetCamera != null) + { + transform.rotation = Quaternion.LookRotation( + transform.position - targetCamera.transform.position, + targetCamera.transform.up); + } + } + + private void OnDestroy() + { + ActiveCount--; + } } \ No newline at end of file diff --git a/CODELY.md b/CODELY.md index 097cc02..2957c18 100644 --- a/CODELY.md +++ b/CODELY.md @@ -44,6 +44,10 @@ - [2026-09-11 14:55:27] 敌人血条颜色问题已修复:WorldHealthBar 在 Awake() 时根据 GameObject.tag 判断颜色,WaveSpawner 在 Instantiate() 后设置标签会导致时序错误(血条已创建成绿色)。解决方案:直接在敌人 Prefab 上设置 Enemy 标签,确保 Awake() 时标签已正确。已修改狼人/蓝色怪物/弓箭猎人/石巨人四个 Prefab。**Why:** 血条颜色在对象创建时确定,后设置标签无法自动刷新。**How to apply:** 后续新增敌人 Prefab 时直接在 Prefab 上设置 Enemy 标签,不依赖运行时代码设置。 - [2026-09-14 16:00:19] 2026-09-13 玩法大转向:从闯关推图改为"建筑生产+自动作战+主角辅助"的对攻玩法(见《召唤之战-核心玩法.md》)。旧闯关玩法由用户在另一台电脑的分支保存,当前 main 按新玩法开发。提交 beab4cf 已实现:GoldSystem/GoldMine 金币经济、Barracks 兵营产兵、BuildingPlacementManager 建筑摆放、CharacterData 新增 productionInterval/buildingCost、UnitBase/Projectile 支持攻击建筑、CoreBattleTest.scene 验证场景、CameraFollow 重写(WASD/鼠标/触摸拖动+缩放)。胜负目标改为摧毁对方主建筑。**How to apply:** 后续开发以建筑/经济/产兵系统为主线,能量豆召唤相关旧逻辑仅作为历史参考。 - [2026-09-14 18:24:46] 2026-09-14 性能实测(9 个角色 Prefab):大多数 5~8k 三角面/22 骨骼/512 贴图,性能没问题;两个待处理异常——蓝色怪物 34408 面(是量产低价单位,建议减面到 8k 左右)、法师贴图 2048x2048(建议缩到 512)。另建议设计层限制每方场上单位上限(约15)保性能与 2.5D 可读性,并确认方向光关实时阴影,最终以低端安卓真机小游戏包为准。**How to apply:** 后续做性能优化或新增量产型敌人时按此基准控制面数。 +- [2026-09-14 21:19:53] 2026-09-13 新增建筑系统核心脚本:BuildingHealth(建筑血量+生产进度接口)、GoldSystem/GoldMine(金币经济与产出)、Barracks(兵营产兵,读取 CharacterData.productionInterval)。WorldHealthBar 增加 SetEnergy() 通用下方条接口,建筑复用该条显示生产进度,单位仍用于技能能量。BuildingPlacementManager 支持虚拟网格吸附、占位检测、金币扣除,新放置建筑自动挂 BuildingHealth。UnitBase/Projectile 的 ApplyDirectDamage/ApplySkillHit/ApplyAreaSkillDamage/HitTarget 均已接入 BuildingHealth,建筑可被近战/技能/范围/飞行物伤害。兵营 Prefab(Assets/Prefabs/建筑/兵营.prefab)已写入 Barracks+WorldHealthBar+BuildingHealth,默认阵营 Friend,场景实例保留 Enemy 覆盖。**Why:** 建筑作为可攻击目标是新对攻玩法的核心,生产进度条复用血条下方条避免额外 UI。**How to apply:** 后续新增建筑类型(防御塔/资源建筑)参照 BuildingHealth 接口;修改血条下方条逻辑时注意区分单位和建筑语义。 +- [2026-09-14 21:34:17] 2026-09-14 发现:团结引擎 1.10.2 (macOS) 原生 NavMesh 烘焙失效——空场景放一个静态 Cube,用 NavMeshBuilder.BuildNavMeshData / UpdateNavMeshDataAsync / 经典全局 BuildNavMesh 烘焙全部产出 0 三角形,无报错;收集源(CollectSources)、Job 系统、AI 模块包均正常;换构建目标/域重载/重启编辑器均无效。**Why:** 原生导航烘焙在此安装上深层失效,继续用 NavMesh 会浪费时间。**How to apply:** 本项目寻路不要用 NavMesh/NavMeshAgent/NavMeshSurface,改用纯 C# 网格 A*(见 GridPathfinder.cs);若未来升级团结版本可先重跑最小 Cube 烘焙测试再决定。 +- [2026-09-14 22:55:12] 2026-09-14 伤害数字系统(WorldHealthBar.SpawnDamageNumber + DamageNumber 组件)已上线:白字黑边样式(1 白主字 + 4 向偏移黑副本,TextMesh 无原生描边所以用副本组合),入口在 TakeDamage/Heal,全场并发上限 60。两个关键坑:1) TextMesh 可读面朝本地-Z,billboard 必须用 LookRotation(selfPos - cameraPos),方向写反会左右镜像;2) 同材质同 sortingOrder 的多个 TextMesh 渲染顺序不确定,后创建的黑色副本会盖住白字——必须显式分层:黑边 sortingOrder=60、白主字=61,白字必须最后创建或层级更高。**Why:** 用户要求白色黑边,先后修复了镜像和纯黑覆盖问题。**How to apply:** 后续做其他 3D 漂浮文字(暴击、金币)沿用 DamageNumber 模式、朝向写法和 sortingOrder 分层。 + ### Reference - [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。 diff --git a/Packages/manifest.json b/Packages/manifest.json index ebc4e29..39d3753 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,6 +1,8 @@ { "dependencies": { + "cn.tuanjie.ai.generators": "file:../.codely-cli/extensions/TJGenerators/Packages/cn.tuanjie.ai.generators", "cn.tuanjie.ai.graph": "1.0.10", + "cn.tuanjie.codely.bridge": "1.0.81", "com.qq.weixin.minigame": "https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git", "com.unity.2d.sprite": "1.0.0", "com.unity.adaptiveperformance": "4.0.1", @@ -43,8 +45,6 @@ "com.unity.modules.video": "1.0.0", "com.unity.modules.vr": "1.0.0", "com.unity.modules.wind": "1.0.0", - "com.unity.modules.xr": "1.0.0", - "cn.tuanjie.ai.generators": "file:../.codely-cli/extensions/TJGenerators/Packages/cn.tuanjie.ai.generators", - "cn.tuanjie.codely.bridge": "1.0.81" + "com.unity.modules.xr": "1.0.0" } }