mirror of
https://github.com/Earth-Genesis-Games/Carrasco.git
synced 2026-09-11 09:52:19 +00:00
Agreegado modo emeergencia a los aviones Jumbo, y agregados sprites de Helipiuerto y zedppelin
This commit is contained in:
+193
-2
@@ -87,6 +87,180 @@ SpriteRenderer:
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &7063443124683044098
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6731170466875792575}
|
||||
- component: {fileID: 706182360024938819}
|
||||
m_Layer: 0
|
||||
m_Name: Fuego_Izquierda
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6731170466875792575
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7063443124683044098}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: -1, w: 0}
|
||||
m_LocalPosition: {x: -0.416, y: -0.631, z: 0}
|
||||
m_LocalScale: {x: 0.067990944, y: 0.075137846, z: 0.045406}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1617298874132894882}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -180}
|
||||
--- !u!212 &706182360024938819
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7063443124683044098}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 2
|
||||
m_Sprite: {fileID: -1552690994364867892, guid: b5394d4b462787745b6c1cda3aa54e8b, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 7.71, y: 10.95}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &8775872135707417623
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1467560352754763124}
|
||||
- component: {fileID: 2363851923829133478}
|
||||
m_Layer: 0
|
||||
m_Name: Fuego_Derecha
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1467560352754763124
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8775872135707417623}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: -1, w: 0}
|
||||
m_LocalPosition: {x: 0.4659003, y: -0.56150025, z: 0}
|
||||
m_LocalScale: {x: 0.067990944, y: 0.075137846, z: 0.045406}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1617298874132894882}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -180}
|
||||
--- !u!212 &2363851923829133478
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8775872135707417623}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 2
|
||||
m_Sprite: {fileID: -1552690994364867892, guid: b5394d4b462787745b6c1cda3aa54e8b, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 7.71, y: 10.95}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &8887022185975264338
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -125,6 +299,8 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4857412126106329327}
|
||||
- {fileID: 6731170466875792575}
|
||||
- {fileID: 1467560352754763124}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &796633062196981787
|
||||
@@ -170,7 +346,7 @@ SpriteRenderer:
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_SortingOrder: 120
|
||||
m_Sprite: {fileID: -6924842299545442481, guid: 1e1ef19ce5c456a42a4ac95fa026271d, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
@@ -223,7 +399,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
planeType: 0
|
||||
airplaneCollision: {fileID: 7192760876484620407}
|
||||
collider: {fileID: 6385738313031535582}
|
||||
boxCollider2D: {fileID: 0}
|
||||
speed: 2
|
||||
targetRunway: {fileID: 0}
|
||||
isLanding: 0
|
||||
@@ -233,6 +409,21 @@ MonoBehaviour:
|
||||
oscillationFrequency: 1
|
||||
proximityCircle: {fileID: 1724565451512650598}
|
||||
proximityRadius: 2
|
||||
allowEmergency: 1
|
||||
startWithEmergency: 0
|
||||
autoEmergencyAfter: 30
|
||||
manualEmergencyWindow: {x: 7, y: 18}
|
||||
autoEmergencyWindow: {x: 7, y: 12}
|
||||
destroyOnFail: 1
|
||||
isEmergency: 0
|
||||
tiempo: 0
|
||||
fuegoIzquierdo: {fileID: 7063443124683044098}
|
||||
fuegoDerecho: {fileID: 8775872135707417623}
|
||||
randomEmergencyOnSpawn: 0
|
||||
emergencySpawnChance: 0.25
|
||||
randomEmergencyIsAuto: 0
|
||||
spawnEmergencyWindowOverride: {x: -1, y: -1}
|
||||
spawnedInEmergency: 0
|
||||
--- !u!61 &6385738313031535582
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 15003, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: "New Android\u2122 Profile 1"
|
||||
m_EditorClassIdentifier:
|
||||
m_AssetVersion: 1
|
||||
m_BuildTarget: 13
|
||||
m_Subtarget: 0
|
||||
m_PlatformId: b9b35072a6f44c2e863f17467ea3dc13
|
||||
m_PlatformBuildProfile:
|
||||
rid: 4561307543144235075
|
||||
m_OverrideGlobalSceneList: 0
|
||||
m_Scenes: []
|
||||
m_ScriptingDefines: []
|
||||
m_PlayerSettingsYaml:
|
||||
m_Settings: []
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 4561307543144235075
|
||||
type: {class: AndroidPlatformBuildSettings, ns: UnityEditor.Android, asm: UnityEditor.Android.Extensions}
|
||||
data:
|
||||
m_Development: 0
|
||||
m_ConnectProfiler: 0
|
||||
m_BuildWithDeepProfilingSupport: 0
|
||||
m_AllowDebugging: 0
|
||||
m_WaitForManagedDebugger: 0
|
||||
m_ManagedDebuggerFixedPort: 0
|
||||
m_ExplicitNullChecks: 0
|
||||
m_ExplicitDivideByZeroChecks: 0
|
||||
m_ExplicitArrayBoundsChecks: 0
|
||||
m_CompressionType: 2
|
||||
m_InstallInBuildFolder: 0
|
||||
m_BuildSubtarget: 0
|
||||
m_BuildSystem: 1
|
||||
m_ExportAsGoogleAndroidProject: 0
|
||||
m_DebugSymbolLevel: 1
|
||||
m_DebugSymbolFormat: 5
|
||||
m_CurrentDeploymentTargetId: __builtin__target_default
|
||||
m_BuildType: 2
|
||||
m_BuildAppBundle: 0
|
||||
m_IPAddressToConnect:
|
||||
m_SymlinkSources: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6291513b3ad33c43ad3407525d5eacb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+153
-3
@@ -317,6 +317,75 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 611572473}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &88363859
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 796633062196981787, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 120
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 4.82
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1.68
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4525970714940117064, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: yOffset
|
||||
value: 6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4525970714940117064, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: headingLerp
|
||||
value: 50.31
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8887022185975264338, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Jumbo (2)
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
--- !u!1 &137646301
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -999,6 +1068,11 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 295792974}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &357057952 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 7063443124683044098, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
m_PrefabInstance: {fileID: 1211750364}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &358822461
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -10684,7 +10758,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!114 &710177629
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -11444,7 +11518,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
|
||||
m_Sprite: {fileID: 5953366511424165707, guid: d2c3f2a8fcece2a44aa83dba193e0624, type: 3}
|
||||
m_Color: {r: 0.5188679, g: 0.36467603, b: 0.36467603, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
@@ -11534,7 +11608,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
|
||||
m_Sprite: {fileID: -3614818113831214166, guid: 9df10bfc3763106409104f716f46f144, type: 3}
|
||||
m_Color: {r: 0.5188679, g: 0.36467603, b: 0.36467603, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
@@ -11660,6 +11734,80 @@ BoxCollider2D:
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 0.19599336, y: 2.1064472}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1001 &1211750364
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 796633062196981787, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 120
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -6.16
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -4.03
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617298874132894882, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4525970714940117064, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: fuegoDerecho
|
||||
value:
|
||||
objectReference: {fileID: 1394037166}
|
||||
- target: {fileID: 4525970714940117064, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: fuegoIzquierdo
|
||||
value:
|
||||
objectReference: {fileID: 357057952}
|
||||
- target: {fileID: 8887022185975264338, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Jumbo (1)
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
--- !u!1 &1394037166 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 8775872135707417623, guid: 1f94160a177d8411984fe48801bb9541, type: 3}
|
||||
m_PrefabInstance: {fileID: 1211750364}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1395127444
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -13596,3 +13744,5 @@ SceneRoots:
|
||||
- {fileID: 472853125}
|
||||
- {fileID: 1623644558}
|
||||
- {fileID: 137646302}
|
||||
- {fileID: 1211750364}
|
||||
- {fileID: 88363859}
|
||||
|
||||
+230
-161
@@ -1,26 +1,22 @@
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor.Overlays;
|
||||
using System.Collections.Generic;
|
||||
// using UnityEditor.Overlays; // ⚠️ Quitar en build (solo Editor)
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
public enum PlaneType
|
||||
{
|
||||
[Tooltip("Jumbo")]
|
||||
Jumbo,
|
||||
[Tooltip("Plane")]
|
||||
Plane,
|
||||
[Tooltip("Helicopter")]
|
||||
Helicopter,
|
||||
[Tooltip("Dirigible")]
|
||||
Dirigible
|
||||
[Tooltip("Jumbo")] Jumbo,
|
||||
[Tooltip("Plane")] Plane,
|
||||
[Tooltip("Helicopter")] Helicopter,
|
||||
[Tooltip("Dirigible")] Dirigible
|
||||
}
|
||||
|
||||
public class PlaneController : MonoBehaviour
|
||||
{
|
||||
public PlaneType planeType;
|
||||
public AirplaneCollision airplaneCollision;
|
||||
public BoxCollider2D collider;
|
||||
public BoxCollider2D boxCollider2D; // ← renombrado
|
||||
public float speed = 2f;
|
||||
private Vector3[] path;
|
||||
private int pathIndex = 0;
|
||||
@@ -40,10 +36,62 @@ public class PlaneController : MonoBehaviour
|
||||
private Vector2 minBounds;
|
||||
private Vector2 maxBounds;
|
||||
|
||||
public GameObject proximityCircle; // Referencia al círculo de proximidad
|
||||
//private static float proximityRadius = 2f; // Radio para la detección de proximidad
|
||||
public GameObject proximityCircle;
|
||||
public float proximityRadius = 2f;
|
||||
|
||||
// ======== EMERGENCIA (CONFIG) ========
|
||||
[Header("Emergency Settings")]
|
||||
[Tooltip("Permite que este avión pueda entrar en modo emergencia")]
|
||||
public bool allowEmergency = true;
|
||||
|
||||
[Tooltip("Arranca forzado en emergencia (no tira aleatorio)")]
|
||||
public bool startWithEmergency = false;
|
||||
|
||||
[Tooltip("Segundos sin iniciar aterrizaje para activar emergencia automática")]
|
||||
public float autoEmergencyAfter = 30f;
|
||||
|
||||
[Tooltip("Ventana aleatoria (min, max) para aterrizar en emergencia MANUAL")]
|
||||
public Vector2 manualEmergencyWindow = new Vector2(7f, 18f);
|
||||
|
||||
[Tooltip("Ventana aleatoria (min, max) para aterrizar en emergencia AUTOMÁTICA")]
|
||||
public Vector2 autoEmergencyWindow = new Vector2(7f, 12f);
|
||||
|
||||
[Tooltip("Destruir el avión cuando expira el tiempo de emergencia")]
|
||||
public bool destroyOnFail = true;
|
||||
|
||||
// ======== EMERGENCIA (ESTADO) ========
|
||||
private bool inEmergency = false;
|
||||
private float emergencyStartTime = 0f;
|
||||
private float emergencyDeadline = 0f; // Time.time en el que expira
|
||||
public bool InEmergency => inEmergency;
|
||||
public float RemainingEmergencySeconds => inEmergency ? Mathf.Max(0f, emergencyDeadline - Time.time) : 0f;
|
||||
|
||||
// ======== DEBUG / TIEMPO GENERAL ========
|
||||
public bool isEmergency = false; // legacy flag
|
||||
public float tiempo;
|
||||
|
||||
public GameObject fuegoIzquierdo;
|
||||
public GameObject fuegoDerecho;
|
||||
|
||||
// ======== RANDOM EMERGENCY ON SPAWN ========
|
||||
[Header("Spawn Emergency (Random)")]
|
||||
[Tooltip("Si está activo, al spawnear se tira una probabilidad para comenzar en emergencia.")]
|
||||
public bool randomEmergencyOnSpawn = false;
|
||||
|
||||
[Range(0f, 1f)]
|
||||
[Tooltip("Probabilidad de que el avión spawnee en emergencia (0..1).")]
|
||||
public float emergencySpawnChance = 0.25f;
|
||||
|
||||
[Tooltip("Si true, la emergencia de spawn usa la ventana 'auto' (más corta). Si false, la 'manual'.")]
|
||||
public bool randomEmergencyIsAuto = false;
|
||||
|
||||
[Tooltip("Override opcional (min,max) de la ventana para el spawn. Si cualquiera < 0, usa las ventanas por defecto.")]
|
||||
public Vector2 spawnEmergencyWindowOverride = new Vector2(-1f, -1f);
|
||||
|
||||
[Header("Spawn Debug")]
|
||||
[Tooltip("Resultado del dado de spawn en este avión (solo informativo).")]
|
||||
public bool spawnedInEmergency = false;
|
||||
|
||||
void Start()
|
||||
{
|
||||
lineRenderer = GetComponent<LineRenderer>();
|
||||
@@ -61,124 +109,117 @@ public class PlaneController : MonoBehaviour
|
||||
maxBounds = CameraBounds.Instance.MaxBounds;
|
||||
}
|
||||
|
||||
if (proximityCircle != null)
|
||||
if (proximityCircle != null) proximityCircle.SetActive(false);
|
||||
|
||||
ApagarFuego();
|
||||
|
||||
// 1) Forzado desde Inspector (no tira aleatorio si esto está activo)
|
||||
if (startWithEmergency && allowEmergency)
|
||||
{
|
||||
proximityCircle.SetActive(false); // Asegúrate de que el círculo esté desactivado al inicio
|
||||
TriggerEmergency(autoTriggered: false);
|
||||
spawnedInEmergency = true;
|
||||
}
|
||||
// 2) Aleatorio al spawnear (si NO está forzado)
|
||||
else if (allowEmergency && randomEmergencyOnSpawn)
|
||||
{
|
||||
if (Random.value < emergencySpawnChance)
|
||||
{
|
||||
bool hasOverride = spawnEmergencyWindowOverride.x >= 0f && spawnEmergencyWindowOverride.y >= 0f;
|
||||
|
||||
if (hasOverride)
|
||||
{
|
||||
float min = Mathf.Max(7f, Mathf.Min(spawnEmergencyWindowOverride.x, spawnEmergencyWindowOverride.y));
|
||||
float max = Mathf.Max(min, Mathf.Max(spawnEmergencyWindowOverride.x, spawnEmergencyWindowOverride.y));
|
||||
float d = Random.Range(min, max);
|
||||
TriggerEmergency(autoTriggered: randomEmergencyIsAuto, duration: d);
|
||||
}
|
||||
else
|
||||
{
|
||||
TriggerEmergency(autoTriggered: randomEmergencyIsAuto);
|
||||
}
|
||||
|
||||
spawnedInEmergency = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (noCol)
|
||||
{
|
||||
collider.enabled = false;
|
||||
}
|
||||
if (isLanding) noCol = true;
|
||||
// tiempo total de vuelo
|
||||
tiempo += Time.deltaTime;
|
||||
|
||||
// ===== LÓGICA EMERGENCIA =====
|
||||
if (allowEmergency && !inEmergency && !isLanding && tiempo >= autoEmergencyAfter)
|
||||
{
|
||||
// Emergencia automática (ventana más corta)
|
||||
TriggerEmergency(autoTriggered: true);
|
||||
}
|
||||
|
||||
if (inEmergency && !isLanding)
|
||||
{
|
||||
if (Time.time >= emergencyDeadline)
|
||||
{
|
||||
// Falló la emergencia: se acabó el tiempo
|
||||
EncenderFuego();
|
||||
if (GameManager.Instance != null)
|
||||
GameManager.Instance.TriggerGameOver();
|
||||
GameManager.Instance.isPausedByGameOver = true;
|
||||
|
||||
if (destroyOnFail)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
ExitEmergency();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ===== LÓGICA EXISTENTE =====
|
||||
if (noCol) { if (boxCollider2D != null) boxCollider2D.enabled = false; }
|
||||
if (isLanding) noCol = true;
|
||||
if (isLanding) return;
|
||||
|
||||
|
||||
if (path != null && pathIndex < path.Length)
|
||||
{
|
||||
FollowPath();
|
||||
}
|
||||
else
|
||||
{
|
||||
ContinueMovement();
|
||||
}
|
||||
if (path != null && pathIndex < path.Length) FollowPath();
|
||||
else ContinueMovement();
|
||||
|
||||
KeepWithinBounds();
|
||||
CheckProximity();
|
||||
}
|
||||
|
||||
// ---------- Movimiento / Rotación ----------
|
||||
void KeepWithinBounds()
|
||||
{
|
||||
Vector3 pos = transform.position;
|
||||
|
||||
if (pos.x < minBounds.x)
|
||||
{
|
||||
currentDirection.x = Mathf.Abs(currentDirection.x);
|
||||
}
|
||||
else if (pos.x > maxBounds.x)
|
||||
{
|
||||
currentDirection.x = -Mathf.Abs(currentDirection.x);
|
||||
}
|
||||
if (pos.x < minBounds.x) currentDirection.x = Mathf.Abs(currentDirection.x);
|
||||
else if (pos.x > maxBounds.x) currentDirection.x = -Mathf.Abs(currentDirection.x);
|
||||
|
||||
if (pos.y < minBounds.y)
|
||||
{
|
||||
currentDirection.y = Mathf.Abs(currentDirection.y);
|
||||
}
|
||||
else if (pos.y > maxBounds.y)
|
||||
{
|
||||
currentDirection.y = -Mathf.Abs(currentDirection.y);
|
||||
}
|
||||
}
|
||||
void MoveStraight()
|
||||
{
|
||||
transform.position += currentDirection * speed * Time.deltaTime;
|
||||
if (pos.y < minBounds.y) currentDirection.y = Mathf.Abs(currentDirection.y);
|
||||
else if (pos.y > maxBounds.y) currentDirection.y = -Mathf.Abs(currentDirection.y);
|
||||
}
|
||||
|
||||
void ContinueMovement()
|
||||
{
|
||||
// Calcular la dirección actual del movimiento
|
||||
Vector3 direction = currentDirection.normalized;
|
||||
|
||||
// Movimiento con oscilación (opcional)
|
||||
// Oscilación suave
|
||||
Vector3 perpendicular = Vector3.Cross(direction, Vector3.forward).normalized;
|
||||
oscillationTime += Time.deltaTime * oscillationFrequency;
|
||||
float oscillationOffset = Mathf.Sin(oscillationTime) * oscillationAmplitude;
|
||||
Vector3 finalDirection = direction + perpendicular * oscillationOffset;
|
||||
finalDirection = finalDirection.normalized;
|
||||
float oscillationOffset = Mathf.Sin(oscillationTime) * oscillationAmplitude; // ← FIX
|
||||
Vector3 finalDirection = (direction + perpendicular * oscillationOffset).normalized; // ← FIX
|
||||
|
||||
// Calcular el ángulo hacia la dirección final
|
||||
float angle = Mathf.Atan2(finalDirection.y, finalDirection.x) * Mathf.Rad2Deg - 90f; // Ajustar para que el frente apunte hacia +Y
|
||||
// Rotación hacia la dirección de avance (sprite mirando +Y)
|
||||
float angle = Mathf.Atan2(finalDirection.y, finalDirection.x) * Mathf.Rad2Deg - 90f;
|
||||
Quaternion targetRotation = Quaternion.Euler(0, 0, angle);
|
||||
|
||||
// Aplicar rotación suavizada
|
||||
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * 5f);
|
||||
|
||||
// Calcular la posición del avión en el siguiente frame
|
||||
Vector3 nextPosition = transform.position + finalDirection * speed * Time.deltaTime;
|
||||
|
||||
// Verificar si hay desviación en la trayectoria
|
||||
Vector3 deviation = nextPosition - transform.position;
|
||||
float deviationMagnitude = deviation.magnitude;
|
||||
|
||||
if (deviationMagnitude > 0.01f) // Umbral para detectar desviaciones
|
||||
{
|
||||
// Ajustar la dirección hacia la trayectoria ideal
|
||||
direction = deviation.normalized;
|
||||
}
|
||||
|
||||
// Actualizar posición
|
||||
// Movimiento
|
||||
transform.position += finalDirection * speed * Time.deltaTime;
|
||||
|
||||
|
||||
// Comprobar si está aterrizando
|
||||
if (isLanding)
|
||||
{
|
||||
// Alinear la rotación con la dirección de la pista
|
||||
Vector3 runwayDirection = targetRunway.landingDirection.normalized;
|
||||
float runwayAngle = Mathf.Atan2(runwayDirection.y, runwayDirection.x) * Mathf.Rad2Deg - 90f; // Ajustar para que el frente apunte hacia +Y
|
||||
Quaternion runwayRotation = Quaternion.Euler(0, 0, runwayAngle);
|
||||
|
||||
// Rotar suavemente hacia la dirección de la pista
|
||||
transform.rotation = Quaternion.RotateTowards(transform.rotation, runwayRotation, Time.deltaTime * 360f);
|
||||
|
||||
// Mover el avión al punto de aterrizaje final
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetRunway.entryPoint.position, speed * Time.deltaTime);
|
||||
|
||||
// Comprobar si ha llegado al punto de aterrizaje final
|
||||
if (Vector3.Distance(transform.position, targetRunway.entryPoint.position) < 0.1f)
|
||||
{
|
||||
//collision
|
||||
transform.rotation = runwayRotation; // Asegurar que la rotación final sea la dirección de la pista
|
||||
Debug.Log("Aterrizaje completado");
|
||||
StartCoroutine(LandingAnimation()); // Llamar animación final
|
||||
return; // Detener cualquier movimiento adicional
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FollowPath()
|
||||
{
|
||||
if (pathIndex >= path.Length) return;
|
||||
@@ -186,29 +227,22 @@ public class PlaneController : MonoBehaviour
|
||||
Vector3 target = path[pathIndex];
|
||||
Vector3 direction = (target - transform.position).normalized;
|
||||
|
||||
// Calcular el ángulo hacia la dirección actual
|
||||
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - 90f;
|
||||
Quaternion targetRotation = Quaternion.Euler(0, 0, angle);
|
||||
|
||||
// Aplicar rotación suavizada
|
||||
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * 5f);
|
||||
|
||||
// Mover el avión hacia el objetivo
|
||||
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
|
||||
|
||||
// Verificar si alcanzamos el punto actual
|
||||
if (Vector3.Distance(transform.position, target) < 0.1f)
|
||||
{
|
||||
pathIndex++;
|
||||
UpdateLineRenderer();
|
||||
|
||||
// Si es el último punto, marcar el aterrizaje como completado
|
||||
if (pathIndex >= path.Length && targetRunway != null)
|
||||
{
|
||||
isLanding = true;
|
||||
Debug.Log("Aterrizaje completado");
|
||||
StartCoroutine(LandingAnimation());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -217,23 +251,21 @@ public class PlaneController : MonoBehaviour
|
||||
{
|
||||
if (runway == null)
|
||||
{
|
||||
Debug.LogError("Runway es null. Asegúrate de asignar una pista válida.");
|
||||
Debug.LogError("Runway es null. Asigna una pista válida.");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Validar que el tipo de avión coincida con el tipo de pista
|
||||
if (planeType.ToString() != runway.runwayType.ToString())
|
||||
{
|
||||
Debug.LogError($"El avión '{planeType}' no puede aterrizar en la pista '{runway.runwayType}'.");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Validar puntos de aterrizaje específicos según el tipo de avión
|
||||
if (planeType == PlaneType.Helicopter)
|
||||
{
|
||||
if (runway.helicopterLandingPoint == null)
|
||||
{
|
||||
Debug.LogError($"Runway '{runway.name}' no tiene un helicopterLandingPoint asignado.");
|
||||
Debug.LogError($"Runway '{runway.name}' no tiene helicopterLandingPoint.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -241,7 +273,7 @@ public class PlaneController : MonoBehaviour
|
||||
{
|
||||
if (runway.landingTarget == null)
|
||||
{
|
||||
Debug.LogError($"Runway '{runway.name}' no tiene un landingTarget asignado.");
|
||||
Debug.LogError($"Runway '{runway.name}' no tiene landingTarget.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -249,89 +281,63 @@ public class PlaneController : MonoBehaviour
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public void SetPath(Vector3[] newPath, Runway runwayCandidate)
|
||||
{
|
||||
if (!ValidateRunway(runwayCandidate))
|
||||
{
|
||||
Debug.LogWarning("La validación de la pista falló. No se asignará ruta.");
|
||||
Debug.LogWarning("Validación de pista falló. No se asigna ruta.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (newPath == null || newPath.Length == 0)
|
||||
{
|
||||
Debug.LogError("newPath es null o está vacío. No se puede asignar una ruta.");
|
||||
Debug.LogError("newPath es null o vacío.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Asignar la pista de aterrizaje
|
||||
targetRunway = runwayCandidate;
|
||||
path = newPath;
|
||||
pathIndex = 0;
|
||||
isLanding = false;
|
||||
|
||||
// Crear una lista de puntos ajustados
|
||||
// Extiende la ruta hacia el punto de aterrizaje correcto
|
||||
List<Vector3> adjustedPath = new List<Vector3>(path);
|
||||
|
||||
if (planeType == PlaneType.Helicopter)
|
||||
{
|
||||
adjustedPath.Add(runwayCandidate.helicopterLandingPoint.position);
|
||||
}
|
||||
else
|
||||
{
|
||||
adjustedPath.Add(runwayCandidate.landingTarget.position);
|
||||
}
|
||||
|
||||
path = adjustedPath.ToArray();
|
||||
|
||||
// Actualizar la línea del LineRenderer
|
||||
UpdateLineRenderer();
|
||||
Debug.Log($"Ruta asignada correctamente para {planeType}. Puntos en la ruta: {path.Length}");
|
||||
Debug.Log($"Ruta asignada para {planeType}. Puntos: {path.Length}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void UpdatePath(Vector3[] newPath, Runway runwayCandidate)
|
||||
{
|
||||
path = newPath;
|
||||
if (path == null || path.Length == 0) return;
|
||||
|
||||
if (pathIndex >= path.Length)
|
||||
pathIndex = path.Length - 1;
|
||||
if (pathIndex >= path.Length) pathIndex = path.Length - 1;
|
||||
if (pathIndex < 0) pathIndex = 0;
|
||||
|
||||
UpdateLineRenderer();
|
||||
targetRunway = runwayCandidate;
|
||||
}
|
||||
|
||||
public int GetCurrentPathIndex()
|
||||
{
|
||||
return pathIndex;
|
||||
}
|
||||
public int GetCurrentPathIndex() => pathIndex;
|
||||
|
||||
void ValidateRunwayEntry()
|
||||
{
|
||||
// Si no hay pista válida, no intentar aterrizar
|
||||
if (targetRunway == null || path == null || pathIndex <= 0 || pathIndex >= path.Length) return;
|
||||
|
||||
float distanceToEntry = Vector3.Distance(transform.position, targetRunway.entryPoint.position);
|
||||
if (distanceToEntry < 1.5f) // Comprobar si el avión está cerca del punto de entrada
|
||||
if (distanceToEntry < 1.5f)
|
||||
{
|
||||
Vector2 planeDir = (path[pathIndex] - path[pathIndex - 1]).normalized;
|
||||
Vector2 runwayDir = targetRunway.landingDirection.normalized;
|
||||
float dot = Vector2.Dot(planeDir, runwayDir);
|
||||
|
||||
// Verificar si la dirección es correcta y no está ya aterrizando
|
||||
if (dot > 0.8f && !isLanding)
|
||||
{
|
||||
if (targetRunway.allowedPlaneType == planeType)
|
||||
@@ -340,14 +346,14 @@ public class PlaneController : MonoBehaviour
|
||||
|
||||
spriteRenderer.color = Color.green;
|
||||
if (airplaneCollision != null) airplaneCollision.enabled = false;
|
||||
if (collider != null) collider.enabled = false;
|
||||
if (boxCollider2D != null) boxCollider2D.enabled = false;
|
||||
|
||||
StartCoroutine(LandingAnimation());
|
||||
Debug.Log($"El avión {planeType} aterrizó correctamente en la pista {targetRunway.runwayType}.");
|
||||
Debug.Log($"El avión {planeType} aterrizó en {targetRunway.runwayType}.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"El avión {planeType} no puede aterrizar en la pista {targetRunway.runwayType}.");
|
||||
Debug.Log($"El avión {planeType} NO puede aterrizar en {targetRunway.runwayType}.");
|
||||
spriteRenderer.color = Color.red;
|
||||
}
|
||||
}
|
||||
@@ -360,6 +366,9 @@ public class PlaneController : MonoBehaviour
|
||||
|
||||
IEnumerator LandingAnimation()
|
||||
{
|
||||
// Resolver emergencia si estaba activa
|
||||
ExitEmergency();
|
||||
|
||||
spriteRenderer.color = Color.green;
|
||||
if (lineRenderer != null) lineRenderer.positionCount = 0;
|
||||
|
||||
@@ -368,15 +377,9 @@ public class PlaneController : MonoBehaviour
|
||||
Vector3 endPos;
|
||||
|
||||
if (planeType == PlaneType.Helicopter && targetRunway.helicopterLandingPoint != null)
|
||||
{
|
||||
// Aterrizaje en el punto específico del helipuerto
|
||||
endPos = targetRunway.helicopterLandingPoint.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Aterrizaje para aviones
|
||||
endPos = targetRunway.entryPoint.position + (Vector3)targetRunway.landingDirection.normalized * 3f;
|
||||
}
|
||||
|
||||
while (elapsed < duration)
|
||||
{
|
||||
@@ -391,28 +394,24 @@ public class PlaneController : MonoBehaviour
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
|
||||
void UpdateLineRenderer()
|
||||
{
|
||||
if (lineRenderer == null || path == null)
|
||||
return;
|
||||
if (lineRenderer == null || path == null) return;
|
||||
|
||||
int remaining = path.Length - pathIndex;
|
||||
if (remaining < 0) remaining = 0;
|
||||
|
||||
lineRenderer.positionCount = remaining;
|
||||
for (int i = 0; i < remaining; i++)
|
||||
{
|
||||
lineRenderer.SetPosition(i, path[pathIndex + i]);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetInitialDirection(Vector3 direction)
|
||||
{
|
||||
if (direction != Vector3.zero)
|
||||
{
|
||||
currentDirection = direction.normalized;
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckProximity()
|
||||
{
|
||||
PlaneController[] planes = FindObjectsOfType<PlaneController>();
|
||||
@@ -431,8 +430,78 @@ public class PlaneController : MonoBehaviour
|
||||
}
|
||||
|
||||
if (proximityCircle != null)
|
||||
{
|
||||
proximityCircle.SetActive(isNearAnotherPlane);
|
||||
}
|
||||
}
|
||||
|
||||
// =========================
|
||||
// SISTEMA DE EMERGENCIA
|
||||
// =========================
|
||||
|
||||
/// <summary>
|
||||
/// Activa una emergencia. Si duration<0, usa una ventana aleatoria según sea automática o manual.
|
||||
/// </summary>
|
||||
public void TriggerEmergency(bool autoTriggered = false, float duration = -1f)
|
||||
{
|
||||
if (!allowEmergency || inEmergency) return;
|
||||
|
||||
float dur = duration < 0f
|
||||
? RandomFromRange(autoTriggered ? autoEmergencyWindow : manualEmergencyWindow)
|
||||
: Mathf.Max(7f, duration); // siempre >= 7s
|
||||
|
||||
EnterEmergency(dur);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sale (resuelve) de la emergencia actual.
|
||||
/// </summary>
|
||||
public void ExitEmergency()
|
||||
{
|
||||
if (!inEmergency) return;
|
||||
inEmergency = false;
|
||||
isEmergency = false; // legacy
|
||||
|
||||
ApagarFuego();
|
||||
if (spriteRenderer != null) spriteRenderer.color = Color.white;
|
||||
}
|
||||
|
||||
// Mantiene compatibilidad con tu firma original (legacy)
|
||||
private void IsInEmergency(bool enabled, float maxTime)
|
||||
{
|
||||
if (!allowEmergency) return;
|
||||
if (enabled) TriggerEmergency(autoTriggered: false, duration: Mathf.Max(7f, maxTime));
|
||||
else ExitEmergency();
|
||||
}
|
||||
|
||||
// ---- Internos ----
|
||||
private void EnterEmergency(float duration)
|
||||
{
|
||||
inEmergency = true;
|
||||
isEmergency = true; // legacy
|
||||
emergencyStartTime = Time.time;
|
||||
emergencyDeadline = emergencyStartTime + Mathf.Max(7f, duration);
|
||||
|
||||
EncenderFuego();
|
||||
if (spriteRenderer != null) spriteRenderer.color = Color.yellow;
|
||||
|
||||
Debug.Log($"[EMERGENCIA] Iniciada. Tiempo límite: {duration:0.0}s");
|
||||
}
|
||||
|
||||
private float RandomFromRange(Vector2 range)
|
||||
{
|
||||
float min = Mathf.Max(7f, Mathf.Min(range.x, range.y));
|
||||
float max = Mathf.Max(min, Mathf.Max(range.x, range.y));
|
||||
return Random.Range(min, max);
|
||||
}
|
||||
|
||||
private void EncenderFuego()
|
||||
{
|
||||
if (fuegoIzquierdo != null) fuegoIzquierdo.SetActive(true);
|
||||
if (fuegoDerecho != null) fuegoDerecho.SetActive(true);
|
||||
}
|
||||
|
||||
private void ApagarFuego()
|
||||
{
|
||||
if (fuegoIzquierdo != null) fuegoIzquierdo.SetActive(false);
|
||||
if (fuegoDerecho != null) fuegoDerecho.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
@@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b5394d4b462787745b6c1cda3aa54e8b
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -1552690994364867892
|
||||
second: 58a1e076e33a543010fac27a_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: 58a1e076e33a543010fac27a_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 94
|
||||
y: 109
|
||||
width: 771
|
||||
height: 1095
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: cca1fe264cbb37ae0800000000000000
|
||||
internalID: -1552690994364867892
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
58a1e076e33a543010fac27a_0: -1552690994364867892
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9df10bfc3763106409104f716f46f144
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -3614818113831214166
|
||||
second: Helipuerto_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 500
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Helipuerto_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 512
|
||||
height: 512
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: aa3617dd31695ddc0800000000000000
|
||||
internalID: -3614818113831214166
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Helipuerto_0: -3614818113831214166
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
@@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2c3f2a8fcece2a44aa83dba193e0624
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 5953366511424165707
|
||||
second: Zeppepuerto_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 500
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Zeppepuerto_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 512
|
||||
height: 512
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: b47d423cc4b9e9250800000000000000
|
||||
internalID: 5953366511424165707
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Zeppepuerto_0: 5953366511424165707
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user