This commit is contained in:
2025-12-08 13:18:56 +01:00
57 changed files with 3308 additions and 145 deletions

View File

@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 6f3207429a65b3e4b83935ac19791077
m_currentHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
Hash: b784c72547c16021d9ba62425af8f54d
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0

View File

@@ -0,0 +1,85 @@
using Minigames.Airplane.Interactive;
using UnityEditor;
namespace Editor.CustomEditorsAndDrawers
{
[CustomEditor(typeof(AirplaneBouncySurface))]
public class AirplaneBouncySurfaceEditor : UnityEditor.Editor
{
private SerializedProperty _bounceMultiplierProp;
private SerializedProperty _bounceDirectionProp;
private SerializedProperty _useReflectionProp;
private SerializedProperty _minBounceVelocityProp;
private SerializedProperty _maxBounceVelocityProp;
private SerializedProperty _bounceAnimatorProp;
private SerializedProperty _bounceTriggerProp;
private SerializedProperty _bounceSoundProp;
private SerializedProperty _showDebugLogsProp;
private void OnEnable()
{
_bounceMultiplierProp = serializedObject.FindProperty("bounceMultiplier");
_bounceDirectionProp = serializedObject.FindProperty("bounceDirection");
_useReflectionProp = serializedObject.FindProperty("useReflection");
_minBounceVelocityProp = serializedObject.FindProperty("minBounceVelocity");
_maxBounceVelocityProp = serializedObject.FindProperty("maxBounceVelocity");
_bounceAnimatorProp = serializedObject.FindProperty("bounceAnimator");
_bounceTriggerProp = serializedObject.FindProperty("bounceTrigger");
_bounceSoundProp = serializedObject.FindProperty("bounceSound");
_showDebugLogsProp = serializedObject.FindProperty("showDebugLogs");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.LabelField("Bounce Configuration", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_bounceMultiplierProp);
EditorGUILayout.PropertyField(_useReflectionProp);
// Grey out bounceDirection when useReflection is true
bool isReflectionEnabled = _useReflectionProp.boolValue;
EditorGUI.BeginDisabledGroup(isReflectionEnabled);
EditorGUILayout.PropertyField(_bounceDirectionProp);
EditorGUI.EndDisabledGroup();
if (isReflectionEnabled)
{
EditorGUILayout.HelpBox("Bounce direction is used as surface normal for reflection when 'Use Reflection' is enabled.", MessageType.Info);
}
else
{
EditorGUILayout.HelpBox("Plane will be launched directly in the specified direction (no reflection).", MessageType.Info);
}
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Optional Modifiers", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_minBounceVelocityProp);
EditorGUILayout.PropertyField(_maxBounceVelocityProp);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Visual Feedback (Optional)", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_bounceAnimatorProp);
EditorGUILayout.PropertyField(_bounceTriggerProp);
EditorGUILayout.PropertyField(_bounceSoundProp);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Debug", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_showDebugLogsProp);
EditorGUI.indentLevel--;
serializedObject.ApplyModifiedProperties();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 813d27f62bb94a3cbbf5b504a0209257
timeCreated: 1765188846

View File

@@ -0,0 +1,24 @@
using Minigames.Airplane.Core;
using Minigames.Airplane.Data;
using UnityEditor;
namespace Editor.CustomEditorsAndDrawers
{
[CustomEditor(typeof(AirplaneSpawnManager))]
public class AirplaneSpawnManagerEditor : UnityEditor.Editor
{
public override void OnInspectorGUI()
{
// Draw default inspector - all fields now have proper property drawers
DrawDefaultInspector();
// Add helpful info box
EditorGUILayout.Space();
EditorGUILayout.HelpBox(
"Each prefab now has its own spawn position configuration. " +
"Expand entries in Positive/Negative Object Prefabs to configure individual spawn behavior.",
MessageType.Info);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e5bd22e99d254c229cca7cee79b40baf
timeCreated: 1765189346

View File

@@ -0,0 +1,97 @@
using Minigames.Airplane.Data;
using UnityEditor;
using UnityEngine;
namespace Editor.CustomEditorsAndDrawers
{
[CustomPropertyDrawer(typeof(PrefabSpawnEntry))]
public class PrefabSpawnEntryDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
// Draw foldout
property.isExpanded = EditorGUI.Foldout(new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight),
property.isExpanded, label, true);
if (property.isExpanded)
{
EditorGUI.indentLevel++;
float yPos = position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw prefab
SerializedProperty prefabProp = property.FindPropertyRelative("prefab");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), prefabProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw spawn position mode
SerializedProperty spawnModeProp = property.FindPropertyRelative("spawnPositionMode");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), spawnModeProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw conditional fields based on mode
SpawnPositionMode mode = (SpawnPositionMode)spawnModeProp.enumValueIndex;
switch (mode)
{
case SpawnPositionMode.SpecifiedY:
SerializedProperty specifiedYProp = property.FindPropertyRelative("specifiedY");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), specifiedYProp);
break;
case SpawnPositionMode.RandomRange:
SerializedProperty randomYMinProp = property.FindPropertyRelative("randomYMin");
SerializedProperty randomYMaxProp = property.FindPropertyRelative("randomYMax");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), randomYMinProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), randomYMaxProp);
break;
case SpawnPositionMode.SnapToGround:
// No additional fields needed
EditorGUI.LabelField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight),
"Uses raycast to snap to ground", EditorStyles.miniLabel);
break;
}
EditorGUI.indentLevel--;
}
EditorGUI.EndProperty();
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
if (!property.isExpanded)
return EditorGUIUtility.singleLineHeight;
float height = EditorGUIUtility.singleLineHeight; // Foldout
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // prefab
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // spawnPositionMode
// Add height for mode-specific fields
SerializedProperty spawnModeProp = property.FindPropertyRelative("spawnPositionMode");
SpawnPositionMode mode = (SpawnPositionMode)spawnModeProp.enumValueIndex;
switch (mode)
{
case SpawnPositionMode.SpecifiedY:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // specifiedY
break;
case SpawnPositionMode.RandomRange:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // randomYMin
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // randomYMax
break;
case SpawnPositionMode.SnapToGround:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // Info label
break;
}
return height;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c3e7b9fb5ac24beca6cc32e3025dc12f
timeCreated: 1765189641

View File

