Agreegado modo emeergencia a los aviones Jumbo, y agregados sprites de Helipiuerto y zedppelin

This commit is contained in:
2025-09-07 02:37:39 -03:00
parent ecd13ac28a
commit 2769859b7c
11 changed files with 1104 additions and 166 deletions
+193 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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 asigna 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: