diff --git a/Assets/Editor/Minigames/Airplane/ParallaxBackgroundSpawnerEditor.cs b/Assets/Editor/Minigames/Airplane/ParallaxBackgroundSpawnerEditor.cs
index e9517d28..79427250 100644
--- a/Assets/Editor/Minigames/Airplane/ParallaxBackgroundSpawnerEditor.cs
+++ b/Assets/Editor/Minigames/Airplane/ParallaxBackgroundSpawnerEditor.cs
@@ -14,9 +14,13 @@ namespace Editor.Minigames.Airplane
public class ParallaxBackgroundSpawnerEditor : UnityEditor.Editor
{
private SerializedProperty _poolsProperty;
- private SerializedProperty _backgroundSortLayerProperty;
- private SerializedProperty _middleSortLayerProperty;
- private SerializedProperty _foregroundSortLayerProperty;
+ private SerializedProperty _parallaxSortLayerProperty;
+ private SerializedProperty _backgroundSortOrderProperty;
+ private SerializedProperty _sortOrderIncrementProperty;
+ private SerializedProperty _globalStrengthProperty;
+ private SerializedProperty _backgroundSpeedProperty;
+ private SerializedProperty _middleSpeedProperty;
+ private SerializedProperty _foregroundSpeedProperty;
private SerializedProperty _cameraManagerProperty;
private SerializedProperty _showDebugLogsProperty;
@@ -33,9 +37,13 @@ namespace Editor.Minigames.Airplane
private void OnEnable()
{
_poolsProperty = serializedObject.FindProperty("pools");
- _backgroundSortLayerProperty = serializedObject.FindProperty("backgroundSortLayer");
- _middleSortLayerProperty = serializedObject.FindProperty("middleSortLayer");
- _foregroundSortLayerProperty = serializedObject.FindProperty("foregroundSortLayer");
+ _parallaxSortLayerProperty = serializedObject.FindProperty("parallaxSortLayer");
+ _backgroundSortOrderProperty = serializedObject.FindProperty("backgroundSortOrder");
+ _sortOrderIncrementProperty = serializedObject.FindProperty("sortOrderIncrement");
+ _globalStrengthProperty = serializedObject.FindProperty("globalStrength");
+ _backgroundSpeedProperty = serializedObject.FindProperty("backgroundSpeed");
+ _middleSpeedProperty = serializedObject.FindProperty("middleSpeed");
+ _foregroundSpeedProperty = serializedObject.FindProperty("foregroundSpeed");
_cameraManagerProperty = serializedObject.FindProperty("cameraManager");
_showDebugLogsProperty = serializedObject.FindProperty("showDebugLogs");
@@ -74,11 +82,44 @@ namespace Editor.Minigames.Airplane
EditorGUILayout.PropertyField(_cameraManagerProperty);
EditorGUILayout.Space();
- // Sort Layers
- EditorGUILayout.LabelField("Sort Layer Configuration", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(_backgroundSortLayerProperty, new GUIContent("Background Sort Layer"));
- EditorGUILayout.PropertyField(_middleSortLayerProperty, new GUIContent("Middle Sort Layer"));
- EditorGUILayout.PropertyField(_foregroundSortLayerProperty, new GUIContent("Foreground Sort Layer"));
+ // Parallax Configuration (CENTRALIZED SETTINGS)
+ EditorGUILayout.LabelField("Parallax Configuration", EditorStyles.boldLabel);
+ EditorGUILayout.HelpBox("These settings apply to ALL parallax elements spawned by this spawner. Adjust speeds to control depth perception.", MessageType.Info);
+
+ EditorGUILayout.PropertyField(_globalStrengthProperty, new GUIContent("Global Strength", "Overall parallax intensity (0 = no effect, 1 = full)"));
+ EditorGUILayout.Space(5);
+
+ EditorGUILayout.LabelField("Per-Layer Speeds", EditorStyles.miniBoldLabel);
+ EditorGUI.indentLevel++;
+ EditorGUILayout.PropertyField(_backgroundSpeedProperty, new GUIContent("Background Speed", "Slowest layer, appears furthest (e.g., 0.3)"));
+ EditorGUILayout.PropertyField(_middleSpeedProperty, new GUIContent("Middle Speed", "Medium speed layer (e.g., 0.6)"));
+ EditorGUILayout.PropertyField(_foregroundSpeedProperty, new GUIContent("Foreground Speed", "Fastest layer, appears closest (e.g., 0.9)"));
+ EditorGUI.indentLevel--;
+
+ // Validation warnings
+ if (_backgroundSpeedProperty.floatValue >= _middleSpeedProperty.floatValue)
+ {
+ EditorGUILayout.HelpBox("Warning: Background speed should be less than Middle speed for proper depth effect", MessageType.Warning);
+ }
+ if (_middleSpeedProperty.floatValue >= _foregroundSpeedProperty.floatValue)
+ {
+ EditorGUILayout.HelpBox("Warning: Middle speed should be less than Foreground speed for proper depth effect", MessageType.Warning);
+ }
+
+ EditorGUILayout.Space();
+
+ // Sort Configuration
+ EditorGUILayout.LabelField("Sort Configuration", EditorStyles.boldLabel);
+ EditorGUILayout.HelpBox("All parallax objects use the same sort layer with different sort orders for depth.", MessageType.Info);
+ EditorGUILayout.PropertyField(_parallaxSortLayerProperty, new GUIContent("Sort Layer", "Sort layer for all parallax elements (typically 'Background')"));
+ EditorGUILayout.PropertyField(_backgroundSortOrderProperty, new GUIContent("Background Sort Order", "Sort order for furthest back layer (e.g., -50)"));
+ EditorGUILayout.PropertyField(_sortOrderIncrementProperty, new GUIContent("Sort Order Increment", "Increment between layers (e.g., 10 → Middle: -40, Foreground: -30)"));
+
+ // Show calculated sort orders
+ int middleOrder = _backgroundSortOrderProperty.intValue + _sortOrderIncrementProperty.intValue;
+ int foregroundOrder = _backgroundSortOrderProperty.intValue + (_sortOrderIncrementProperty.intValue * 2);
+ EditorGUILayout.LabelField($"Calculated: Background={_backgroundSortOrderProperty.intValue}, Middle={middleOrder}, Foreground={foregroundOrder}", EditorStyles.miniLabel);
+
EditorGUILayout.Space();
// Pool Mode (locked to Exclusive)
@@ -98,8 +139,9 @@ namespace Editor.Minigames.Airplane
{
var poolElement = _poolsProperty.GetArrayElementAtIndex(i);
var prefabsProperty = poolElement.FindPropertyRelative("prefabs");
- var unlockTimeProperty = poolElement.FindPropertyRelative("unlockTime");
var descProperty = poolElement.FindPropertyRelative("description");
+ var overrideMinDistProperty = poolElement.FindPropertyRelative("overrideMinDistance");
+ var overrideMaxDistProperty = poolElement.FindPropertyRelative("overrideMaxDistance");
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
@@ -113,8 +155,14 @@ namespace Editor.Minigames.Airplane
EditorGUILayout.LabelField(_layerDescriptions[i], EditorStyles.miniLabel);
EditorGUILayout.Space(5);
+ EditorGUILayout.PropertyField(descProperty, new GUIContent("Description"));
EditorGUILayout.PropertyField(prefabsProperty, new GUIContent("Prefabs"), true);
- EditorGUILayout.PropertyField(unlockTimeProperty, new GUIContent("Unlock Time (seconds)"));
+
+ EditorGUILayout.Space(5);
+ EditorGUILayout.LabelField("Spawn Distance Overrides", EditorStyles.miniBoldLabel);
+ EditorGUILayout.HelpBox("Leave at 0 to use global settings. Set > 0 to override for this layer.", MessageType.Info);
+ EditorGUILayout.PropertyField(overrideMinDistProperty, new GUIContent("Min Distance Override", "Minimum distance between objects (0 = use global)"));
+ EditorGUILayout.PropertyField(overrideMaxDistProperty, new GUIContent("Max Distance Override", "Maximum distance between objects (0 = use global)"));
// Show info about prefab count
if (prefabsProperty.arraySize == 0)
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground.meta
new file mode 100644
index 00000000..faa7db21
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f8ef922594273a44b7a93d1112de475
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background.meta
new file mode 100644
index 00000000..95fc356a
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b15db506b2816c7448d98bfad536322e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab
new file mode 100644
index 00000000..978c1320
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: -2730228252373635613}
+ m_Layer: 0
+ m_Name: Cloud 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 4.996948, y: 4.996948, z: 4.996948}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -2531649364063002299, guid: 47c77f51628506e43a3a29e93e2ef24b, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-2730228252373635613
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 15
+ randomYMax: 50
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab.meta
new file mode 100644
index 00000000..029391c9
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 1.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d9c2ddaa5d7acfa41b1ed92a1564560f
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab
new file mode 100644
index 00000000..1d36cb32
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: 6763092502780334856}
+ m_Layer: 0
+ m_Name: Cloud 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 9.7, y: 9.7, z: 9.7}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -2531649364063002299, guid: 47c77f51628506e43a3a29e93e2ef24b, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &6763092502780334856
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 5
+ randomYMax: 25
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab.meta
new file mode 100644
index 00000000..4e532f7e
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 2.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 04a5ea4c8c227d04e9d66c5bd183f127
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab
new file mode 100644
index 00000000..774c9a00
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: 3821761156441349722}
+ m_Layer: 0
+ m_Name: Cloud 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 8.45308, y: 8.45308, z: 8.45308}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 1508337238920719353, guid: 03a5936ba20198b48a228a1cb0ccf1e0, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &3821761156441349722
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 15
+ randomYMax: 50
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab.meta
new file mode 100644
index 00000000..2917c4c3
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 3.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2d826ffbbf2b169419cbaf1b9fd5adf9
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab
new file mode 100644
index 00000000..629f91c8
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: -5117962126752931833}
+ m_Layer: 0
+ m_Name: Cloud 4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 4.996948, y: 4.996948, z: 4.996948}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 1508337238920719353, guid: 03a5936ba20198b48a228a1cb0ccf1e0, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-5117962126752931833
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 15
+ randomYMax: 50
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab.meta
new file mode 100644
index 00000000..8fe21254
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 4.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 553fdd7acf88ffc4b9d300906b9d5084
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab
new file mode 100644
index 00000000..2eef3b9a
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: -5037727648253162311}
+ m_Layer: 0
+ m_Name: Cloud 5
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 9.7, y: 9.7, z: 9.7}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 1508337238920719353, guid: 03a5936ba20198b48a228a1cb0ccf1e0, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-5037727648253162311
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 15
+ randomYMax: 60
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab.meta
new file mode 100644
index 00000000..5e963f89
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud 5.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 41b5f43daaa530644b39097f4ec95104
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab
new file mode 100644
index 00000000..aaa4c087
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5151173141545254425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5809503828362050416}
+ - component: {fileID: 626320663203422954}
+ - component: {fileID: 7517701677496128920}
+ m_Layer: 0
+ m_Name: Cloud
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5809503828362050416
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 6.2591, y: 6.2591, z: 6.2591}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &626320663203422954
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -2531649364063002299, guid: 47c77f51628506e43a3a29e93e2ef24b, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.72, y: 2.54}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &7517701677496128920
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5151173141545254425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 2
+ specifiedY: 0
+ randomYMin: 15
+ randomYMax: 50
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab.meta
new file mode 100644
index 00000000..0f25e568
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Background/Cloud.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b0d1bfa4dea596a43b14726844143958
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground.meta
new file mode 100644
index 00000000..30bbde9a
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba35834c4106144459943b40221165c3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab
new file mode 100644
index 00000000..562a12cb
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab
@@ -0,0 +1,326 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &284565137270423803
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1830647074121286980}
+ - component: {fileID: 445482946354992455}
+ m_Layer: 0
+ m_Name: Bush (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1830647074121286980
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 284565137270423803}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -22.245468, y: -9.540898, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &445482946354992455
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 284565137270423803}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &370961529972617166
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4099576798772798678}
+ - component: {fileID: 7969953414818218085}
+ m_Layer: 0
+ m_Name: Bush (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4099576798772798678
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -20.245468, y: -11.3408985, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &7969953414818218085
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &2405005885826663060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1539948012152911233}
+ - component: {fileID: -2960207077745281184}
+ m_Layer: 0
+ m_Name: Bushes
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1539948012152911233
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2189097924517629894}
+ - {fileID: 1830647074121286980}
+ - {fileID: 4099576798772798678}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &-2960207077745281184
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
+--- !u!1 &9210638249040086883
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2189097924517629894}
+ - component: {fileID: 2361412318642041498}
+ m_Layer: 0
+ m_Name: Bush
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2189097924517629894
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -26.445469, y: -11.240898, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &2361412318642041498
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab.meta
new file mode 100644
index 00000000..b220dc88
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 745fab545f64b0642b978cd5ba65e51d
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab
new file mode 100644
index 00000000..df6c2905
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab
@@ -0,0 +1,510 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &284565137270423803
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1830647074121286980}
+ - component: {fileID: 445482946354992455}
+ m_Layer: 0
+ m_Name: Bush (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1830647074121286980
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 284565137270423803}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -22.245468, y: -9.540898, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &445482946354992455
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 284565137270423803}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &370961529972617166
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4099576798772798678}
+ - component: {fileID: 7969953414818218085}
+ m_Layer: 0
+ m_Name: Bush (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4099576798772798678
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -20.245468, y: -11.3408985, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &7969953414818218085
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &2405005885826663060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1539948012152911233}
+ - component: {fileID: 2222220414209176757}
+ m_Layer: 0
+ m_Name: Bushes2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1539948012152911233
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2189097924517629894}
+ - {fileID: 1830647074121286980}
+ - {fileID: 4099576798772798678}
+ - {fileID: 3992879680070418879}
+ - {fileID: 495869288432280242}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2222220414209176757
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
+--- !u!1 &5441559675654747664
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 495869288432280242}
+ - component: {fileID: 8180821467402598608}
+ m_Layer: 0
+ m_Name: Bush (4)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &495869288432280242
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5441559675654747664}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -15.89, y: -11.29, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &8180821467402598608
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5441559675654747664}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &8530614714647020621
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3992879680070418879}
+ - component: {fileID: 1286937362088428332}
+ m_Layer: 0
+ m_Name: Bush (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3992879680070418879
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8530614714647020621}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -18.04, y: -9.35, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1286937362088428332
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8530614714647020621}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &9210638249040086883
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2189097924517629894}
+ - component: {fileID: 2361412318642041498}
+ m_Layer: 0
+ m_Name: Bush
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2189097924517629894
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -26.445469, y: -11.240898, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &2361412318642041498
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab.meta
new file mode 100644
index 00000000..58d25021
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes2.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2b45d26d0e98cce4c82fc7414805edfa
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab
new file mode 100644
index 00000000..50bffc1c
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab
@@ -0,0 +1,234 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &370961529972617166
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4099576798772798678}
+ - component: {fileID: 7969953414818218085}
+ m_Layer: 0
+ m_Name: Bush (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4099576798772798678
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -23.43, y: -11.04, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &7969953414818218085
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370961529972617166}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &2405005885826663060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1539948012152911233}
+ - component: {fileID: -5062964641679850418}
+ m_Layer: 0
+ m_Name: Bushes3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1539948012152911233
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2189097924517629894}
+ - {fileID: 4099576798772798678}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &-5062964641679850418
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2405005885826663060}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
+--- !u!1 &9210638249040086883
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2189097924517629894}
+ - component: {fileID: 2361412318642041498}
+ m_Layer: 0
+ m_Name: Bush
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2189097924517629894
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -26.445469, y: -11.240898, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1539948012152911233}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &2361412318642041498
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9210638249040086883}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab.meta
new file mode 100644
index 00000000..d0902704
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Bushes3.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 63558e5ef317da348a0dc24bade05b93
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab
new file mode 100644
index 00000000..f6615311
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6834004734717855054
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6820121061384395020}
+ - component: {fileID: 6976441968461556768}
+ - component: {fileID: -9154724994619676525}
+ m_Layer: 0
+ m_Name: Tree1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6820121061384395020
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6834004734717855054}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -13.9, y: 2.4000015, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6976441968461556768
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6834004734717855054}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-9154724994619676525
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6834004734717855054}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab.meta
new file mode 100644
index 00000000..6414755c
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/Tree1.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 56c7f78165748d14e904ce970995ed85
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab
new file mode 100644
index 00000000..33149153
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab
@@ -0,0 +1,326 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2439114276580390837
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1088912832036917763}
+ - component: {fileID: -7717229810774754135}
+ m_Layer: 0
+ m_Name: TreeGroup
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1088912832036917763
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2439114276580390837}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2596113292205067521}
+ - {fileID: 30883490510243952}
+ - {fileID: 6638832021173743968}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &-7717229810774754135
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2439114276580390837}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
+--- !u!1 &8199323135941985458
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6638832021173743968}
+ - component: {fileID: 2755619005994430403}
+ m_Layer: 0
+ m_Name: Bush (8)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6638832021173743968
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8199323135941985458}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -22.15, y: -28, z: 0}
+ m_LocalScale: {x: 1.3889, y: 1.3889, z: 1.3889}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1088912832036917763}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &2755619005994430403
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8199323135941985458}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &8706323806710955201
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 30883490510243952}
+ - component: {fileID: 1864549540372884580}
+ m_Layer: 0
+ m_Name: Bush (7)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &30883490510243952
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8706323806710955201}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -24.4, y: -28.63, z: 0}
+ m_LocalScale: {x: 0.6818, y: 0.6818, z: 0.6818}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1088912832036917763}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1864549540372884580
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8706323806710955201}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!1 &8796582261114010077
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2596113292205067521}
+ - component: {fileID: 3863657134121262542}
+ m_Layer: 0
+ m_Name: Bush (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2596113292205067521
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8796582261114010077}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -27.034805, y: -28.21682, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1088912832036917763}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &3863657134121262542
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8796582261114010077}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 622133659
+ m_SortingLayer: -1
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 8.15, y: 4.61}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab.meta
new file mode 100644
index 00000000..b9aa66df
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Foreground/TreeGroup.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7e8f54df4c74f8f4a877d5729286fe5a
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle.meta
new file mode 100644
index 00000000..3bafbe4d
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6623faf0bcf7d84468969d2c3e481d3f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab
new file mode 100644
index 00000000..6b158e66
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3707466564348580456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6489938372873184282}
+ - component: {fileID: 1053150720430733673}
+ - component: {fileID: -6201028178928489780}
+ m_Layer: 0
+ m_Name: House 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6489938372873184282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1.5294914, y: 1.5294914, z: 1.5294914}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1053150720430733673
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 5452591694125666932, guid: 1068ec3c76101e24a9c550d96c3b7b83, 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.65, y: 6.075}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-6201028178928489780
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab.meta
new file mode 100644
index 00000000..8a9fd8dc
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 1.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 96866019d4dc15f4387ddad1333634ab
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab
new file mode 100644
index 00000000..4c4016cf
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3707466564348580456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6489938372873184282}
+ - component: {fileID: 1053150720430733673}
+ - component: {fileID: -1118722040340468723}
+ m_Layer: 0
+ m_Name: House 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6489938372873184282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1.9999999, y: 1.9999999, z: 1.9999999}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1053150720430733673
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 7763308037186749932, guid: b8a806194d0b40e41b62652a3fc25f7b, 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.65, y: 6.075}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-1118722040340468723
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab.meta
new file mode 100644
index 00000000..f36afca5
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 2.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a27a76cd67e25fe4fbeea326f594ec2c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab
new file mode 100644
index 00000000..2a5ec400
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3707466564348580456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6489938372873184282}
+ - component: {fileID: 1053150720430733673}
+ - component: {fileID: 263283298343971857}
+ m_Layer: 0
+ m_Name: House 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6489938372873184282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1053150720430733673
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: 499587934724417843, guid: 04edac8af91d23b4c84ebcf08a41babe, 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.65, y: 6.075}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &263283298343971857
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab.meta
new file mode 100644
index 00000000..1e436c3d
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 3.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d4dc2ca39d101a446a6ca7afe8acdfcf
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab
new file mode 100644
index 00000000..d1f74658
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3707466564348580456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6489938372873184282}
+ - component: {fileID: 1053150720430733673}
+ - component: {fileID: 22540477391130674}
+ m_Layer: 0
+ m_Name: House 4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6489938372873184282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5, y: 5, z: 5}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1053150720430733673
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -5797346409433087690, guid: 13a7f268cf2517a43902d1f0ff66a20d, 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.65, y: 6.075}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &22540477391130674
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab.meta
new file mode 100644
index 00000000..7cb1143b
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House 4.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d87cc6288dbb4464582a0c96dfca4607
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab
new file mode 100644
index 00000000..9fd41bf5
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab
@@ -0,0 +1,110 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3707466564348580456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6489938372873184282}
+ - component: {fileID: 1053150720430733673}
+ - component: {fileID: -6186227627049432776}
+ m_Layer: 0
+ m_Name: House
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6489938372873184282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 2, y: 2, z: 2}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1053150720430733673
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -2764832460221319265, guid: 1068ec3c76101e24a9c550d96c3b7b83, 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.65, y: 6.075}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
+--- !u!114 &-6186227627049432776
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3707466564348580456}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 90239fb003214b4087d0717f6f417161, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Data.PrefabSpawnEntryComponent
+ spawnPositionMode: 0
+ specifiedY: 0
+ randomYMin: -5
+ randomYMax: 5
diff --git a/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab.meta b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab.meta
new file mode 100644
index 00000000..ed34221e
--- /dev/null
+++ b/Assets/Prefabs/Minigames/Airplane/ParalaxBackground/Middle/House.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1b55130d1450b0741961df1fc7337f29
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/MiniGames/ValentineNoteDelivery.unity b/Assets/Scenes/MiniGames/ValentineNoteDelivery.unity
index 4643e799..e1b5e0a0 100644
--- a/Assets/Scenes/MiniGames/ValentineNoteDelivery.unity
+++ b/Assets/Scenes/MiniGames/ValentineNoteDelivery.unity
@@ -173,37 +173,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
---- !u!1 &39044400
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 39044401}
- m_Layer: 0
- m_Name: GameObject (1)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &39044401
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 39044400}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 78.47819, y: 25.5, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &108199298
GameObject:
m_ObjectHideFlags: 0
@@ -610,11 +579,6 @@ MonoBehaviour:
RotationDamping: {x: 1, y: 1, z: 1}
QuaternionDamping: 1
FollowOffset: {x: 0, y: 0, z: -10}
---- !u!4 &340229587 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- m_PrefabInstance: {fileID: 453576884181909409}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &377530944
GameObject:
m_ObjectHideFlags: 0
@@ -646,97 +610,6 @@ Transform:
m_Children: []
m_Father: {fileID: 1784207402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &469774135
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 469774136}
- - component: {fileID: 469774137}
- m_Layer: 0
- m_Name: Bush (4)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &469774136
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 469774135}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.49999952, y: 2.1000013, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &469774137
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 469774135}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &595230073
GameObject:
m_ObjectHideFlags: 0
@@ -871,97 +744,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &695066654
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 695066655}
- - component: {fileID: 695066656}
- m_Layer: 0
- m_Name: Bush (6)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &695066655
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 695066654}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 20.1, y: -0.49999905, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &695066656
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 695066654}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &742382007
GameObject:
m_ObjectHideFlags: 0
@@ -1397,7 +1179,7 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &815418543
+--- !u!1 &830587229
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -1405,39 +1187,39 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 815418544}
- - component: {fileID: 815418547}
- - component: {fileID: 815418546}
- - component: {fileID: 815418545}
+ - component: {fileID: 830587230}
+ - component: {fileID: 830587233}
+ - component: {fileID: 830587232}
+ - component: {fileID: 830587231}
m_Layer: 14
- m_Name: Ground (2)
+ m_Name: Ground (9)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!4 &815418544
+--- !u!4 &830587230
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 815418543}
+ m_GameObject: {fileID: 830587229}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -48.9, y: -5, z: 0}
+ m_LocalPosition: {x: -235.3, y: -5, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1701327424}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &815418545
+--- !u!61 &830587231
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 815418543}
+ m_GameObject: {fileID: 830587229}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
@@ -1477,14 +1259,14 @@ BoxCollider2D:
m_AutoTiling: 0
m_Size: {x: 2.68, y: 1.07}
m_EdgeRadius: 0
---- !u!50 &815418546
+--- !u!50 &830587232
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 815418543}
+ m_GameObject: {fileID: 830587229}
m_BodyType: 2
m_Simulated: 1
m_UseFullKinematicContacts: 0
@@ -1504,14 +1286,14 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
---- !u!212 &815418547
+--- !u!212 &830587233
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 815418543}
+ m_GameObject: {fileID: 830587229}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
@@ -1952,97 +1734,6 @@ MonoBehaviour:
shuffleDuration: 0.5
shuffleDistance: 2
showDebugLogs: 0
---- !u!1 &1140411104
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1140411105}
- - component: {fileID: 1140411106}
- m_Layer: 0
- m_Name: Bush
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1140411105
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1140411104}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -30.9, y: 2.4000015, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1140411106
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1140411104}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &1145809176
GameObject:
m_ObjectHideFlags: 0
@@ -2180,6 +1871,172 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1145809176}
m_CullTransparentMesh: 1
+--- !u!1 &1196308194
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1196308195}
+ - component: {fileID: 1196308198}
+ - component: {fileID: 1196308197}
+ - component: {fileID: 1196308196}
+ m_Layer: 14
+ m_Name: Ground (8)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1196308195
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196308194}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -204.1, y: -5, z: 0}
+ m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1701327424}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!61 &1196308196
+BoxCollider2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196308194}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Density: 1
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_ForceSendLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_ForceReceiveLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_ContactCaptureLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_CallbackLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_IsTrigger: 0
+ m_UsedByEffector: 0
+ m_CompositeOperation: 0
+ m_CompositeOrder: 0
+ m_Offset: {x: 0, y: 0}
+ m_SpriteTilingProperty:
+ border: {x: 0, y: 0, z: 0, w: 0}
+ pivot: {x: 0.5, y: 0.5}
+ oldSize: {x: 2.68, y: 1.07}
+ newSize: {x: 2.68, y: 1.07}
+ adaptiveTilingThreshold: 0.5
+ drawMode: 0
+ adaptiveTiling: 0
+ m_AutoTiling: 0
+ m_Size: {x: 2.68, y: 1.07}
+ m_EdgeRadius: 0
+--- !u!50 &1196308197
+Rigidbody2D:
+ serializedVersion: 5
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196308194}
+ m_BodyType: 2
+ m_Simulated: 1
+ m_UseFullKinematicContacts: 0
+ m_UseAutoMass: 0
+ m_Mass: 1
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_GravityScale: 1
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_Interpolate: 0
+ m_SleepingMode: 1
+ m_CollisionDetection: 0
+ m_Constraints: 0
+--- !u!212 &1196308198
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196308194}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -4331849829665928538, guid: 8be45455b29f80241a3b8aae36291752, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 2.68, y: 1.07}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
--- !u!1 &1219431442
GameObject:
m_ObjectHideFlags: 0
@@ -2663,6 +2520,172 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
+--- !u!1 &1451874670
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1451874671}
+ - component: {fileID: 1451874674}
+ - component: {fileID: 1451874673}
+ - component: {fileID: 1451874672}
+ m_Layer: 14
+ m_Name: Ground (7)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1451874671
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451874670}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -172.2, y: -5, z: 0}
+ m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1701327424}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!61 &1451874672
+BoxCollider2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451874670}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Density: 1
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_ForceSendLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_ForceReceiveLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_ContactCaptureLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_CallbackLayers:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_IsTrigger: 0
+ m_UsedByEffector: 0
+ m_CompositeOperation: 0
+ m_CompositeOrder: 0
+ m_Offset: {x: 0, y: 0}
+ m_SpriteTilingProperty:
+ border: {x: 0, y: 0, z: 0, w: 0}
+ pivot: {x: 0.5, y: 0.5}
+ oldSize: {x: 2.68, y: 1.07}
+ newSize: {x: 2.68, y: 1.07}
+ adaptiveTilingThreshold: 0.5
+ drawMode: 0
+ adaptiveTiling: 0
+ m_AutoTiling: 0
+ m_Size: {x: 2.68, y: 1.07}
+ m_EdgeRadius: 0
+--- !u!50 &1451874673
+Rigidbody2D:
+ serializedVersion: 5
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451874670}
+ m_BodyType: 2
+ m_Simulated: 1
+ m_UseFullKinematicContacts: 0
+ m_UseAutoMass: 0
+ m_Mass: 1
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_GravityScale: 1
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_Interpolate: 0
+ m_SleepingMode: 1
+ m_CollisionDetection: 0
+ m_Constraints: 0
+--- !u!212 &1451874674
+SpriteRenderer:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451874670}
+ 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_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_Sprite: {fileID: -4331849829665928538, guid: 8be45455b29f80241a3b8aae36291752, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 2.68, y: 1.07}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_SpriteSortPoint: 0
--- !u!1 &1467194712
GameObject:
m_ObjectHideFlags: 0
@@ -2863,97 +2886,6 @@ SpriteRenderer:
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
---- !u!1 &1512788409
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1512788410}
- - component: {fileID: 1512788411}
- m_Layer: 0
- m_Name: Bush (3)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1512788410
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1512788409}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -3.7, y: 0.40000153, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1512788411
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1512788409}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &1520040324
GameObject:
m_ObjectHideFlags: 0
@@ -3138,97 +3070,6 @@ Transform:
m_Children: []
m_Father: {fileID: 1309397782}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1587396499
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1587396500}
- - component: {fileID: 1587396501}
- m_Layer: 0
- m_Name: Bush (1)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1587396500
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1587396499}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -26.699999, y: 4.1000013, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1587396501
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1587396499}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &1611333929
GameObject:
m_ObjectHideFlags: 0
@@ -3651,9 +3492,10 @@ Transform:
m_Children:
- {fileID: 881483169}
- {fileID: 2145467375}
+ - {fileID: 1451874671}
+ - {fileID: 1196308195}
+ - {fileID: 830587230}
- {fileID: 196947012}
- - {fileID: 815418544}
- - {fileID: 340229587}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1710395162
@@ -3684,15 +3526,7 @@ Transform:
m_LocalPosition: {x: 31.34338, y: -2.21682, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 1140411105}
- - {fileID: 1587396500}
- - {fileID: 1827334365}
- - {fileID: 1512788410}
- - {fileID: 469774136}
- - {fileID: 1836836830}
- - {fileID: 1897459174}
- - {fileID: 695066655}
+ m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1723844486
@@ -3903,25 +3737,45 @@ MonoBehaviour:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Core.Spawning.ParallaxBackgroundSpawner
poolMode: 0
pools:
- - prefabs: []
+ - prefabs:
+ - {fileID: 5151173141545254425, guid: b0d1bfa4dea596a43b14726844143958, type: 3}
+ - {fileID: 5151173141545254425, guid: d9c2ddaa5d7acfa41b1ed92a1564560f, type: 3}
+ - {fileID: 5151173141545254425, guid: 04a5ea4c8c227d04e9d66c5bd183f127, type: 3}
+ - {fileID: 5151173141545254425, guid: 2d826ffbbf2b169419cbaf1b9fd5adf9, type: 3}
+ - {fileID: 5151173141545254425, guid: 553fdd7acf88ffc4b9d300906b9d5084, type: 3}
+ - {fileID: 5151173141545254425, guid: 41b5f43daaa530644b39097f4ec95104, type: 3}
unlockTime: 0
description: Background Layer
- overrideMinDistance: 0
- overrideMaxDistance: 0
- - prefabs: []
+ overrideMinDistance: 20
+ overrideMaxDistance: 40
+ - prefabs:
+ - {fileID: 3707466564348580456, guid: 1b55130d1450b0741961df1fc7337f29, type: 3}
+ - {fileID: 3707466564348580456, guid: 96866019d4dc15f4387ddad1333634ab, type: 3}
+ - {fileID: 3707466564348580456, guid: a27a76cd67e25fe4fbeea326f594ec2c, type: 3}
+ - {fileID: 3707466564348580456, guid: d4dc2ca39d101a446a6ca7afe8acdfcf, type: 3}
+ - {fileID: 3707466564348580456, guid: d87cc6288dbb4464582a0c96dfca4607, type: 3}
unlockTime: 0
description: Middle Layer
- overrideMinDistance: 0
- overrideMaxDistance: 0
- - prefabs: []
+ overrideMinDistance: 30
+ overrideMaxDistance: 60
+ - prefabs:
+ - {fileID: 2405005885826663060, guid: 745fab545f64b0642b978cd5ba65e51d, type: 3}
+ - {fileID: 2405005885826663060, guid: 2b45d26d0e98cce4c82fc7414805edfa, type: 3}
+ - {fileID: 2405005885826663060, guid: 63558e5ef317da348a0dc24bade05b93, type: 3}
+ - {fileID: 6834004734717855054, guid: 56c7f78165748d14e904ce970995ed85, type: 3}
+ - {fileID: 2439114276580390837, guid: 7e8f54df4c74f8f4a877d5729286fe5a, type: 3}
unlockTime: 0
description: Foreground Layer
- overrideMinDistance: 0
- overrideMaxDistance: 0
- backgroundSortLayer: Background
- middleSortLayer: Midground
- foregroundSortLayer: Foreground
- cameraManager: {fileID: 0}
+ overrideMinDistance: 15
+ overrideMaxDistance: 30
+ parallaxSortLayer: Background
+ backgroundSortOrder: -50
+ sortOrderIncrement: 10
+ globalStrength: 0.2
+ backgroundSpeed: 0.1
+ middleSpeed: 0.5
+ foregroundSpeed: 1
+ cameraManager: {fileID: 597044886}
--- !u!114 &1784207406
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -4113,188 +3967,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1827334364
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1827334365}
- - component: {fileID: 1827334366}
- m_Layer: 0
- m_Name: Bush (2)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1827334365
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1827334364}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -24.699999, y: 2.3000011, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1827334366
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1827334364}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
---- !u!1 &1836836829
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1836836830}
- - component: {fileID: 1836836831}
- m_Layer: 0
- m_Name: Bush (5)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1836836830
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1836836829}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 2.5, y: 0.30000114, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1836836831
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1836836829}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: -7357922426693696371, guid: 5ff790e31ebc32b49a164889b673a882, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &1842736649
GameObject:
m_ObjectHideFlags: 0
@@ -4390,97 +4062,6 @@ MonoBehaviour:
RotationDamping: {x: 1, y: 1, z: 1}
QuaternionDamping: 1
FollowOffset: {x: 0, y: 0, z: -10}
---- !u!1 &1897459173
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1897459174}
- - component: {fileID: 1897459175}
- m_Layer: 0
- m_Name: Bush (5)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1897459174
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1897459173}
- serializedVersion: 2
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -13.9, y: 2.4000015, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1710395163}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &1897459175
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1897459173}
- 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_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 622133659
- m_SortingLayer: -1
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: 4974115186881715698, guid: e1aa947fcf3609045ba89a6ddb609ae3, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 8.15, y: 4.61}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
--- !u!1 &1930014901
GameObject:
m_ObjectHideFlags: 0
@@ -5149,37 +4730,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &2041920295
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2041920296}
- m_Layer: 0
- m_Name: GameObject
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &2041920296
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2041920295}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 16.8, y: 12.6, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2049960991
GameObject:
m_ObjectHideFlags: 0
@@ -5629,63 +5179,6 @@ SpriteRenderer:
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
---- !u!1001 &453576884181909409
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1701327424}
- m_Modifications:
- - target: {fileID: 5175967588203935335, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_Name
- value: Ground (3)
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalPosition.x
- value: -18.43789
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalPosition.y
- value: -5
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
--- !u!1001 &6301221881690084032
PrefabInstance:
m_ObjectHideFlags: 0
@@ -5810,6 +5303,4 @@ SceneRoots:
- {fileID: 1017291799}
- {fileID: 1064542409}
- {fileID: 1701327424}
- - {fileID: 2041920296}
- {fileID: 1710395163}
- - {fileID: 39044401}
diff --git a/Assets/Scripts/Minigames/Airplane/Core/AirplaneSpawnManager.cs b/Assets/Scripts/Minigames/Airplane/Core/AirplaneSpawnManager.cs
index 0cd8a6c1..6f755899 100644
--- a/Assets/Scripts/Minigames/Airplane/Core/AirplaneSpawnManager.cs
+++ b/Assets/Scripts/Minigames/Airplane/Core/AirplaneSpawnManager.cs
@@ -150,8 +150,7 @@ namespace Minigames.Airplane.Core
// Update spawner game times for pool unlocking
UpdateSpawnerTimes(deltaTime);
- // Update dynamic spawning
- UpdateDynamicSpawning();
+ // Dynamic spawning is handled by coroutine (SpawnUpdateCoroutine)
}
#endregion
@@ -297,6 +296,9 @@ namespace Minigames.Airplane.Core
_isSpawningActive = true;
_gameTime = 0f;
+ // Start spawn update coroutine
+ StartSpawnUpdates();
+
// Start UI tracking with calculated target position
if (targetDisplayUI != null)
{
@@ -317,6 +319,9 @@ namespace Minigames.Airplane.Core
_isSpawningActive = false;
_planeTransform = null;
+ // Stop spawn update coroutine
+ StopSpawnUpdates();
+
// Stop UI tracking
if (targetDisplayUI != null)
{
@@ -500,54 +505,81 @@ namespace Minigames.Airplane.Core
}
}
- private void UpdateDynamicSpawning()
+ private Coroutine _spawnUpdateCoroutine;
+
+ ///
+ /// Coroutine that periodically updates spawn horizons for all spawners.
+ /// Runs every 0.2 seconds while plane is active.
+ ///
+ private System.Collections.IEnumerator SpawnUpdateCoroutine()
{
- if (_planeTransform == null || !_isSpawningActive) return;
+ WaitForSeconds wait = new WaitForSeconds(0.2f);
- float planeX = _planeTransform.position.x;
-
- // Track furthest X position reached
- if (planeX > _furthestReachedX)
+ while (_isSpawningActive && _planeTransform != null)
{
- _furthestReachedX = planeX;
+ float planeX = _planeTransform.position.x;
+
+ // Track furthest X position reached
+ if (planeX > _furthestReachedX)
+ {
+ _furthestReachedX = planeX;
+ }
+
+ // Check if plane should trigger new spawning
+ bool shouldSpawnNewContent = !_isRetryAttempt || planeX > (_furthestReachedX - _settings.SpawnDistanceAhead);
+
+ if (shouldSpawnNewContent)
+ {
+ // Push spawn horizons to spawners - they decide independently if spawning is needed
+
+ // Obstacles - standard spawn distance
+ if (obstacleSpawner != null)
+ {
+ float obstacleHorizon = planeX + _settings.SpawnDistanceAhead;
+ obstacleSpawner.UpdateSpawnHorizon(obstacleHorizon);
+ }
+
+ // Ground - spawn further ahead (2x distance)
+ if (groundSpawner != null)
+ {
+ float groundHorizon = planeX + (_settings.SpawnDistanceAhead * 2f);
+ groundSpawner.UpdateSpawnHorizon(groundHorizon);
+ }
+
+ // Parallax - spawn at 1.5x distance, each pool spawns independently
+ if (parallaxSpawner != null)
+ {
+ float parallaxHorizon = planeX + (_settings.SpawnDistanceAhead * 1.5f);
+ parallaxSpawner.UpdateSpawnHorizon(parallaxHorizon);
+ }
+ }
+
+ yield return wait;
}
- // Check if plane should trigger new spawning
- bool shouldSpawnNewContent = !_isRetryAttempt || planeX > (_furthestReachedX - _settings.SpawnDistanceAhead);
-
- if (shouldSpawnNewContent)
+ if (showDebugLogs)
{
- // Centralized distance checking - orchestrator decides when to spawn
-
- // Obstacles - check if next spawn point is within ahead distance
- if (obstacleSpawner != null)
- {
- float nextObstacleX = obstacleSpawner.GetNextSpawnX();
- if (nextObstacleX <= planeX + _settings.SpawnDistanceAhead)
- {
- obstacleSpawner.SpawnNext();
- }
- }
-
- // Ground - spawn further ahead (2x distance)
- if (groundSpawner != null)
- {
- float nextGroundX = groundSpawner.GetNextSpawnX();
- if (nextGroundX <= planeX + (_settings.SpawnDistanceAhead * 2f))
- {
- groundSpawner.SpawnNext();
- }
- }
-
- // Parallax - spawn at 1.5x distance
- if (parallaxSpawner != null)
- {
- float nextParallaxX = parallaxSpawner.GetNextSpawnX();
- if (nextParallaxX <= planeX + (_settings.SpawnDistanceAhead * 1.5f))
- {
- parallaxSpawner.SpawnNext();
- }
- }
+ Logging.Debug("[AirplaneSpawnManager] Spawn update coroutine stopped");
+ }
+ }
+
+ private void StartSpawnUpdates()
+ {
+ StopSpawnUpdates();
+ _spawnUpdateCoroutine = StartCoroutine(SpawnUpdateCoroutine());
+
+ if (showDebugLogs)
+ {
+ Logging.Debug("[AirplaneSpawnManager] Started spawn update coroutine");
+ }
+ }
+
+ private void StopSpawnUpdates()
+ {
+ if (_spawnUpdateCoroutine != null)
+ {
+ StopCoroutine(_spawnUpdateCoroutine);
+ _spawnUpdateCoroutine = null;
}
}
@@ -799,75 +831,22 @@ namespace Minigames.Airplane.Core
///
/// Position an object based on the specified spawn mode.
- /// Used for target positioning.
+ /// Delegates to PositioningUtility for all positioning logic.
///
private void PositionObject(GameObject obj, float xPosition, SpawnPositionMode mode,
float specifiedY, float randomYMin, float randomYMax)
{
- if (obj == null) return;
-
- float targetY;
-
- switch (mode)
- {
- case SpawnPositionMode.SnapToGround:
- targetY = SnapToGround(obj, xPosition);
- break;
-
- case SpawnPositionMode.SpecifiedY:
- targetY = specifiedY;
- break;
-
- case SpawnPositionMode.RandomRange:
- targetY = Random.Range(randomYMin, randomYMax);
- break;
-
- default:
- Logging.Error($"[AirplaneSpawnManager] Unknown spawn position mode: {mode}");
- targetY = 0f;
- break;
- }
-
- // Apply position
- Vector3 newPosition = obj.transform.position;
- newPosition.y = targetY;
- obj.transform.position = newPosition;
- }
-
- ///
- /// Snap an object to the ground using raycast.
- ///
- private float SnapToGround(GameObject obj, float xPosition)
- {
- Vector2 rayOrigin = new Vector2(xPosition, 0.0f);
- int layerMask = 1 << _settings.GroundLayer;
- RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.down, _settings.MaxGroundRaycastDistance, layerMask);
-
- if (hit.collider != null)
- {
- float groundY = hit.point.y;
- Bounds bounds = GetObjectBounds(obj);
- return groundY + bounds.extents.y;
- }
-
- return _settings.FallbackYPosition;
+ Spawning.PositioningUtility.PositionObject(obj, xPosition, mode, specifiedY, randomYMin, randomYMax,
+ _settings, _settings.ShowDebugLogs);
}
///
/// Get the bounds of an object.
+ /// Delegates to PositioningUtility.
///
private Bounds GetObjectBounds(GameObject obj)
{
- Renderer objRenderer = obj.GetComponentInChildren();
- if (objRenderer != null) return objRenderer.bounds;
-
- Collider2D objCollider2D = obj.GetComponentInChildren();
- if (objCollider2D != null) return objCollider2D.bounds;
-
- Collider objCollider3D = obj.GetComponentInChildren();
- if (objCollider3D != null) return objCollider3D.bounds;
-
- return new Bounds(obj.transform.position, Vector3.one);
+ return Spawning.PositioningUtility.GetObjectBounds(obj);
}
#endregion
diff --git a/Assets/Scripts/Minigames/Airplane/Core/Spawning/BaseDistanceSpawner.cs b/Assets/Scripts/Minigames/Airplane/Core/Spawning/BaseDistanceSpawner.cs
index 443697d5..eea84b2e 100644
--- a/Assets/Scripts/Minigames/Airplane/Core/Spawning/BaseDistanceSpawner.cs
+++ b/Assets/Scripts/Minigames/Airplane/Core/Spawning/BaseDistanceSpawner.cs
@@ -120,54 +120,61 @@ namespace Minigames.Airplane.Core.Spawning
}
///
- /// Spawn the next object at the predetermined NextSpawnX position.
- /// Updates LastSpawnedX and calculates new NextSpawnX.
- /// Called by orchestrator when distance check determines spawning is needed.
+ /// Update the spawn horizon and spawn objects if needed.
+ /// Called by orchestrator to push spawn updates.
+ /// Each spawner independently decides if spawning is needed.
///
- public virtual void SpawnNext()
+ public virtual void UpdateSpawnHorizon(float horizonX)
{
if (poolMode == SpawnPoolMode.Together)
+ {
+ UpdateSpawnHorizonTogether(horizonX);
+ }
+ else // Exclusive mode - each pool checks independently
+ {
+ UpdateSpawnHorizonExclusive(horizonX);
+ }
+ }
+
+ private void UpdateSpawnHorizonTogether(float horizonX)
+ {
+ // Keep spawning while next spawn point is behind the horizon
+ while (NextSpawnX < horizonX)
{
SpawnAtPosition(NextSpawnX);
LastSpawnedX = NextSpawnX;
NextSpawnX = LastSpawnedX + Random.Range(settings.ObjectSpawnMinDistance, settings.ObjectSpawnMaxDistance);
- }
- else // Exclusive mode - spawn from each pool independently
- {
- foreach (int poolIndex in UnlockedPoolIndices)
+
+ if (settings.ShowDebugLogs)
{
- if (poolIndex >= pools.Length || !pools[poolIndex].HasPrefabs) continue;
- if (!PoolNextSpawnX.ContainsKey(poolIndex)) continue;
-
- SpawnFromPool(poolIndex, PoolNextSpawnX[poolIndex]);
-
- float minDist = pools[poolIndex].GetMinDistance(settings.ObjectSpawnMinDistance);
- float maxDist = pools[poolIndex].GetMaxDistance(settings.ObjectSpawnMaxDistance);
- PoolNextSpawnX[poolIndex] += Random.Range(minDist, maxDist);
- LastSpawnedX = Mathf.Max(LastSpawnedX, PoolNextSpawnX[poolIndex]);
+ Logging.Debug($"[{GetType().Name}] Together mode: Spawned at {LastSpawnedX:F2}, next at {NextSpawnX:F2}");
}
}
}
- ///
- /// Get the X position where the next spawn will occur.
- /// Used by orchestrator for distance checking.
- ///
- public float GetNextSpawnX()
+ private void UpdateSpawnHorizonExclusive(float horizonX)
{
- if (poolMode == SpawnPoolMode.Together)
+ // Each pool spawns independently based on its own position
+ foreach (int poolIndex in UnlockedPoolIndices)
{
- return NextSpawnX;
- }
- else // Exclusive - return the closest spawn point across all pools
- {
- float closest = float.MaxValue;
- foreach (var kvp in PoolNextSpawnX)
+ if (poolIndex >= pools.Length || !pools[poolIndex].HasPrefabs) continue;
+ if (!PoolNextSpawnX.ContainsKey(poolIndex)) continue;
+
+ float minDist = pools[poolIndex].GetMinDistance(settings.ObjectSpawnMinDistance);
+ float maxDist = pools[poolIndex].GetMaxDistance(settings.ObjectSpawnMaxDistance);
+
+ // Keep spawning from this pool while its next spawn is behind horizon
+ while (PoolNextSpawnX[poolIndex] < horizonX)
{
- if (kvp.Value < closest)
- closest = kvp.Value;
+ SpawnFromPool(poolIndex, PoolNextSpawnX[poolIndex]);
+ PoolNextSpawnX[poolIndex] += Random.Range(minDist, maxDist);
+ LastSpawnedX = Mathf.Max(LastSpawnedX, PoolNextSpawnX[poolIndex]);
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] Exclusive mode: Pool {poolIndex} spawned at {PoolNextSpawnX[poolIndex]:F2}");
+ }
}
- return closest;
}
}
@@ -315,15 +322,28 @@ namespace Minigames.Airplane.Core.Spawning
protected virtual void PreSpawnTogether(float startX, float endX)
{
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] PreSpawnTogether START: Range X={startX:F2} to X={endX:F2}, Min/Max distance=[{settings.ObjectSpawnMinDistance:F1}-{settings.ObjectSpawnMaxDistance:F1}]");
+ }
+
float currentX = startX + Random.Range(settings.ObjectSpawnMinDistance, settings.ObjectSpawnMaxDistance);
+ int objectsSpawned = 0;
+ float firstSpawnX = currentX;
while (currentX <= endX)
{
SpawnAtPosition(currentX);
+ objectsSpawned++;
currentX += Random.Range(settings.ObjectSpawnMinDistance, settings.ObjectSpawnMaxDistance);
}
NextSpawnX = currentX;
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] PreSpawnTogether COMPLETE: Spawned {objectsSpawned} objects from X={firstSpawnX:F2} to X={NextSpawnX:F2}");
+ }
}
#endregion
@@ -332,21 +352,74 @@ namespace Minigames.Airplane.Core.Spawning
protected virtual void PreSpawnExclusive(float startX, float endX)
{
- foreach (int poolIndex in UnlockedPoolIndices)
+ if (settings.ShowDebugLogs)
{
- if (poolIndex >= pools.Length || !pools[poolIndex].HasPrefabs) continue;
+ Logging.Debug($"[{GetType().Name}] PreSpawnExclusive START: Range X={startX:F2} to X={endX:F2}, Total pools={pools.Length}");
+ }
+
+ // Pre-spawn only from pools with unlockTime <= 0 (immediate availability)
+ // Pools with positive unlock times are meant to unlock during gameplay progression
+ int spawnedPoolCount = 0;
+ int skippedPoolCount = 0;
+
+ for (int poolIndex = 0; poolIndex < pools.Length; poolIndex++)
+ {
+ if (!pools[poolIndex].HasPrefabs)
+ {
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Warning($"[{GetType().Name}] Pool {poolIndex} skipped - no prefabs assigned");
+ }
+ skippedPoolCount++;
+ continue;
+ }
+
+ // Skip pools that unlock later during gameplay
+ if (pools[poolIndex].unlockTime > 0f)
+ {
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] Pool {poolIndex} '{pools[poolIndex].description}' skipped - unlockTime={pools[poolIndex].unlockTime}s (will unlock during gameplay)");
+ }
+ skippedPoolCount++;
+ continue;
+ }
float minDist = pools[poolIndex].GetMinDistance(settings.ObjectSpawnMinDistance);
float maxDist = pools[poolIndex].GetMaxDistance(settings.ObjectSpawnMaxDistance);
float currentX = startX + Random.Range(minDist, maxDist);
+ int objectsSpawned = 0;
+ float firstSpawnX = currentX;
+
while (currentX <= endX)
{
SpawnFromPool(poolIndex, currentX);
+ objectsSpawned++;
currentX += Random.Range(minDist, maxDist);
}
PoolNextSpawnX[poolIndex] = currentX;
+ spawnedPoolCount++;
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] Pool {poolIndex} '{pools[poolIndex].description}': unlockTime={pools[poolIndex].unlockTime}s, prefabs={pools[poolIndex].prefabs.Length}, distance=[{minDist:F1}-{maxDist:F1}], spawned {objectsSpawned} objects from X={firstSpawnX:F2} to X={PoolNextSpawnX[poolIndex]:F2}");
+ }
+ }
+
+ // Ensure all pools with unlockTime <= 0 are marked as unlocked for dynamic spawning
+ for (int i = 0; i < pools.Length; i++)
+ {
+ if (pools[i].unlockTime <= 0f && !UnlockedPoolIndices.Contains(i))
+ {
+ UnlockedPoolIndices.Add(i);
+ }
+ }
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[{GetType().Name}] PreSpawnExclusive COMPLETE: {spawnedPoolCount} pools spawned, {skippedPoolCount} pools skipped, {UnlockedPoolIndices.Count} pools unlocked for dynamic spawning");
}
}
@@ -387,87 +460,13 @@ namespace Minigames.Airplane.Core.Spawning
///
/// Position an object based on the specified spawn mode.
- /// Used by spawners to apply Y positioning after instantiation.
+ /// Delegates to PositioningUtility for all positioning logic.
///
protected void PositionObject(GameObject obj, float xPosition, SpawnPositionMode mode,
float specifiedY, float randomYMin, float randomYMax)
{
- if (obj == null) return;
-
- float targetY;
-
- switch (mode)
- {
- case SpawnPositionMode.SnapToGround:
- targetY = SnapToGround(obj, xPosition);
- break;
-
- case SpawnPositionMode.SpecifiedY:
- targetY = specifiedY;
- break;
-
- case SpawnPositionMode.RandomRange:
- targetY = Random.Range(randomYMin, randomYMax);
- break;
-
- default:
- targetY = 0f;
- break;
- }
-
- Vector3 newPosition = obj.transform.position;
- newPosition.y = targetY;
- obj.transform.position = newPosition;
- }
-
- ///
- /// Snap an object to the ground using raycast.
- /// Positions object so its bottom bounds touch the ground surface.
- ///
- protected float SnapToGround(GameObject obj, float xPosition)
- {
- // Raycast from high up to ensure we're above the ground
- Vector2 rayOrigin = new Vector2(xPosition, settings.MaxGroundRaycastDistance);
- int layerMask = 1 << settings.GroundLayer;
- RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.down, settings.MaxGroundRaycastDistance + 100f, layerMask);
-
- if (hit.collider != null)
- {
- float groundY = hit.point.y;
- Bounds bounds = GetObjectBounds(obj);
- float finalY = groundY + bounds.extents.y;
-
- if (settings.ShowDebugLogs)
- {
- Logging.Debug($"[{GetType().Name}] SnapToGround: X={xPosition:F2}, Ground={groundY:F2}, Final={finalY:F2}");
- }
-
- return finalY;
- }
-
- if (settings.ShowDebugLogs)
- {
- Logging.Warning($"[{GetType().Name}] SnapToGround FAILED at X={xPosition:F2} - no ground found! Using fallback Y={settings.FallbackYPosition:F2}");
- }
-
- return settings.FallbackYPosition;
- }
-
- ///
- /// Get the bounds of an object from its Renderer or Collider.
- ///
- protected Bounds GetObjectBounds(GameObject obj)
- {
- Renderer objRenderer = obj.GetComponentInChildren();
- if (objRenderer != null) return objRenderer.bounds;
-
- Collider2D objCollider2D = obj.GetComponentInChildren();
- if (objCollider2D != null) return objCollider2D.bounds;
-
- Collider objCollider3D = obj.GetComponentInChildren();
- if (objCollider3D != null) return objCollider3D.bounds;
-
- return new Bounds(obj.transform.position, Vector3.one);
+ PositioningUtility.PositionObject(obj, xPosition, mode, specifiedY, randomYMin, randomYMax,
+ settings, settings.ShowDebugLogs);
}
#endregion
diff --git a/Assets/Scripts/Minigames/Airplane/Core/Spawning/GroundDistanceSpawner.cs b/Assets/Scripts/Minigames/Airplane/Core/Spawning/GroundDistanceSpawner.cs
index f51be8ec..26599ca0 100644
--- a/Assets/Scripts/Minigames/Airplane/Core/Spawning/GroundDistanceSpawner.cs
+++ b/Assets/Scripts/Minigames/Airplane/Core/Spawning/GroundDistanceSpawner.cs
@@ -37,26 +37,46 @@ namespace Minigames.Airplane.Core.Spawning
// Override to use fixed intervals instead of random distances
protected override void PreSpawnTogether(float startX, float endX)
{
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[GroundDistanceSpawner] PreSpawnTogether START: Range X={startX:F2} to X={endX:F2}, Fixed interval={_groundSpawnInterval:F1}");
+ }
+
float currentX = startX;
+ int tilesSpawned = 0;
while (currentX <= endX)
{
SpawnAtPosition(currentX);
+ tilesSpawned++;
currentX += _groundSpawnInterval; // FIXED interval, not random
}
NextSpawnX = currentX;
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[GroundDistanceSpawner] PreSpawnTogether COMPLETE: Spawned {tilesSpawned} ground tiles from X={startX:F2} to X={NextSpawnX:F2}");
+ }
}
///
/// Override SpawnNext to use fixed ground intervals instead of random distances.
- /// Called by orchestrator when distance check determines spawning is needed.
///
- public override void SpawnNext()
+ public override void UpdateSpawnHorizon(float horizonX)
{
- SpawnAtPosition(NextSpawnX);
- LastSpawnedX = NextSpawnX;
- NextSpawnX += _groundSpawnInterval; // FIXED interval, not random
+ // Keep spawning while next spawn point is behind the horizon
+ while (NextSpawnX < horizonX)
+ {
+ SpawnAtPosition(NextSpawnX);
+ LastSpawnedX = NextSpawnX;
+ NextSpawnX += _groundSpawnInterval; // FIXED interval, not random
+
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[GroundDistanceSpawner] Spawned at {LastSpawnedX:F2}, next at {NextSpawnX:F2}");
+ }
+ }
}
protected override void SpawnFromPool(int poolIndex, float xPosition)
diff --git a/Assets/Scripts/Minigames/Airplane/Core/Spawning/ParallaxBackgroundSpawner.cs b/Assets/Scripts/Minigames/Airplane/Core/Spawning/ParallaxBackgroundSpawner.cs
index 40c1494e..ffb0b75b 100644
--- a/Assets/Scripts/Minigames/Airplane/Core/Spawning/ParallaxBackgroundSpawner.cs
+++ b/Assets/Scripts/Minigames/Airplane/Core/Spawning/ParallaxBackgroundSpawner.cs
@@ -13,10 +13,27 @@ namespace Minigames.Airplane.Core.Spawning
public class ParallaxBackgroundSpawner : BaseDistanceSpawner
{
[Header("Parallax-Specific")]
- [Tooltip("Sort layer names for each parallax layer")]
- [SerializeField] private string backgroundSortLayer = "Background";
- [SerializeField] private string middleSortLayer = "Midground";
- [SerializeField] private string foregroundSortLayer = "Foreground";
+ [Tooltip("Sort layer for all parallax elements")]
+ [SerializeField] private string parallaxSortLayer = "Background";
+
+ [Tooltip("Sort order for background layer (furthest back)")]
+ [SerializeField] private int backgroundSortOrder = -50;
+
+ [Tooltip("Sort order increment between layers")]
+ [SerializeField] private int sortOrderIncrement = 10;
+
+ [Header("Parallax Configuration")]
+ [Tooltip("Global parallax strength multiplier (0 = no effect, 1 = full effect)")]
+ [SerializeField] private float globalStrength = 1f;
+
+ [Tooltip("Background layer movement speed (typically slowest, e.g. 0.3)")]
+ [SerializeField] private float backgroundSpeed = 0.3f;
+
+ [Tooltip("Middle layer movement speed (typically medium, e.g. 0.6)")]
+ [SerializeField] private float middleSpeed = 0.6f;
+
+ [Tooltip("Foreground layer movement speed (typically fastest, e.g. 0.9)")]
+ [SerializeField] private float foregroundSpeed = 0.9f;
[Header("Camera Integration")]
[Tooltip("Camera manager for tracking active camera")]
@@ -71,7 +88,7 @@ namespace Minigames.Airplane.Core.Spawning
var parallaxElement = child.GetComponent();
if (parallaxElement != null)
{
- parallaxElement.SetCameraTransform(_currentCameraTransform);
+ parallaxElement.UpdateCamera(_currentCameraTransform);
}
}
}
@@ -107,25 +124,65 @@ namespace Minigames.Airplane.Core.Spawning
parallaxElement = instance.AddComponent();
}
- // Configure parallax element
- parallaxElement.SetLayer(layer);
- parallaxElement.SetCameraTransform(_currentCameraTransform);
-
// Set sort layer on sprite renderer
SetSortLayer(instance, layer);
+ // Log Y position BEFORE positioning
+ Vector3 positionBeforePositionObject = instance.transform.position;
+
// Try to get spawn entry for Y positioning (same logic as obstacles)
var spawnEntry = prefab.GetComponent();
if (spawnEntry != null)
{
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[ParallaxBackgroundSpawner] '{prefab.name}' has PrefabSpawnEntryComponent: mode={spawnEntry.spawnPositionMode}, specifiedY={spawnEntry.specifiedY}, randomRange=[{spawnEntry.randomYMin},{spawnEntry.randomYMax}]");
+ }
+
+ // Use per-prefab configuration
PositionObject(instance, xPosition, spawnEntry.spawnPositionMode,
spawnEntry.specifiedY, spawnEntry.randomYMin, spawnEntry.randomYMax);
}
- // Otherwise stays at Y=0
+ else
+ {
+ if (settings.ShowDebugLogs)
+ {
+ Logging.Debug($"[ParallaxBackgroundSpawner] '{prefab.name}' NO component, using global: mode={settings.DefaultObstaclePositionMode}");
+ }
+
+ // Fall back to global default configuration from settings
+ PositionObject(instance, xPosition, settings.DefaultObstaclePositionMode,
+ settings.FallbackYPosition, settings.DefaultObstacleRandomYMin, settings.DefaultObstacleRandomYMax);
+ }
+
+ // Log Y position AFTER positioning
+ Vector3 positionAfterPositionObject = instance.transform.position;
if (settings.ShowDebugLogs)
{
- Logging.Debug($"[ParallaxBackgroundSpawner] Spawned {layer} element at X={xPosition:F2}");
+ Logging.Debug($"[ParallaxBackgroundSpawner] Y positioning: BEFORE={positionBeforePositionObject.y:F2}, AFTER={positionAfterPositionObject.y:F2}, CHANGED={positionAfterPositionObject.y != positionBeforePositionObject.y}");
+ }
+
+ // IMPORTANT: Initialize parallax element AFTER positioning so it captures the correct Y coordinate
+ // The parallax element caches _startPosition which includes Y coordinate
+ // If we initialize before positioning, Y=0 gets cached and objects appear at wrong height
+ float layerSpeed = GetLayerSpeed(layer);
+ parallaxElement.Initialize(layer, layerSpeed, globalStrength, _currentCameraTransform);
+
+ // Verify that Initialize didn't move the object
+ Vector3 positionAfterInitialize = instance.transform.position;
+
+ if (Mathf.Abs(positionAfterInitialize.y - positionAfterPositionObject.y) > 0.01f)
+ {
+ Logging.Error($"[ParallaxBackgroundSpawner] BUG: Y position changed during Initialize! Before={positionAfterPositionObject.y:F2}, After={positionAfterInitialize.y:F2}");
+ }
+
+ if (settings.ShowDebugLogs)
+ {
+ string positionModeInfo = spawnEntry != null
+ ? $", positionMode={spawnEntry.spawnPositionMode} (per-prefab)"
+ : $", positionMode={settings.DefaultObstaclePositionMode} (global fallback)";
+ Logging.Debug($"[ParallaxBackgroundSpawner] FINAL: '{prefab.name}' at WORLD position X={positionAfterInitialize.x:F2}, Y={positionAfterInitialize.y:F2}, Z={positionAfterInitialize.z:F2}{positionModeInfo}");
}
}
@@ -134,21 +191,30 @@ namespace Minigames.Airplane.Core.Spawning
SpriteRenderer spriteRenderer = obj.GetComponentInChildren();
if (spriteRenderer == null) return;
- string sortLayerName = layer switch
- {
- ParallaxLayer.Background => backgroundSortLayer,
- ParallaxLayer.Middle => middleSortLayer,
- ParallaxLayer.Foreground => foregroundSortLayer,
- _ => "Default"
- };
+ // All parallax objects use the same sort layer
+ spriteRenderer.sortingLayerName = parallaxSortLayer;
- spriteRenderer.sortingLayerName = sortLayerName;
+ // Calculate sort order based on layer depth
+ // Background (0): -50, Middle (1): -40, Foreground (2): -30
+ int sortOrder = backgroundSortOrder + ((int)layer * sortOrderIncrement);
+ spriteRenderer.sortingOrder = sortOrder;
if (settings.ShowDebugLogs)
{
- Logging.Debug($"[ParallaxBackgroundSpawner] Set sort layer '{sortLayerName}' for {layer}");
+ Logging.Debug($"[ParallaxBackgroundSpawner] Set '{parallaxSortLayer}' layer with sort order {sortOrder} for {layer}");
}
}
+
+ private float GetLayerSpeed(ParallaxLayer layer)
+ {
+ return layer switch
+ {
+ ParallaxLayer.Background => backgroundSpeed,
+ ParallaxLayer.Middle => middleSpeed,
+ ParallaxLayer.Foreground => foregroundSpeed,
+ _ => 1f
+ };
+ }
}
}
diff --git a/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs b/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs
new file mode 100644
index 00000000..2150f36b
--- /dev/null
+++ b/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs
@@ -0,0 +1,238 @@
+using Core;
+using Core.Settings;
+using Minigames.Airplane.Data;
+using UnityEngine;
+
+namespace Minigames.Airplane.Core.Spawning
+{
+ ///
+ /// Static utility for object positioning in the airplane minigame.
+ /// Provides common positioning logic used by spawners and managers.
+ /// Handles snap-to-ground, specified Y, and random Y positioning.
+ ///
+ public static class PositioningUtility
+ {
+ ///
+ /// Position an object based on the specified spawn mode.
+ /// Handles all positioning modes: SnapToGround, SpecifiedY, and RandomRange.
+ ///
+ public static void PositionObject(GameObject obj, float xPosition, SpawnPositionMode mode,
+ float specifiedY, float randomYMin, float randomYMax, IAirplaneSettings settings, bool showDebugLogs = false)
+ {
+ if (obj == null)
+ {
+ if (showDebugLogs)
+ {
+ Logging.Warning("[PositioningUtility] PositionObject called with null object!");
+ }
+ return;
+ }
+
+ // First, set an initial Y position based on mode
+ float initialY;
+
+ switch (mode)
+ {
+ case SpawnPositionMode.SnapToGround:
+ // Start at fallback position, SnapToGround will adjust
+ initialY = settings.FallbackYPosition;
+ break;
+
+ case SpawnPositionMode.SpecifiedY:
+ initialY = specifiedY;
+ break;
+
+ case SpawnPositionMode.RandomRange:
+ initialY = Random.Range(randomYMin, randomYMax);
+ break;
+
+ default:
+ initialY = 0f;
+ if (showDebugLogs)
+ {
+ Logging.Warning($"[PositioningUtility] Unknown spawn position mode: {mode}");
+ }
+ break;
+ }
+
+ // Set initial position
+ obj.transform.position = new Vector3(xPosition, initialY, 0f);
+
+ // For SnapToGround mode, now adjust the object to align with ground
+ if (mode == SpawnPositionMode.SnapToGround)
+ {
+ SnapToGround(obj, xPosition, settings, showDebugLogs);
+ }
+
+ // Draw debug visualization AFTER positioning
+ if (showDebugLogs)
+ {
+ DrawObjectBoundsDebug(obj, mode);
+ }
+ }
+
+ ///
+ /// Snap an object to the ground using raycast.
+ /// Positions object so its bottom bounds touch the TOP surface of the ground.
+ /// Uses simple measure-and-adjust approach that works with any pivot configuration.
+ ///
+ public static void SnapToGround(GameObject obj, float xPosition, IAirplaneSettings settings, bool showDebugLogs = false)
+ {
+ if (obj == null)
+ {
+ if (showDebugLogs)
+ {
+ Logging.Warning("[PositioningUtility] SnapToGround called with null object!");
+ }
+ return;
+ }
+
+ // Raycast from high up to find the TOP of the ground surface
+ Vector2 rayOrigin = new Vector2(xPosition, settings.MaxGroundRaycastDistance);
+ int layerMask = 1 << settings.GroundLayer;
+ RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.down, settings.MaxGroundRaycastDistance + 100f, layerMask);
+
+ if (hit.collider == null)
+ {
+ if (showDebugLogs)
+ {
+ Logging.Warning($"[PositioningUtility] SnapToGround FAILED at X={xPosition:F2} - no ground found! Object stays at current Y.");
+ }
+ return; // Can't snap, leave object where it is
+ }
+
+ // Ground surface is at the raycast hit point (TOP of ground collider)
+ float groundY = hit.point.y;
+
+ // Measure where the object's bottom actually is RIGHT NOW
+ Bounds bounds = GetObjectBounds(obj);
+ float currentBottom = bounds.min.y;
+
+ // Calculate how far off we are from desired position
+ float offset = currentBottom - groundY;
+
+ // Adjust the object's position to align bottom with ground
+ Vector3 pos = obj.transform.position;
+ pos.y -= offset; // Move up or down by the difference
+ obj.transform.position = pos;
+
+ if (showDebugLogs)
+ {
+ // Draw raycast (cyan)
+ Debug.DrawLine(rayOrigin, hit.point, Color.cyan, 5f);
+
+ // Draw ground hit point (magenta)
+ Debug.DrawLine(new Vector3(xPosition - 1f, groundY, 0f),
+ new Vector3(xPosition + 1f, groundY, 0f), Color.magenta, 5f);
+
+ // Draw object bottom after snapping (red)
+ Bounds finalBounds = GetObjectBounds(obj);
+ Debug.DrawLine(new Vector3(xPosition - 1f, finalBounds.min.y, 0f),
+ new Vector3(xPosition + 1f, finalBounds.min.y, 0f), Color.red, 5f);
+
+ Logging.Debug($"[PositioningUtility] SnapToGround: X={xPosition:F2}, GroundTop={groundY:F2}, " +
+ $"BottomWas={currentBottom:F2}, Offset={offset:F2}, FinalY={obj.transform.position.y:F2}");
+ }
+ }
+
+ ///
+ /// Get the bounds of an object from its Renderer or Collider.
+ /// Searches child objects if no component is found on the root.
+ ///
+ public static Bounds GetObjectBounds(GameObject obj)
+ {
+ if (obj == null)
+ {
+ return new Bounds(Vector3.zero, Vector3.one);
+ }
+
+ // Try renderer first (most common for sprites)
+ Renderer objRenderer = obj.GetComponentInChildren();
+ if (objRenderer != null) return objRenderer.bounds;
+
+ // Try 2D collider
+ Collider2D objCollider2D = obj.GetComponentInChildren();
+ if (objCollider2D != null) return objCollider2D.bounds;
+
+ // Try 3D collider
+ Collider objCollider3D = obj.GetComponentInChildren();
+ if (objCollider3D != null) return objCollider3D.bounds;
+
+ // Fallback to transform position with unit size
+ return new Bounds(obj.transform.position, Vector3.one);
+ }
+
+ ///
+ /// Draw debug visualization for object bounds after positioning.
+ /// Shows the actual bounds in world space at the object's final position.
+ ///
+ public static void DrawObjectBoundsDebug(GameObject obj, SpawnPositionMode mode)
+ {
+ if (obj == null) return;
+
+ Bounds bounds = default;
+ string sourceType = "none";
+
+ // Get bounds from whatever component is available
+ Renderer objRenderer = obj.GetComponentInChildren();
+ if (objRenderer != null)
+ {
+ bounds = objRenderer.bounds;
+ sourceType = "Renderer";
+ }
+ else
+ {
+ Collider2D objCollider2D = obj.GetComponentInChildren();
+ if (objCollider2D != null)
+ {
+ bounds = objCollider2D.bounds;
+ sourceType = "Collider2D";
+ }
+ else
+ {
+ Collider objCollider3D = obj.GetComponentInChildren();
+ if (objCollider3D != null)
+ {
+ bounds = objCollider3D.bounds;
+ sourceType = "Collider3D";
+ }
+ }
+ }
+
+ if (sourceType == "none") return;
+
+ Vector3 center = bounds.center;
+ Vector3 extents = bounds.extents;
+ float height = bounds.size.y;
+
+ // Draw bounds box (green)
+ Debug.DrawLine(new Vector3(center.x - extents.x, center.y - extents.y, center.z),
+ new Vector3(center.x + extents.x, center.y - extents.y, center.z), Color.green, 5f);
+ Debug.DrawLine(new Vector3(center.x - extents.x, center.y + extents.y, center.z),
+ new Vector3(center.x + extents.x, center.y + extents.y, center.z), Color.green, 5f);
+ Debug.DrawLine(new Vector3(center.x - extents.x, center.y - extents.y, center.z),
+ new Vector3(center.x - extents.x, center.y + extents.y, center.z), Color.green, 5f);
+ Debug.DrawLine(new Vector3(center.x + extents.x, center.y - extents.y, center.z),
+ new Vector3(center.x + extents.x, center.y + extents.y, center.z), Color.green, 5f);
+
+ // Draw center point (yellow cross)
+ Debug.DrawLine(new Vector3(center.x - 1f, center.y, center.z),
+ new Vector3(center.x + 1f, center.y, center.z), Color.yellow, 5f);
+ Debug.DrawLine(new Vector3(center.x, center.y - 1f, center.z),
+ new Vector3(center.x, center.y + 1f, center.z), Color.yellow, 5f);
+
+ // Draw bottom edge (red thick line) - where we expect the object to touch ground
+ Debug.DrawLine(new Vector3(center.x - extents.x, center.y - extents.y, center.z),
+ new Vector3(center.x + extents.x, center.y - extents.y, center.z), Color.red, 5f);
+
+ // Draw top edge (cyan)
+ Debug.DrawLine(new Vector3(center.x - extents.x, center.y + extents.y, center.z),
+ new Vector3(center.x + extents.x, center.y + extents.y, center.z), Color.cyan, 5f);
+
+ Logging.Debug($"[PositioningUtility] ObjectBounds: {obj.name}, Mode={mode}, Source={sourceType}, " +
+ $"Height={height:F2}, Center.y={center.y:F2}, Bottom.y={center.y - extents.y:F2}, " +
+ $"Top.y={center.y + extents.y:F2}, Scale={obj.transform.localScale.y:F2}");
+ }
+ }
+}
+
diff --git a/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs.meta b/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs.meta
new file mode 100644
index 00000000..5287af2b
--- /dev/null
+++ b/Assets/Scripts/Minigames/Airplane/Core/Spawning/PositioningUtility.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 369dac4c5d0943329fd0918ea52bdd4b
+timeCreated: 1766006091
\ No newline at end of file
diff --git a/Assets/Scripts/Minigames/Airplane/Interactive/ParallaxElement.cs b/Assets/Scripts/Minigames/Airplane/Interactive/ParallaxElement.cs
index 959638f6..7831ff03 100644
--- a/Assets/Scripts/Minigames/Airplane/Interactive/ParallaxElement.cs
+++ b/Assets/Scripts/Minigames/Airplane/Interactive/ParallaxElement.cs
@@ -7,48 +7,27 @@ namespace Minigames.Airplane.Interactive
///
/// Parallax element that adjusts position based on camera movement.
/// Creates depth illusion by moving at different speeds for different layers.
- /// Continuously tracks active camera for seamless transitions.
+ /// Configuration is provided by ParallaxBackgroundSpawner at initialization.
+ /// IMPORTANT: Always calculates position relative to ORIGINAL spawn position and camera,
+ /// ensuring deterministic behavior during camera blends and switches.
///
public class ParallaxElement : MonoBehaviour
{
- [Header("Layer Configuration")]
- [Tooltip("Which parallax layer this element belongs to")]
- [SerializeField] private ParallaxLayer layer = ParallaxLayer.Background;
-
- [Header("Parallax Settings")]
- [Tooltip("Global parallax strength multiplier (0 = no parallax, 1 = full)")]
- [SerializeField] private float globalStrength = 1f;
-
- [Tooltip("Per-layer parallax factors (Background/Middle/Foreground)")]
- [SerializeField] private float backgroundFactor = 0.3f;
- [SerializeField] private float middleFactor = 0.6f;
- [SerializeField] private float foregroundFactor = 0.9f;
-
- [Header("Debug")]
- [SerializeField] private bool showDebugLogs;
+ // Runtime state (set by spawner via Initialize)
+ private ParallaxLayer _layer;
+ private float _layerSpeed;
+ private float _globalStrength;
+ // Current camera being tracked
private Transform _cameraTransform;
- private Vector3 _startPosition;
- private float _startCameraX;
+
+ // ORIGINAL spawn state - NEVER reset after initialization
+ // This ensures objects return to spawn position when camera returns to spawn position
+ private Vector3 _originalSpawnPosition;
+ private float _originalCameraX;
+
private bool _isInitialized;
- private void Awake()
- {
- // Ensure correct sort layer
- EnsureSortLayer();
- }
-
- private void Start()
- {
- _startPosition = transform.position;
-
- if (_cameraTransform != null)
- {
- _startCameraX = _cameraTransform.position.x;
- _isInitialized = true;
- }
- }
-
private void Update()
{
if (!_isInitialized || _cameraTransform == null) return;
@@ -57,94 +36,69 @@ namespace Minigames.Airplane.Interactive
}
///
- /// Set the parallax layer for this element.
+ /// Initialize the parallax element with spawner-provided settings.
+ /// Called by ParallaxBackgroundSpawner when spawning.
+ /// Sets the ORIGINAL spawn position and camera position - these are never reset.
+ /// IMPORTANT: Uses Camera.main for tracking to ensure smooth updates during Cinemachine blends.
///
- public void SetLayer(ParallaxLayer newLayer)
+ public void Initialize(ParallaxLayer layer, float layerSpeed, float globalStrength, Transform cameraTransform)
{
- layer = newLayer;
- EnsureSortLayer();
+ _layer = layer;
+ _layerSpeed = layerSpeed;
+ _globalStrength = globalStrength;
- if (showDebugLogs)
+ // ALWAYS use Camera.main for tracking - this ensures smooth updates during Cinemachine blends
+ // Virtual cameras don't move during blends, but Camera.main does
+ _cameraTransform = Camera.main != null ? Camera.main.transform : cameraTransform;
+
+ // Store ORIGINAL spawn position - never reset
+ _originalSpawnPosition = transform.position;
+
+ if (_cameraTransform != null)
{
- Logging.Debug($"[ParallaxElement] Layer set to {layer}");
+ // Store ORIGINAL camera X - never reset
+ _originalCameraX = _cameraTransform.position.x;
+ _isInitialized = true;
}
}
///
- /// Set the camera transform to track.
- /// Call this when camera changes.
+ /// Update the camera transform when camera changes.
+ /// Called by ParallaxBackgroundSpawner when camera switches or blends.
+ /// ONLY updates the camera reference - does NOT reset start position or camera X.
+ /// This ensures parallax remains deterministic across camera switches.
+ /// IMPORTANT: Always uses Camera.main to ensure smooth updates during blends.
///
- public void SetCameraTransform(Transform cameraTransform)
+ public void UpdateCamera(Transform newCameraTransform)
{
- if (cameraTransform == null) return;
+ // ALWAYS use Camera.main for tracking - this ensures smooth updates during Cinemachine blends
+ // We ignore the passed transform and always use Camera.main
+ Transform mainCamera = Camera.main != null ? Camera.main.transform : newCameraTransform;
- // If camera changed, recalculate base position
- if (_cameraTransform != null && _cameraTransform != cameraTransform)
- {
- // Smooth transition: current world position becomes new start position
- _startPosition = transform.position;
- }
+ if (mainCamera == null) return;
- _cameraTransform = cameraTransform;
- _startCameraX = _cameraTransform.position.x;
+ // Simply update the camera reference - do NOT reset positions
+ // The parallax will continue to calculate relative to original spawn state
+ _cameraTransform = mainCamera;
_isInitialized = true;
-
- if (showDebugLogs)
- {
- Logging.Debug($"[ParallaxElement] Camera set, starting camera X={_startCameraX:F2}");
- }
}
private void ApplyParallax()
{
- // Calculate camera displacement from start
- float cameraDisplacement = _cameraTransform.position.x - _startCameraX;
+ // Calculate camera displacement from ORIGINAL camera position
+ // This ensures objects return to spawn position when camera returns to spawn position
+ float cameraDisplacement = _cameraTransform.position.x - _originalCameraX;
- // Get layer-specific parallax factor
- float layerFactor = GetLayerFactor();
+ // Calculate parallax offset - negative to move opposite direction
+ // Lower speed = appears further away (moves less)
+ // Camera moves right (+) → background moves left (-) at reduced speed
+ float parallaxOffset = -cameraDisplacement * _layerSpeed * _globalStrength;
- // Calculate parallax offset (reduced displacement based on layer depth)
- float parallaxOffset = cameraDisplacement * layerFactor * globalStrength;
-
- // Apply offset to start position
- Vector3 newPosition = _startPosition;
+ // Apply offset to ORIGINAL spawn position
+ Vector3 newPosition = _originalSpawnPosition;
newPosition.x += parallaxOffset;
transform.position = newPosition;
}
-
- private float GetLayerFactor()
- {
- return layer switch
- {
- ParallaxLayer.Background => backgroundFactor,
- ParallaxLayer.Middle => middleFactor,
- ParallaxLayer.Foreground => foregroundFactor,
- _ => 1f
- };
- }
-
- private void EnsureSortLayer()
- {
- SpriteRenderer spriteRenderer = GetComponentInChildren();
- if (spriteRenderer == null) return;
-
- // Sort layer is set by spawner, this is just a validation/fallback
- string expectedLayer = layer switch
- {
- ParallaxLayer.Background => "Background",
- ParallaxLayer.Middle => "Midground",
- ParallaxLayer.Foreground => "Foreground",
- _ => "Default"
- };
-
- if (spriteRenderer.sortingLayerName != expectedLayer)
- {
- if (showDebugLogs)
- {
- Logging.Debug($"[ParallaxElement] Adjusting sort layer to '{expectedLayer}' for {layer}");
- }
- }
- }
}
}
diff --git a/Assets/Scripts/Minigames/BirdPooper/ScrollingEntity.cs b/Assets/Scripts/Minigames/BirdPooper/ScrollingEntity.cs
index e9d043b8..1bd72e49 100644
--- a/Assets/Scripts/Minigames/BirdPooper/ScrollingEntity.cs
+++ b/Assets/Scripts/Minigames/BirdPooper/ScrollingEntity.cs
@@ -117,8 +117,12 @@ namespace Minigames.BirdPooper
///
protected virtual void OnValidate()
{
+ // Skip validation for prefab assets (only run on scene instances)
+ if (UnityEditor.PrefabUtility.IsPartOfPrefabAsset(this))
+ return;
+
// Only run in editor, not during play mode
- if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode)
+ if (Application.isPlaying || !Application.isEditor)
return;
EdgeAnchor anchor = GetComponent();