@@ -0,0 +1,104 @@
using Minigames.Airplane.Core;
using Minigames.Airplane.Data;
using UnityEditor;
using UnityEngine;
namespace Editor.CustomEditorsAndDrawers
{
[CustomPropertyDrawer(typeof(AirplaneSpawnManager.TargetPrefabEntry))]
public class TargetPrefabEntryDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
// Draw foldout
property.isExpanded = EditorGUI.Foldout(new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight),
property.isExpanded, label, true);
if (property.isExpanded)
{
EditorGUI.indentLevel++;
float yPos = position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw targetKey
SerializedProperty targetKeyProp = property.FindPropertyRelative("targetKey");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), targetKeyProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw prefab
SerializedProperty prefabProp = property.FindPropertyRelative("prefab");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), prefabProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw spawn position mode
SerializedProperty spawnModeProp = property.FindPropertyRelative("spawnPositionMode");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), spawnModeProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
// Draw conditional fields based on mode
SpawnPositionMode mode = (SpawnPositionMode)spawnModeProp.enumValueIndex;
switch (mode)
{
case SpawnPositionMode.SpecifiedY:
SerializedProperty specifiedYProp = property.FindPropertyRelative("specifiedY");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), specifiedYProp);
break;
case SpawnPositionMode.RandomRange:
SerializedProperty randomYMinProp = property.FindPropertyRelative("randomYMin");
SerializedProperty randomYMaxProp = property.FindPropertyRelative("randomYMax");
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), randomYMinProp);
yPos += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight), randomYMaxProp);
break;
case SpawnPositionMode.SnapToGround:
// No additional fields needed
EditorGUI.LabelField(new Rect(position.x, yPos, position.width, EditorGUIUtility.singleLineHeight),
"Uses raycast to snap to ground", EditorStyles.miniLabel);
break;
}
EditorGUI.indentLevel--;
}
EditorGUI.EndProperty();
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
if (!property.isExpanded)
return EditorGUIUtility.singleLineHeight;
float height = EditorGUIUtility.singleLineHeight; // Foldout
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // targetKey
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // prefab
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // spawnPositionMode
// Add height for mode-specific fields
SerializedProperty spawnModeProp = property.FindPropertyRelative("spawnPositionMode");
SpawnPositionMode mode = (SpawnPositionMode)spawnModeProp.enumValueIndex;
switch (mode)
{
case SpawnPositionMode.SpecifiedY:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // specifiedY
break;
case SpawnPositionMode.RandomRange:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // randomYMin
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // randomYMax
break;
case SpawnPositionMode.SnapToGround:
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; // Info label
break;
}
return height;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 63205158adf24f9f9e4c6fa21da543ff
timeCreated: 1765189334

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,195 @@
fileFormatVersion: 2
guid: 9700006b6eb975447bdbdde8846ca0d8
TextureImporter:
internalIDToNameTable:
- first:
213: -1360189325138225679
second: black_hole_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: black_hole_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 268
height: 270
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 1f59bdfe303af1de0800000000000000
internalID: -1360189325138225679
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
black_hole_0: -1360189325138225679
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@@ -0,0 +1,212 @@
fileFormatVersion: 2
guid: 31e9eb6743854b9448c6cd8bcd5318cc
TextureImporter:
internalIDToNameTable:
- first:
213: -5926349415410185450
second: wind_gust_0
- first:
213: -5364680880841707246
second: wind_gust_1
- first:
213: -6563357398787191430
second: wind_gust_2
- first:
213: 100818993482465096
second: wind_gust_3
- first:
213: -8608337457062555236
second: wind_gust_4
- first:
213: 8440422462446946557
second: wind_gust_5
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: wind_gust_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 2112
height: 963
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 61bc1a71b9061cda0800000000000000
internalID: -5926349415410185450
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 8045afef6a5075d44ba4e07e934d9112
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":2112.0,"y":963.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":2,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
wind_gust_0: -5926349415410185450
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bba5d31db9143784094b7b0e05ca2467
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,189 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &497267990420767357
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4572188480515029494}
- component: {fileID: 6979039544463298865}
- component: {fileID: 1989378388080844566}
m_Layer: 0
m_Name: AirplaneWindZone
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4572188480515029494
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 497267990420767357}
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: 5074016134362590334}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &6979039544463298865
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 497267990420767357}
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: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: -1.2203689, y: -0.032116175}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 9.349909, y: 13.653318}
m_EdgeRadius: 0
--- !u!114 &1989378388080844566
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 497267990420767357}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc3242fd3fe042919496d71933a760a5, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Interactive.AirplaneWindZone
windForce: {x: 0, y: 100}
isWorldSpace: 1
windParticles: {fileID: 0}
showDebugLogs: 0
--- !u!1 &2715744416533832886
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5074016134362590334}
- component: {fileID: 6829367419931429958}
m_Layer: 0
m_Name: Visual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5074016134362590334
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2715744416533832886}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_LocalPosition: {x: -2.43, y: -0.26, z: 0}
m_LocalScale: {x: 0.63, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 4572188480515029494}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
--- !u!212 &6829367419931429958
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2715744416533832886}
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: -5926349415410185450, guid: 31e9eb6743854b9448c6cd8bcd5318cc, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 0.3529412}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 21.12, y: 9.631875}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: dc32284941c693c4f9e422f4197ca61e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,176 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1186710456879913970
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2673913562921804095}
- component: {fileID: 4536075709913768692}
- component: {fileID: 5467951227568735409}
- component: {fileID: 7869284532818573382}
m_Layer: 0
m_Name: BlackHole
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2673913562921804095
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1186710456879913970}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.26, y: 1.26, z: 1.26}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4536075709913768692
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1186710456879913970}
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: -1360189325138225679, guid: 9700006b6eb975447bdbdde8846ca0d8, 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: 2.7}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
--- !u!58 &5467951227568735409
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1186710456879913970}
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: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_Radius: 6
--- !u!114 &7869284532818573382
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1186710456879913970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f6c5008f2782416095c5b3f5092843a9, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Interactive.AirplaneGravityWell
pullStrength: 200
useInverseSquare: 0
minPullDistance: 0.5
maxPullForce: 200
pullFalloff:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: -1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: -1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
gravityParticles: {fileID: 0}
centerSprite: {fileID: 4536075709913768692}
rotationSpeed: 45
showDebugLogs: 0
drawDebugLines: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 006b956651124704dbae5bd4faab3152
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,162 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1917678391913987792
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5173240655313723415}
- component: {fileID: 8126210844742366787}
- component: {fileID: 7874709284498167353}
- component: {fileID: 806255670199755721}
m_Layer: 0
m_Name: BouncySurface
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5173240655313723415
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1917678391913987792}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.017162, y: 0, z: 0}
m_LocalScale: {x: 3.5489998, y: 1.91, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &8126210844742366787
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1917678391913987792}
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: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0.022459388, 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.6620138, y: 1}
m_EdgeRadius: 0
--- !u!114 &7874709284498167353
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1917678391913987792}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f1ff69bae8e49188f439a8e5cdb7dfc, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Interactive.AirplaneBouncySurface
bounceMultiplier: 1.5
bounceDirection: {x: 0, y: 1}
useReflection: 1
minBounceVelocity: 20
maxBounceVelocity: 100
bounceAnimator: {fileID: 0}
bounceTrigger: Bounce
bounceSound: {fileID: 0}
showDebugLogs: 0
--- !u!212 &806255670199755721
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1917678391913987792}
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: 0.2471698, g: 0.50572634, 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 989121c9099e41e469824ddeaf0e34a5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,318 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4333234134865822482
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6804591233897830740}
- component: {fileID: 7158212345905452440}
m_Layer: 0
m_Name: Stand
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6804591233897830740
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4333234134865822482}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_LocalPosition: {x: 4e-14, y: -7.69, z: 0}
m_LocalScale: {x: 2.8339999, y: 0.48, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3353256266312504489}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
--- !u!212 &7158212345905452440
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4333234134865822482}
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: 8052574294374310945, guid: aba32b1063027b54cbe0699bd0103717, type: 3}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 3.67, y: 0.64}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
--- !u!1 &4565013738694023266
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3353256266312504489}
m_Layer: 0
m_Name: Visual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3353256266312504489
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4565013738694023266}
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: 6804591233897830740}
- {fileID: 7890280728253800166}
m_Father: {fileID: 558552741942634608}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &4672863428276290801
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7890280728253800166}
- component: {fileID: 1998174593452186558}
m_Layer: 0
m_Name: Ring
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7890280728253800166
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4672863428276290801}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3353256266312504489}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
--- !u!212 &1998174593452186558
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4672863428276290801}
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: 8052574294374310945, guid: aba32b1063027b54cbe0699bd0103717, 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.67, y: 0.64}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
--- !u!1 &7032677151789119314
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 558552741942634608}
- component: {fileID: 4813017990778025648}
- component: {fileID: 3540346896436126914}
m_Layer: 0
m_Name: SpeedRing
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &558552741942634608
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7032677151789119314}
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: 3353256266312504489}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &4813017990778025648
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7032677151789119314}
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: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0.00000047683716}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 1, y: 5.4440317}
m_EdgeRadius: 0
--- !u!114 &3540346896436126914
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7032677151789119314}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30fadeee96664cf28e3e2e562c99db26, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Interactive.AirplaneSpeedRing
velocityMultiplier: 1.5
boostDuration: 2
oneTimeUse: 0
minResultSpeed: 5
maxResultSpeed: 200
ringVisual: {fileID: 4672863428276290801}
collectEffect: {fileID: 0}
collectSound: {fileID: 0}
showDebugLogs: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7dc33e43acead834ba6a231b67cfd2d9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,191 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &215115347189844273
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7164807323149369942}
- component: {fileID: 6305748118049389185}
m_Layer: 0
m_Name: Visual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7164807323149369942
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 215115347189844273}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.18, y: 2.94, z: 0}
m_LocalScale: {x: 0.5766967, y: 0.5766967, z: 0.5766967}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2012553309952743032}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6305748118049389185
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 215115347189844273}
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: -5926349415410185450, guid: 31e9eb6743854b9448c6cd8bcd5318cc, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 0.2901961}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 21.12, y: 9.631875}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0
--- !u!1 &2434350760695575337
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2012553309952743032}
- component: {fileID: 7926575534356808673}
- component: {fileID: 5265442100644127293}
m_Layer: 0
m_Name: Turbulence
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2012553309952743032
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2434350760695575337}
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: 7164807323149369942}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &7926575534356808673
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2434350760695575337}
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: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: -1.8673754, y: 2.4778643}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 13.497057, y: 7.6794586}
m_EdgeRadius: 0
--- !u!114 &5265442100644127293
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2434350760695575337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ae20630c0dc74174ae4d851d97d101c0, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Interactive.AirplaneTurbulenceZone
turbulenceStrength: 150
changeFrequency: 0.1
preventUpwardForce: 0
maxTotalForce: 200
turbulenceParticles: {fileID: 0}
showDebugLogs: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f3188909ff4e845499a5cbfd0ae93101
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -193,6 +193,7 @@ GameObject:
m_IsActive: 1
--- !u!212 &108199299
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -238,6 +239,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: -1073821134, guid: 99d4c3083e9c24142bc20deaeaf95720, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -247,7 +249,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &108199300
Transform:
@@ -258,7 +259,7 @@ Transform:
m_GameObject: {fileID: 108199298}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -35.4, y: -12.4, z: 0}
m_LocalPosition: {x: -35.4, y: 0.40000153, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_ConstrainProportionsScale: 1
m_Children:
@@ -345,7 +346,7 @@ Transform:
m_GameObject: {fileID: 196947011}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -79.6, y: -18, z: 0}
m_LocalPosition: {x: -79.6, y: -5, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -426,6 +427,7 @@ Rigidbody2D:
m_Constraints: 0
--- !u!212 &196947015
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -471,6 +473,7 @@ SpriteRenderer:
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
@@ -480,7 +483,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &263322552
GameObject:
@@ -552,7 +554,7 @@ Transform:
m_GameObject: {fileID: 263322552}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 10.8, z: -10}
m_LocalPosition: {x: 0, y: 23.600002, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -608,7 +610,7 @@ Transform:
m_GameObject: {fileID: 469774135}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.49999952, y: -10.7, z: 0}
m_LocalPosition: {x: 0.49999952, y: 2.1000013, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -616,6 +618,7 @@ Transform:
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}
@@ -661,6 +664,7 @@ SpriteRenderer:
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
@@ -670,7 +674,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &595230073
GameObject:
@@ -741,7 +744,7 @@ Transform:
m_GameObject: {fileID: 595230073}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -18.4, y: 0.1, z: -10}
m_LocalPosition: {x: -18.4, y: 12.900002, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -829,7 +832,7 @@ Transform:
m_GameObject: {fileID: 695066654}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 20.1, y: -13.3, z: 0}
m_LocalPosition: {x: 20.1, y: -0.49999905, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -837,6 +840,7 @@ Transform:
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}
@@ -882,6 +886,7 @@ SpriteRenderer:
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
@@ -891,7 +896,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &742382007
GameObject:
@@ -1167,6 +1171,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -1250,6 +1255,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &761345709
GameObject:
@@ -1320,7 +1326,7 @@ Transform:
m_GameObject: {fileID: 761345709}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -9.6, y: 0.1, z: -10}
m_LocalPosition: {x: -9.6, y: 12.900002, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1354,7 +1360,7 @@ Transform:
m_GameObject: {fileID: 815418543}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -48.9, y: -18, z: 0}
m_LocalPosition: {x: -48.9, y: -5, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1435,6 +1441,7 @@ Rigidbody2D:
m_Constraints: 0
--- !u!212 &815418547
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -1480,6 +1487,7 @@ SpriteRenderer:
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
@@ -1489,7 +1497,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &839468740
GameObject:
@@ -1629,7 +1636,7 @@ Transform:
m_GameObject: {fileID: 881483168}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -110.06211, y: -18, z: 0}
m_LocalPosition: {x: -110.06211, y: -5, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1710,6 +1717,7 @@ Rigidbody2D:
m_Constraints: 0
--- !u!212 &881483172
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -1755,6 +1763,7 @@ SpriteRenderer:
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
@@ -1764,7 +1773,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1017291798
GameObject:
@@ -1822,7 +1830,7 @@ Transform:
m_GameObject: {fileID: 1064542408}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.61582, y: -7.73078, z: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1905,7 +1913,7 @@ Transform:
m_GameObject: {fileID: 1140411104}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -30.9, y: -10.4, z: 0}
m_LocalPosition: {x: -30.9, y: 2.4000015, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1913,6 +1921,7 @@ Transform:
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}
@@ -1958,6 +1967,7 @@ SpriteRenderer:
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
@@ -1967,7 +1977,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1145809176
GameObject:
@@ -2064,6 +2073,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -2318,7 +2328,7 @@ MonoBehaviour:
lineWidth: 0.1
--- !u!120 &1309397784
LineRenderer:
serializedVersion: 2
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2364,6 +2374,7 @@ LineRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Positions:
- {x: 0, y: 0, z: 0}
- {x: 0, y: 0, z: 1}
@@ -2422,7 +2433,6 @@ LineRenderer:
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
m_MaskInteraction: 0
m_UseWorldSpace: 1
m_Loop: 0
m_ApplyActiveColorSpace: 1
@@ -2577,6 +2587,7 @@ GameObject:
m_IsActive: 1
--- !u!212 &1467194713
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2622,6 +2633,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: -1674588785, guid: fd8520daf9c2a644a94d0afa1a5b7f4d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -2631,7 +2643,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &1467194714
Transform:
@@ -2642,7 +2653,7 @@ Transform:
m_GameObject: {fileID: 1467194712}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -31.6, y: -8.700001, z: 0}
m_LocalPosition: {x: -31.6, y: 4.1000004, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_ConstrainProportionsScale: 1
m_Children:
@@ -2691,7 +2702,7 @@ Transform:
m_GameObject: {fileID: 1503641822}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 0, y: 12.800001, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -2699,6 +2710,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
--- !u!212 &1503641824
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2744,6 +2756,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: -4346244404228752641, guid: 7b5d036a9fa30484e911f4752e3a64c8, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -2753,7 +2766,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1512788409
GameObject:
@@ -2781,7 +2793,7 @@ Transform:
m_GameObject: {fileID: 1512788409}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -3.7, y: -12.4, z: 0}
m_LocalPosition: {x: -3.7, y: 0.40000153, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -2789,6 +2801,7 @@ Transform:
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}
@@ -2834,6 +2847,7 @@ SpriteRenderer:
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
@@ -2843,7 +2857,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1520040324
GameObject:
@@ -3023,7 +3036,7 @@ Transform:
m_GameObject: {fileID: 1584750722}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.5, y: 0.07, z: 0}
m_LocalPosition: {x: 1.5, y: 12.78, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -3055,7 +3068,7 @@ Transform:
m_GameObject: {fileID: 1587396499}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -26.699999, y: -8.7, z: 0}
m_LocalPosition: {x: -26.699999, y: 4.1000013, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -3063,6 +3076,7 @@ Transform:
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}
@@ -3108,6 +3122,7 @@ SpriteRenderer:
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
@@ -3117,7 +3132,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1611333929
GameObject:
@@ -3214,6 +3228,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -3297,6 +3312,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1615667753
GameObject:
@@ -3699,7 +3715,7 @@ Transform:
m_GameObject: {fileID: 1784207401}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 17.2, y: -0.1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -3722,19 +3738,51 @@ MonoBehaviour:
targetPrefabs:
- targetKey: bob_target
prefab: {fileID: 3207629437433571205, guid: 9f4bb48933059e543b60ac782d2140d8, type: 3}
spawnPositionMode: 0
specifiedY: 0
randomYMin: -5
randomYMax: 5
- targetKey: gardener_target
prefab: {fileID: 3207629437433571205, guid: 80740b4781058fd4fb86aab279062278, type: 3}
spawnPositionMode: 0
specifiedY: 0
randomYMin: -5
randomYMax: 5
positiveObjectPrefabs:
- {fileID: 9221047222437043327, guid: 1817f4f55515cb047b681ac3924f9c34, type: 3}
- prefab: {fileID: 497267990420767357, guid: dc32284941c693c4f9e422f4197ca61e, type: 3}
spawnPositionMode: 2
specifiedY: 0
randomYMin: 3
randomYMax: 40
- prefab: {fileID: 1917678391913987792, guid: 989121c9099e41e469824ddeaf0e34a5, type: 3}
spawnPositionMode: 0
specifiedY: 0
randomYMin: 5
randomYMax: 20
- prefab: {fileID: 7032677151789119314, guid: 7dc33e43acead834ba6a231b67cfd2d9, type: 3}
spawnPositionMode: 2
specifiedY: 0
randomYMin: 3
randomYMax: 40
negativeObjectPrefabs:
- {fileID: 9221047222437043327, guid: 675811ef904993e4d8f0e948b449c87e, type: 3}
- prefab: {fileID: 1186710456879913970, guid: 006b956651124704dbae5bd4faab3152, type: 3}
spawnPositionMode: 2
specifiedY: 0
randomYMin: 3
randomYMax: 40
- prefab: {fileID: 2434350760695575337, guid: f3188909ff4e845499a5cbfd0ae93101, type: 3}
spawnPositionMode: 2
specifiedY: 0
randomYMin: 3
randomYMax: 40
groundTilePrefabs:
- {fileID: 5175967588203935335, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
targetDisplayUI: {fileID: 1520040329}
launchController: {fileID: 1309397785}
dynamicSpawnThresholdMarker: {fileID: 1653173574}
spawnedObjectsParent: {fileID: 1219431443}
groundTilesParent: {fileID: 1287102785}
groundSpawnY: -18
groundSpawnY: -5
showDebugLogs: 0
--- !u!1 &1810521056
GameObject:
@@ -3900,7 +3948,7 @@ Transform:
m_GameObject: {fileID: 1810521056}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalPosition: {x: 0, y: 12.800001, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -3932,7 +3980,7 @@ Transform:
m_GameObject: {fileID: 1827334364}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -24.699999, y: -10.5, z: 0}
m_LocalPosition: {x: -24.699999, y: 2.3000011, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -3940,6 +3988,7 @@ Transform:
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}
@@ -3985,6 +4034,7 @@ SpriteRenderer:
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
@@ -3994,7 +4044,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1836836829
GameObject:
@@ -4022,7 +4071,7 @@ Transform:
m_GameObject: {fileID: 1836836829}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 2.5, y: -12.5, z: 0}
m_LocalPosition: {x: 2.5, y: 0.30000114, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -4030,6 +4079,7 @@ Transform:
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}
@@ -4075,6 +4125,7 @@ SpriteRenderer:
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
@@ -4084,7 +4135,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1897459173
GameObject:
@@ -4112,7 +4162,7 @@ Transform:
m_GameObject: {fileID: 1897459173}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -13.9, y: -10.4, z: 0}
m_LocalPosition: {x: -13.9, y: 2.4000015, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -4120,6 +4170,7 @@ Transform:
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}
@@ -4165,6 +4216,7 @@ SpriteRenderer:
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
@@ -4174,7 +4226,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1930014901
GameObject:
@@ -4271,6 +4322,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -4354,6 +4406,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1963533594
GameObject:
@@ -4526,6 +4579,7 @@ GameObject:
m_IsActive: 1
--- !u!212 &2018617601
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -4571,6 +4625,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 5453481469928959302, guid: e7511d945ae75cf40abad6cb17c0da90, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -4580,7 +4635,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &2018617602
Transform:
@@ -4591,7 +4645,7 @@ Transform:
m_GameObject: {fileID: 2018617600}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -25.7, y: -8.8, z: 0}
m_LocalPosition: {x: -25.7, y: 4.000001, z: 0}
m_LocalScale: {x: 3, y: 3, z: 3}
m_ConstrainProportionsScale: 1
m_Children:
@@ -4724,6 +4778,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -4834,7 +4889,7 @@ Transform:
m_GameObject: {fileID: 2041347572}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -18.9, y: -3.7, z: -10}
m_LocalPosition: {x: -18.9, y: 9.100001, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -5038,7 +5093,7 @@ Transform:
m_GameObject: {fileID: 2103114174}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalPosition: {x: 0, y: 12.800001, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -5192,7 +5247,7 @@ Transform:
m_GameObject: {fileID: 2125208577}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 0, y: 12.800001, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -5226,7 +5281,7 @@ Transform:
m_GameObject: {fileID: 2145467374}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -140, y: -18, z: 0}
m_LocalPosition: {x: -140, y: -5, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -5307,6 +5362,7 @@ Rigidbody2D:
m_Constraints: 0
--- !u!212 &2145467378
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -5352,6 +5408,7 @@ SpriteRenderer:
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
@@ -5361,7 +5418,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1001 &453576884181909409
PrefabInstance:
@@ -5381,7 +5437,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
propertyPath: m_LocalPosition.y
value: -18
value: -5
objectReference: {fileID: 0}
- target: {fileID: 5380908876971534942, guid: a9b4569fcc08080479d99b9c3bcee089, type: 3}
propertyPath: m_LocalPosition.z

View File

@@ -302,11 +302,10 @@ namespace AppleHills.Core.Settings
float EvaluationDuration { get; }
// Spawn System
float DynamicSpawnThreshold { get; }
float TargetMinDistance { get; }
float TargetMaxDistance { get; }
float ObjectSpawnMinInterval { get; }
float ObjectSpawnMaxInterval { get; }
float ObjectSpawnMinDistance { get; } // Min distance between spawned objects
float ObjectSpawnMaxDistance { get; } // Max distance between spawned objects
float PositiveNegativeRatio { get; } // 0-1, where 1 = all positive, 0 = all negative
float SpawnDistanceAhead { get; }
float GroundSpawnInterval { get; }

View File

@@ -209,7 +209,7 @@ namespace Minigames.Airplane.Core
#region Collision Detection
/// <summary>
/// Detect trigger collisions with targets
/// Detect trigger collisions with targets and ground
/// </summary>
private void OnTriggerEnter2D(Collider2D other)
{
@@ -227,6 +227,15 @@ namespace Minigames.Airplane.Core
// Land after hitting target
HandleLanding();
return;
}
// Check if it's ground (by layer)
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IAirplaneSettings>();
if (settings != null && other.gameObject.layer == settings.GroundLayer)
{
if (showDebugLogs) Logging.Debug($"[AirplaneController] Hit ground at Y={transform.position.y:F2}");
HandleLanding();
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using AppleHills.Core.Settings;
using Core;
using Core.Lifecycle;
using Minigames.Airplane.Data;
using Minigames.Airplane.UI;
using UnityEngine;
using Random = UnityEngine.Random;
@@ -25,6 +26,18 @@ namespace Minigames.Airplane.Core
[Tooltip("Prefab to spawn for this target")]
public GameObject prefab;
[Tooltip("How to position this target vertically")]
public SpawnPositionMode spawnPositionMode = SpawnPositionMode.SnapToGround;
[Tooltip("Y position to use (SpecifiedY mode)")]
public float specifiedY = 0f;
[Tooltip("Min Y for random range (RandomRange mode)")]
public float randomYMin = -5f;
[Tooltip("Max Y for random range (RandomRange mode)")]
public float randomYMax = 5f;
}
#endregion
@@ -35,11 +48,11 @@ namespace Minigames.Airplane.Core
[Tooltip("Dictionary of target prefabs (key = target name)")]
[SerializeField] private TargetPrefabEntry[] targetPrefabs;
[Tooltip("Array of positive object prefabs")]
[SerializeField] private GameObject[] positiveObjectPrefabs;
[Tooltip("Array of positive object prefabs with spawn configuration")]
[SerializeField] private PrefabSpawnEntry[] positiveObjectPrefabs;
[Tooltip("Array of negative object prefabs")]
[SerializeField] private GameObject[] negativeObjectPrefabs;
[Tooltip("Array of negative object prefabs with spawn configuration")]
[SerializeField] private PrefabSpawnEntry[] negativeObjectPrefabs;
[Tooltip("Array of ground tile prefabs")]
[SerializeField] private GameObject[] groundTilePrefabs;
@@ -52,6 +65,10 @@ namespace Minigames.Airplane.Core
[Tooltip("Launch controller (provides launch anchor position for distance calculation)")]
[SerializeField] private AirplaneLaunchController launchController;
[Header("Spawn Threshold")]
[Tooltip("Transform marker in scene where dynamic spawning begins (uses X position). If null, uses fallback from settings.")]
[SerializeField] private Transform dynamicSpawnThresholdMarker;
[Header("Spawn Parents")]
[Tooltip("Parent transform for spawned objects (optional, for organization)")]
[SerializeField] private Transform spawnedObjectsParent;
@@ -77,6 +94,7 @@ namespace Minigames.Airplane.Core
private Sprite _targetIconSprite;
private GameObject _spawnedTarget;
private GameObject _targetPrefabToSpawn;
private TargetPrefabEntry _currentTargetEntry;
private bool _hasSpawnedTarget;
// Plane tracking
@@ -84,8 +102,8 @@ namespace Minigames.Airplane.Core
private bool _isSpawningActive;
private bool _hasPassedThreshold;
// Spawning timers
private float _nextObjectSpawnTime;
// Spawning positions (distance-based)
private float _nextObjectSpawnX;
private float _nextGroundSpawnX;
// Spawn statistics (for weighted ratio adjustment)
@@ -97,7 +115,7 @@ namespace Minigames.Airplane.Core
private bool _isRetryAttempt;
// Cached dictionaries
private Dictionary<string, GameObject> _targetPrefabDict;
private Dictionary<string, TargetPrefabEntry> _targetPrefabDict;
private IAirplaneSettings _settings;
#endregion
@@ -148,7 +166,9 @@ namespace Minigames.Airplane.Core
}
// Check if plane has crossed threshold
if (!_hasPassedThreshold && planeX >= _settings.DynamicSpawnThreshold)
float threshold = dynamicSpawnThresholdMarker.position.x;
if (!_hasPassedThreshold && planeX >= threshold)
{
_hasPassedThreshold = true;
InitializeDynamicSpawning();
@@ -167,11 +187,11 @@ namespace Minigames.Airplane.Core
if (shouldSpawnNewContent)
{
// Spawn objects at intervals
if (Time.time >= _nextObjectSpawnTime)
// Spawn objects when plane reaches spawn position
if (planeX >= _nextObjectSpawnX)
{
SpawnRandomObject();
ScheduleNextObjectSpawn();
ScheduleNextObjectSpawn(planeX);
}
// Spawn ground tiles ahead of plane
@@ -229,13 +249,15 @@ namespace Minigames.Airplane.Core
}
}
// Find target prefab and extract icon WITHOUT spawning
if (!_targetPrefabDict.TryGetValue(_currentTargetKey, out _targetPrefabToSpawn))
// Find target entry and extract icon WITHOUT spawning
if (!_targetPrefabDict.TryGetValue(_currentTargetKey, out _currentTargetEntry))
{
Logging.Error($"[SpawnManager] Target prefab not found for key '{_currentTargetKey}'!");
return;
}
_targetPrefabToSpawn = _currentTargetEntry.prefab;
// Extract icon from prefab (doesn't need to be instantiated)
ExtractTargetIconFromPrefab(_targetPrefabToSpawn);
@@ -400,7 +422,7 @@ namespace Minigames.Airplane.Core
/// </summary>
private void BuildTargetDictionary()
{
_targetPrefabDict = new Dictionary<string, GameObject>();
_targetPrefabDict = new Dictionary<string, TargetPrefabEntry>();
if (targetPrefabs == null || targetPrefabs.Length == 0)
{
@@ -428,7 +450,7 @@ namespace Minigames.Airplane.Core
continue;
}
_targetPrefabDict[entry.targetKey] = entry.prefab;
_targetPrefabDict[entry.targetKey] = entry;
}
if (showDebugLogs)
@@ -482,24 +504,28 @@ namespace Minigames.Airplane.Core
/// </summary>
private void SpawnTarget()
{
if (!_targetPrefabDict.TryGetValue(_currentTargetKey, out GameObject targetPrefab))
if (_currentTargetEntry == null || _currentTargetEntry.prefab == null)
{
Logging.Error($"[SpawnManager] Target prefab not found for key '{_currentTargetKey}'!");
return;
}
// Spawn target at initial position
_spawnedTarget = Instantiate(targetPrefab, _targetSpawnPosition, Quaternion.identity);
_spawnedTarget = Instantiate(_currentTargetEntry.prefab, _targetSpawnPosition, Quaternion.identity);
if (spawnedObjectsParent != null)
{
_spawnedTarget.transform.SetParent(spawnedObjectsParent);
}
// Snap target to ground
SnapObjectToGround(_spawnedTarget, _targetSpawnPosition.x);
// Position target using configured spawn mode
PositionObject(_spawnedTarget, _targetSpawnPosition.x,
_currentTargetEntry.spawnPositionMode,
_currentTargetEntry.specifiedY,
_currentTargetEntry.randomYMin,
_currentTargetEntry.randomYMax);
// Update target spawn position to actual snapped position
// Update target spawn position to actual positioned location
_targetSpawnPosition = _spawnedTarget.transform.position;
// Extract sprite for UI icon
@@ -591,11 +617,16 @@ namespace Minigames.Airplane.Core
/// </summary>
private void InitializeDynamicSpawning()
{
ScheduleNextObjectSpawn();
if (showDebugLogs)
// Schedule first spawn trigger from current plane position
// Actual spawning will happen at look-ahead distance
if (_planeTransform != null)
{
Logging.Debug("[SpawnManager] Dynamic spawning initialized");
ScheduleNextObjectSpawn(_planeTransform.position.x);
if (showDebugLogs)
{
Logging.Debug($"[SpawnManager] Dynamic spawning initialized, first spawn trigger at planeX={_nextObjectSpawnX:F2}");
}
}
}
@@ -608,24 +639,32 @@ namespace Minigames.Airplane.Core
}
/// <summary>
/// Schedule the next object spawn based on random interval.
/// Schedule the next object spawn based on random distance from current position.
/// </summary>
private void ScheduleNextObjectSpawn()
/// <param name="currentX">Current X position (usually plane's X or last spawn X)</param>
private void ScheduleNextObjectSpawn(float currentX)
{
float interval = Random.Range((float)_settings.ObjectSpawnMinInterval, (float)_settings.ObjectSpawnMaxInterval);
_nextObjectSpawnTime = Time.time + interval;
float spawnDistance = Random.Range(_settings.ObjectSpawnMinDistance, _settings.ObjectSpawnMaxDistance);
_nextObjectSpawnX = currentX + spawnDistance;
if (showDebugLogs)
{
Logging.Debug($"[SpawnManager] Next object scheduled at X={_nextObjectSpawnX:F2} (distance: {spawnDistance:F2} from {currentX:F2})");
}
}
/// <summary>
/// Spawn a random positive or negative object.
/// Uses weighted randomness to maintain target ratio.
/// Avoids spawning near target position to prevent obscuring it.
/// Objects spawn at look-ahead distance to ensure they're off-screen.
/// </summary>
private void SpawnRandomObject()
{
if (_planeTransform == null) return;
// Calculate spawn X position ahead of plane
// Spawn at look-ahead distance from plane's current position
// This ensures objects always spawn off-screen
float spawnX = _planeTransform.position.x + _settings.SpawnDistanceAhead;
// Check if spawn position is too close to target (avoid obscuring it)
@@ -634,24 +673,26 @@ namespace Minigames.Airplane.Core
if (distanceToTarget < targetClearanceZone)
{
// Too close to target, skip this spawn
// Too close to target, skip this spawn and schedule the next one
if (showDebugLogs)
{
Logging.Debug($"[SpawnManager] Skipped object spawn at X={spawnX:F2} (too close to target at X={_targetSpawnPosition.x:F2})");
}
// Schedule next spawn further ahead
ScheduleNextObjectSpawn(spawnX);
return;
}
// Determine if spawning positive or negative based on weighted ratio
bool spawnPositive = ShouldSpawnPositive();
GameObject prefabToSpawn = null;
PrefabSpawnEntry entryToSpawn = null;
if (spawnPositive)
{
if (positiveObjectPrefabs != null && positiveObjectPrefabs.Length > 0)
{
prefabToSpawn = positiveObjectPrefabs[UnityEngine.Random.Range(0, positiveObjectPrefabs.Length)];
entryToSpawn = positiveObjectPrefabs[UnityEngine.Random.Range(0, positiveObjectPrefabs.Length)];
_positiveSpawnCount++;
}
}
@@ -659,25 +700,36 @@ namespace Minigames.Airplane.Core
{
if (negativeObjectPrefabs != null && negativeObjectPrefabs.Length > 0)
{
prefabToSpawn = negativeObjectPrefabs[UnityEngine.Random.Range(0, negativeObjectPrefabs.Length)];
entryToSpawn = negativeObjectPrefabs[UnityEngine.Random.Range(0, negativeObjectPrefabs.Length)];
_negativeSpawnCount++;
}
}
if (prefabToSpawn == null) return;
if (entryToSpawn == null || entryToSpawn.prefab == null) return;
// Spawn object at temporary position
Vector3 tempPosition = new Vector3(spawnX, 0f, 0f);
GameObject spawnedObject = Instantiate(prefabToSpawn, tempPosition, Quaternion.identity);
GameObject spawnedObject = Instantiate(entryToSpawn.prefab, tempPosition, Quaternion.identity);
if (spawnedObjectsParent != null)
{
spawnedObject.transform.SetParent(spawnedObjectsParent);
}
// Snap to ground
SnapObjectToGround(spawnedObject, spawnX);
// Position object using entry's spawn configuration
PositionObject(spawnedObject, spawnX,
entryToSpawn.spawnPositionMode,
entryToSpawn.specifiedY,
entryToSpawn.randomYMin,
entryToSpawn.randomYMax);
// Initialize components that need post-spawn setup
var initializable = spawnedObject.GetComponent<Interactive.ISpawnInitializable>();
if (initializable != null)
{
initializable.Initialize();
}
if (showDebugLogs)
{
@@ -749,7 +801,57 @@ namespace Minigames.Airplane.Core
#endregion
#region Ground Snapping
#region Object Positioning
/// <summary>
/// Position an object based on the specified spawn mode.
/// </summary>
/// <param name="obj">Object to position</param>
/// <param name="xPosition">X position for the object</param>
/// <param name="mode">Spawn position mode to use</param>
/// <param name="specifiedY">Y value for SpecifiedY mode</param>
/// <param name="randomYMin">Min Y for RandomRange mode</param>
/// <param name="randomYMax">Max Y for RandomRange mode</param>
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;
if (showDebugLogs)
{
Logging.Debug($"[SpawnManager] Positioned object at specified Y={targetY:F2}");
}
break;
case SpawnPositionMode.RandomRange:
targetY = Random.Range(randomYMin, randomYMax);
if (showDebugLogs)
{
Logging.Debug($"[SpawnManager] Positioned object at random Y={targetY:F2} (range: {randomYMin:F2} to {randomYMax:F2})");
}
break;
default:
Logging.Error($"[SpawnManager] Unknown spawn position mode: {mode}");
targetY = 0f;
break;
}
// Apply position
Vector3 newPosition = obj.transform.position;
newPosition.y = targetY;
obj.transform.position = newPosition;
}
/// <summary>
/// Snap an object to the ground using raycast.
@@ -757,10 +859,9 @@ namespace Minigames.Airplane.Core
/// </summary>
/// <param name="obj">Object to snap to ground</param>
/// <param name="xPosition">X position to raycast from</param>
private void SnapObjectToGround(GameObject obj, float xPosition)
/// <returns>The Y position where object was snapped</returns>
private float SnapToGround(GameObject obj, float xPosition)
{
if (obj == null) return;
// Start raycast from high Y position
Vector2 rayOrigin = new Vector2(xPosition, 0.0f);
@@ -800,10 +901,7 @@ namespace Minigames.Airplane.Core
Logging.Warning($"[SpawnManager] No ground found at X={xPosition}, using default Y={targetY}");
}
// Apply position
Vector3 newPosition = obj.transform.position;
newPosition.y = targetY;
obj.transform.position = newPosition;
return targetY;
}
/// <summary>

View File

@@ -0,0 +1,29 @@
using System;
using UnityEngine;
namespace Minigames.Airplane.Data
{
/// <summary>
/// Defines a prefab with spawn position configuration.
/// Used for positive/negative objects in the airplane minigame.
/// </summary>
[Serializable]
public class PrefabSpawnEntry
{
[Tooltip("Prefab to spawn")]
public GameObject prefab;
[Tooltip("How to position this object vertically")]
public SpawnPositionMode spawnPositionMode = SpawnPositionMode.SnapToGround;
[Tooltip("Y position to use (SpecifiedY mode)")]
public float specifiedY;
[Tooltip("Min Y for random range (RandomRange mode)")]
public float randomYMin = -5f;
[Tooltip("Max Y for random range (RandomRange mode)")]
public float randomYMax = 5f;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d0290f7749fa4d2bb5cc8830a371705f
timeCreated: 1765189597

View File

@@ -0,0 +1,24 @@
namespace Minigames.Airplane.Data
{
/// <summary>
/// Defines how spawned objects are positioned vertically.
/// </summary>
public enum SpawnPositionMode
{
/// <summary>
/// Raycast down to find ground and snap object's bottom to ground surface.
/// </summary>
SnapToGround,
/// <summary>
/// Spawn at a specific Y coordinate.
/// </summary>
SpecifiedY,
/// <summary>
/// Spawn at a random Y coordinate within a specified range.
/// </summary>
RandomRange
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 97deb3f78d56408e83dc9f766418a5a2
timeCreated: 1765189120

View File

@@ -3,11 +3,13 @@
namespace Minigames.Airplane.Interactive
{
/// <summary>
/// Gravity well that pulls airplanes toward its center.
/// Gravity well that pulls airplanes toward its Y position (vertical only).
/// Plane below the well gets pulled UP, plane above gets pulled DOWN.
/// Does NOT affect horizontal (X) velocity - plane maintains forward momentum.
/// Creates challenging "danger zones" that players must avoid or escape from.
/// </summary>
[RequireComponent(typeof(Collider2D))]
public class AirplaneGravityWell : MonoBehaviour
public class AirplaneGravityWell : MonoBehaviour, ISpawnInitializable
{
[Header("Gravity Configuration")]
[SerializeField] private float pullStrength = 5f;
@@ -37,7 +39,14 @@ namespace Minigames.Airplane.Interactive
{
collider.isTrigger = true;
}
}
/// <summary>
/// Called by spawn manager after object is positioned.
/// Caches the final Y position for pull calculations.
/// </summary>
public void Initialize()
{
centerPosition = transform.position;
}
@@ -59,31 +68,31 @@ namespace Minigames.Airplane.Interactive
var rb = other.GetComponent<Rigidbody2D>();
if (rb == null) return;
// Calculate direction and distance to center
// Calculate VERTICAL distance only (Y-axis only)
Vector2 airplanePos = rb.position;
Vector2 toCenter = centerPosition - airplanePos;
float distance = toCenter.magnitude;
float yDistance = centerPosition.y - airplanePos.y;
float absYDistance = Mathf.Abs(yDistance);
// Prevent division by zero
if (distance < minPullDistance)
if (absYDistance < minPullDistance)
{
distance = minPullDistance;
absYDistance = minPullDistance;
}
// Calculate pull force
// Calculate pull force based on vertical distance
float forceMagnitude;
if (useInverseSquare)
{
// Realistic gravity-like force (inverse square law)
forceMagnitude = pullStrength / (distance * distance);
forceMagnitude = pullStrength / (absYDistance * absYDistance);
}
else
{
// Linear falloff based on distance
// Linear falloff based on vertical distance
var collider = GetComponent<Collider2D>();
float maxDistance = collider != null ? collider.bounds.extents.magnitude : 5f;
float normalizedDistance = Mathf.Clamp01(distance / maxDistance);
float maxDistance = collider != null ? collider.bounds.extents.y * 2f : 5f; // Use height, not diagonal
float normalizedDistance = Mathf.Clamp01(absYDistance / maxDistance);
float falloff = pullFalloff.Evaluate(1f - normalizedDistance);
forceMagnitude = pullStrength * falloff;
}
@@ -91,13 +100,16 @@ namespace Minigames.Airplane.Interactive
// Clamp force
forceMagnitude = Mathf.Min(forceMagnitude, maxPullForce);
// Apply force toward center
Vector2 pullForce = toCenter.normalized * forceMagnitude;
// Apply force ONLY in Y direction, toward the well's Y position
// If plane is below (yDistance > 0), pull up (+Y)
// If plane is above (yDistance < 0), pull down (-Y)
float yForceDirection = yDistance > 0 ? 1f : -1f;
Vector2 pullForce = new Vector2(0f, yForceDirection * forceMagnitude);
rb.AddForce(pullForce, ForceMode2D.Force);
if (showDebugLogs && Time.frameCount % 30 == 0) // Log every 30 frames
{
Debug.Log($"[AirplaneGravityWell] Pulling {other.name}: force={forceMagnitude:F2}, distance={distance:F2}");
Debug.Log($"[AirplaneGravityWell] Pulling {other.name}: force={forceMagnitude:F2} {(yForceDirection > 0 ? "UP" : "DOWN")}, Y-distance={absYDistance:F2}");
}
}

View File

@@ -40,7 +40,7 @@ namespace Minigames.Airplane.Interactive
if (rb != null)
{
Vector2 force = isWorldSpace ? windForce : transform.TransformDirection(windForce);
rb.AddForce(force * Time.fixedDeltaTime, ForceMode2D.Force);
rb.AddForce(force, ForceMode2D.Force);
if (showDebugLogs)
{

View File

@@ -0,0 +1,16 @@
namespace Minigames.Airplane.Interactive
{
/// <summary>
/// Interface for objects that need initialization after being spawned and positioned.
/// The spawn manager will call Initialize() after setting the object's position.
/// </summary>
public interface ISpawnInitializable
{
/// <summary>
/// Called by the spawn manager after the object has been instantiated and positioned.
/// Use this to cache position-dependent state instead of using Awake().
/// </summary>
void Initialize();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a4d1d877662847eeae0daa9fd4fa4788
timeCreated: 1765193296

View File

@@ -75,8 +75,8 @@ namespace Minigames.Airplane.Settings
[SerializeField] private float evaluationDuration = 1f;
[Header("Spawn System")]
[Tooltip("X position where dynamic spawning begins")]
[SerializeField] private float dynamicSpawnThreshold = 10f;
[Tooltip("Transform marker in scene where dynamic spawning begins (uses X position). If null, uses fallback distance.")]
[SerializeField] private Transform dynamicSpawnThresholdMarker;
[Tooltip("Minimum random distance for target spawn")]
[SerializeField] private float targetMinDistance = 30f;
@@ -84,11 +84,11 @@ namespace Minigames.Airplane.Settings
[Tooltip("Maximum random distance for target spawn")]
[SerializeField] private float targetMaxDistance = 50f;
[Tooltip("Minimum time interval between object spawns (seconds)")]
[SerializeField] private float objectSpawnMinInterval = 1f;
[Tooltip("Minimum distance between spawned objects (units)")]
[SerializeField] private float objectSpawnMinDistance = 5f;
[Tooltip("Maximum time interval between object spawns (seconds)")]
[SerializeField] private float objectSpawnMaxInterval = 3f;
[Tooltip("Maximum distance between spawned objects (units)")]
[SerializeField] private float objectSpawnMaxDistance = 20f;
[Tooltip("Ratio of positive to negative objects (0 = all negative, 1 = all positive)")]
[Range(0f, 1f)]
@@ -138,11 +138,10 @@ namespace Minigames.Airplane.Settings
public float IntroDuration => introDuration;
public float PersonIntroDuration => personIntroDuration;
public float EvaluationDuration => evaluationDuration;
public float DynamicSpawnThreshold => dynamicSpawnThreshold;
public float TargetMinDistance => targetMinDistance;
public float TargetMaxDistance => targetMaxDistance;
public float ObjectSpawnMinInterval => objectSpawnMinInterval;
public float ObjectSpawnMaxInterval => objectSpawnMaxInterval;
public float ObjectSpawnMinDistance => objectSpawnMinDistance;
public float ObjectSpawnMaxDistance => objectSpawnMaxDistance;
public float PositiveNegativeRatio => positiveNegativeRatio;
public float SpawnDistanceAhead => spawnDistanceAhead;
public float GroundSpawnInterval => groundSpawnInterval;

View File

@@ -78,11 +78,11 @@ MonoBehaviour:
introDuration: 2
personIntroDuration: 2
evaluationDuration: 2
dynamicSpawnThreshold: 50
targetMinDistance: 150
targetMaxDistance: 250
objectSpawnMinInterval: 0.5
objectSpawnMaxInterval: 1
dynamicSpawnThresholdMarker: {fileID: 0}
targetMinDistance: 500
targetMaxDistance: 1000
objectSpawnMinDistance: 5
objectSpawnMaxDistance: 30
positiveNegativeRatio: 0.5
spawnDistanceAhead: 50
groundSpawnInterval: 30

View File

@@ -3,10 +3,11 @@
--- !u!55 &1
PhysicsManager:
m_ObjectHideFlags: 0
serializedVersion: 13
serializedVersion: 20
m_Gravity: {x: 0, y: -9.81, z: 0}
m_DefaultMaterial: {fileID: 0}
m_BounceThreshold: 2
m_DefaultMaxDepenetrationVelocity: 10
m_SleepThreshold: 0.005
m_DefaultContactOffset: 0.01
m_DefaultSolverIterations: 6
@@ -16,11 +17,11 @@ PhysicsManager:
m_EnableAdaptiveForce: 0
m_ClothInterCollisionDistance: 0.1
m_ClothInterCollisionStiffness: 0.2
m_ContactsGeneration: 1
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_AutoSimulation: 1
m_LayerCollisionMatrix: ffffffffff7fffffff7fffffffffffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffffffffff0940ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_SimulationMode: 0
m_AutoSyncTransforms: 0
m_ReuseCollisionCallbacks: 1
m_InvokeCollisionCallbacks: 1
m_ClothInterCollisionSettingsToggle: 0
m_ClothGravity: {x: 0, y: -9.81, z: 0}
m_ContactPairsMode: 0
@@ -31,6 +32,10 @@ PhysicsManager:
m_WorldSubdivisions: 8
m_FrictionType: 0
m_EnableEnhancedDeterminism: 0
m_EnableUnifiedHeightmaps: 1
m_ImprovedPatchFriction: 0
m_GenerateOnTriggerStayEvents: 1
m_SolverType: 0
m_DefaultMaxAngularSpeed: 50
m_ScratchBufferChunkCount: 4
m_CurrentBackendId: 4072204805
m_FastMotionThreshold: 3.4028235e+38