Working item switcher
This commit is contained in:
101
Assets/Editor/ControllerSwitchItemEditor.cs
Normal file
101
Assets/Editor/ControllerSwitchItemEditor.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using Items;
|
||||
|
||||
namespace Editor
|
||||
{
|
||||
/// <summary>
|
||||
/// Custom editor for ControllerSwitchItem that shows only relevant fields based on camera switch mode.
|
||||
/// </summary>
|
||||
[CustomEditor(typeof(ControllerSwitchItem))]
|
||||
public class ControllerSwitchItemEditor : UnityEditor.Editor
|
||||
{
|
||||
private SerializedProperty _targetControllerName;
|
||||
private SerializedProperty _cameraSwitchMode;
|
||||
private SerializedProperty _targetVirtualCamera;
|
||||
private SerializedProperty _targetCameraState;
|
||||
private SerializedProperty _visualRepresentation;
|
||||
|
||||
// Base class properties
|
||||
private SerializedProperty _isOneTime;
|
||||
private SerializedProperty _cooldown;
|
||||
private SerializedProperty _characterToInteract;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
// Controller Switch Settings
|
||||
_targetControllerName = serializedObject.FindProperty("targetControllerName");
|
||||
_cameraSwitchMode = serializedObject.FindProperty("cameraSwitchMode");
|
||||
_targetVirtualCamera = serializedObject.FindProperty("targetVirtualCamera");
|
||||
_targetCameraState = serializedObject.FindProperty("targetCameraState");
|
||||
_visualRepresentation = serializedObject.FindProperty("visualRepresentation");
|
||||
|
||||
// Base class properties
|
||||
_isOneTime = serializedObject.FindProperty("isOneTime");
|
||||
_cooldown = serializedObject.FindProperty("cooldown");
|
||||
_characterToInteract = serializedObject.FindProperty("characterToInteract");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
// Draw script field (read-only)
|
||||
EditorGUI.BeginDisabledGroup(true);
|
||||
EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((MonoBehaviour)target), GetType(), false);
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Interaction Settings (from base class)
|
||||
EditorGUILayout.LabelField("Interaction Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(_isOneTime);
|
||||
EditorGUILayout.PropertyField(_cooldown);
|
||||
EditorGUILayout.PropertyField(_characterToInteract);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Controller Switch Settings
|
||||
EditorGUILayout.LabelField("Controller Switch Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(_targetControllerName);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Camera Settings
|
||||
EditorGUILayout.LabelField("Camera Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(_cameraSwitchMode);
|
||||
|
||||
// Show relevant camera fields based on mode
|
||||
CameraSwitchMode mode = (CameraSwitchMode)_cameraSwitchMode.enumValueIndex;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case CameraSwitchMode.None:
|
||||
EditorGUILayout.HelpBox("No camera switching will occur. Only the controller will be switched.", MessageType.Info);
|
||||
break;
|
||||
|
||||
case CameraSwitchMode.DirectReference:
|
||||
EditorGUILayout.PropertyField(_targetVirtualCamera);
|
||||
if (_targetVirtualCamera.objectReferenceValue == null)
|
||||
{
|
||||
EditorGUILayout.HelpBox("Assign a Cinemachine camera to blend to when switching controllers.", MessageType.Warning);
|
||||
}
|
||||
break;
|
||||
|
||||
case CameraSwitchMode.TrashMazeCameraState:
|
||||
EditorGUILayout.PropertyField(_targetCameraState);
|
||||
EditorGUILayout.HelpBox("Uses TrashMazeCameraController to switch camera state. Make sure TrashMazeCameraController is present in the scene.", MessageType.Info);
|
||||
break;
|
||||
}
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Visual Feedback
|
||||
EditorGUILayout.LabelField("Visual Feedback", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(_visualRepresentation);
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3
Assets/Editor/ControllerSwitchItemEditor.cs.meta
Normal file
3
Assets/Editor/ControllerSwitchItemEditor.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e193f0999dad43a4a15ace4245249070
|
||||
timeCreated: 1765750391
|
||||
173
Assets/Prefabs/Levels/Dump/ControllerSwitchItem.prefab
Normal file
173
Assets/Prefabs/Levels/Dump/ControllerSwitchItem.prefab
Normal file
@@ -0,0 +1,173 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1190045438452732069
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1136290793271151494}
|
||||
- component: {fileID: 5320225058563658919}
|
||||
- component: {fileID: 7813271480623895155}
|
||||
- component: {fileID: 6196606079257550}
|
||||
m_Layer: 0
|
||||
m_Name: ControllerSwitchItem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1136290793271151494
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1190045438452732069}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -56, y: -38.8, z: 0}
|
||||
m_LocalScale: {x: 10, y: 10, z: 10}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &5320225058563658919
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1190045438452732069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 915abd653d714ea3ae11bbf14feafb1e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Items.ControllerSwitchItem
|
||||
isOneTime: 0
|
||||
cooldown: -1
|
||||
characterToInteract: 2
|
||||
interactionStarted:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
interactionInterrupted:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
characterArrived:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
interactionComplete:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
targetControllerName: pulver
|
||||
cameraSwitchMode: 2
|
||||
targetVirtualCamera: {fileID: 0}
|
||||
targetCameraState: 1
|
||||
visualRepresentation: {fileID: 0}
|
||||
--- !u!212 &7813271480623895155
|
||||
SpriteRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1190045438452732069}
|
||||
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: 2636902231072113825, guid: ee014bd71cac2bc4ab845f435726f383, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 0.42, y: 0.42}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!61 &6196606079257550
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1190045438452732069}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: -0.002767995, y: -0.000000022351742}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 0.42, y: 0.42}
|
||||
newSize: {x: 0.42, y: 0.42}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 0.44087836, y: 0.440879}
|
||||
m_EdgeRadius: 0
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67a60833f9f205940a2308bd74a2863e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -65,7 +65,8 @@ MonoBehaviour:
|
||||
itemData: {fileID: 11400000, guid: ba611946a9f3d5d4784bd16d7061c2c6, type: 2}
|
||||
iconRenderer: {fileID: 0}
|
||||
slottedItemRenderers:
|
||||
- {fileID: 853265584245318634}
|
||||
- renderer: {fileID: 0}
|
||||
assignedItem: {fileID: 0}
|
||||
onItemSlotted:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -173,6 +174,7 @@ Transform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &853265584245318634
|
||||
SpriteRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -218,6 +220,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
@@ -227,5 +230,4 @@ SpriteRenderer:
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 0
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
|
||||
@@ -37,6 +37,7 @@ Transform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &1054160620432813893
|
||||
SpriteRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -82,6 +83,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_MaskInteraction: 0
|
||||
m_Sprite: {fileID: -5380470264793805610, guid: 9aee36bc2f2ec8248ad3db30306aa7f4, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
@@ -91,7 +93,6 @@ SpriteRenderer:
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!61 &3660267275524594777
|
||||
BoxCollider2D:
|
||||
|
||||
@@ -36,6 +36,7 @@ Transform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &4945860249160435993
|
||||
SpriteRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -81,6 +82,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_Sprite: {fileID: -6493275343144376112, guid: f3e1e24212ad86445b362335713279bd, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
@@ -90,7 +92,6 @@ SpriteRenderer:
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!114 &7255725277252707145
|
||||
MonoBehaviour:
|
||||
|
||||
@@ -37,6 +37,7 @@ Transform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &5787940828305859459
|
||||
SpriteRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -82,6 +83,7 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_MaskInteraction: 0
|
||||
m_Sprite: {fileID: 3212686851042344676, guid: 2c96f5ba929679d47ad402a4eda5bd9f, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
@@ -91,7 +93,6 @@ SpriteRenderer:
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!61 &1572163134238919128
|
||||
BoxCollider2D:
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -119,6 +119,58 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &5147847
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5147849}
|
||||
- component: {fileID: 5147848}
|
||||
m_Layer: 0
|
||||
m_Name: DumpCameraController
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &5147848
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5147847}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d058b159d0aa43699eaba263b7b8c5a7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Minigames.TrashMaze.Core.TrashMazeCameraController
|
||||
cameraMappings:
|
||||
- state: 0
|
||||
camera: {fileID: 2103114177}
|
||||
- state: 1
|
||||
camera: {fileID: 1690472046}
|
||||
inactivePriority: 10
|
||||
activePriority: 20
|
||||
showDebugLogs: 0
|
||||
--- !u!4 &5147849
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5147847}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -66.9, y: -40.7, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &23203128 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 7505978346893227813, guid: 36d49e1cd1f38804c8591fd144f48b72, type: 3}
|
||||
@@ -186,6 +238,37 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3499494416280268040, guid: 1c27816d9f5015b448a200e36c995043, type: 3}
|
||||
m_PrefabInstance: {fileID: 29742643}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &34947687
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 34947688}
|
||||
m_Layer: 0
|
||||
m_Name: FinishPoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &34947688
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 34947687}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -2.8, y: 32.3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1111361130}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &41986006 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 5360561736303445077, guid: dcda7fd2bd8ad30489e098a14693e473, type: 3}
|
||||
@@ -770,7 +853,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
version: 1
|
||||
data:
|
||||
dataString: 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
|
||||
dataString: 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
|
||||
upgradeData:
|
||||
file_cachedStartup: {fileID: 0}
|
||||
data_cachedStartup:
|
||||
@@ -361542,6 +361625,37 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1458769425990077550, guid: 469fbb00b3be9f644966b7147e2368c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 334950342}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &335178887
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 335178888}
|
||||
m_Layer: 0
|
||||
m_Name: StartPoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &335178888
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 335178887}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -2.88557, y: -13.7, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1111361130}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &338219923
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -362172,6 +362286,37 @@ PrefabInstance:
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 50d0f26cee57ad44995cad1197251b16, type: 3}
|
||||
--- !u!1 &431233784
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 431233785}
|
||||
m_Layer: 0
|
||||
m_Name: ------ Cameras ------
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &431233785
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 431233784}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 175.12367, y: -0.92712, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &448236758
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -362458,6 +362603,74 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
|
||||
--- !u!1001 &493264642
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 184.28
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -9.81
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7654873269754452578, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Pulver
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
--- !u!114 &493264643 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 2461082630725827914, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
m_PrefabInstance: {fileID: 493264642}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Minigames.TrashMaze.Core.PulverController
|
||||
--- !u!4 &493950724 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3499494416280268040, guid: 1c27816d9f5015b448a200e36c995043, type: 3}
|
||||
@@ -363206,6 +363419,71 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
|
||||
--- !u!1001 &612593024
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 185.3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 37.7
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1190045438452732069, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: ControllerSwitchItem_To_trafalgar
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5320225058563658919, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: targetCameraState
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5320225058563658919, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: targetControllerName
|
||||
value: trafalgar
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
--- !u!1001 &616993880
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -364370,6 +364648,37 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
|
||||
--- !u!1 &826431952
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 826431953}
|
||||
m_Layer: 0
|
||||
m_Name: ------ MazeSwitchers ------
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &826431953
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 826431952}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 175.12367, y: -0.92712, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &839347111
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -365633,6 +365942,55 @@ PrefabInstance:
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 301b4e0735896334f8f6fb9a68a7e419, type: 3}
|
||||
--- !u!1 &1111361128
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1111361130}
|
||||
- component: {fileID: 1111361129}
|
||||
m_Layer: 0
|
||||
m_Name: TrashMazeController
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1111361129
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1111361128}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Minigames.TrashMaze.Core.TrashMazeController
|
||||
pulverController: {fileID: 493264643}
|
||||
backgroundRenderer: {fileID: 1701992366}
|
||||
exitPosition: {fileID: 34947688}
|
||||
--- !u!4 &1111361130
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1111361128}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 187.48558, y: 2.0999997, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 335178888}
|
||||
- {fileID: 34947688}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1113000891
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -366477,6 +366835,63 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3884669386103494027, guid: e20c4621326ab1e48b0187eb4ca2e66e, type: 3}
|
||||
m_PrefabInstance: {fileID: 1405629637}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &1416739373
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -60.1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -43.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1136290793271151494, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1190045438452732069, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: ControllerSwitchItem_To_pulver
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 67a60833f9f205940a2308bd74a2863e, type: 3}
|
||||
--- !u!1001 &1427164836
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -366614,6 +367029,37 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3884669386103494027, guid: e20c4621326ab1e48b0187eb4ca2e66e, type: 3}
|
||||
m_PrefabInstance: {fileID: 1444001722}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1451084252
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1451084253}
|
||||
m_Layer: 0
|
||||
m_Name: ------ Trash Maze ------
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1451084253
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1451084252}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 175.12367, y: -0.92712, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1484046230
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -367012,6 +367458,11 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
|
||||
--- !u!4 &1566161568 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2771277034307921359, guid: 182ee38fc449c6342b8a401844067b5b, type: 3}
|
||||
m_PrefabInstance: {fileID: 493264642}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &1573072336
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -367240,6 +367691,147 @@ PrefabInstance:
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: e4ab560cbfa84ee498cc2db130671c25, type: 3}
|
||||
--- !u!1 &1690472042
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1690472047}
|
||||
- component: {fileID: 1690472046}
|
||||
- component: {fileID: 1690472045}
|
||||
- component: {fileID: 1690472044}
|
||||
- component: {fileID: 1690472043}
|
||||
m_Layer: 0
|
||||
m_Name: TrashMazeCamera
|
||||
m_TagString: MainCinemachineCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1690472043
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1690472042}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 00b2d199b96b516448144ab30fb26aed, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineImpulseListener
|
||||
ApplyAfter: 2
|
||||
ChannelMask: 1
|
||||
Gain: 1
|
||||
Use2DDistance: 0
|
||||
UseCameraSpace: 1
|
||||
SignalCombinationMode: 0
|
||||
ReactionSettings:
|
||||
m_SecondaryNoise: {fileID: 0}
|
||||
AmplitudeGain: 1
|
||||
FrequencyGain: 1
|
||||
Duration: 1
|
||||
m_NoiseOffsets: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1690472044
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1690472042}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f453f694addf4275988fac205bc91968, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
BoundingShape2D: {fileID: 0}
|
||||
Damping: 3
|
||||
SlowingDistance: 20
|
||||
OversizeWindow:
|
||||
Enabled: 0
|
||||
MaxWindowSize: 0
|
||||
Padding: 0
|
||||
m_LegacyMaxWindowSize: -2
|
||||
--- !u!114 &1690472045
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1690472042}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b617507da6d07e749b7efdb34e1173e1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
TrackerSettings:
|
||||
BindingMode: 4
|
||||
PositionDamping: {x: 2, y: 0.5, z: 1}
|
||||
AngularDampingMode: 0
|
||||
RotationDamping: {x: 1, y: 1, z: 1}
|
||||
QuaternionDamping: 1
|
||||
FollowOffset: {x: 0, y: 0, z: -10}
|
||||
--- !u!114 &1690472046
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1690472042}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Priority:
|
||||
Enabled: 0
|
||||
m_Value: 0
|
||||
OutputChannel: 1
|
||||
StandbyUpdate: 2
|
||||
m_StreamingVersion: 20241001
|
||||
m_LegacyPriority: 0
|
||||
Target:
|
||||
TrackingTarget: {fileID: 1566161568}
|
||||
LookAtTarget: {fileID: 0}
|
||||
CustomLookAtTarget: 0
|
||||
Lens:
|
||||
FieldOfView: 60
|
||||
OrthographicSize: 20
|
||||
NearClipPlane: 0.3
|
||||
FarClipPlane: 1000
|
||||
Dutch: 0
|
||||
ModeOverride: 0
|
||||
PhysicalProperties:
|
||||
GateFit: 2
|
||||
SensorSize: {x: 21.946, y: 16.002}
|
||||
LensShift: {x: 0, y: 0}
|
||||
FocusDistance: 10
|
||||
Iso: 200
|
||||
ShutterSpeed: 0.005
|
||||
Aperture: 16
|
||||
BladeCount: 5
|
||||
Curvature: {x: 2, y: 11}
|
||||
BarrelClipping: 0.25
|
||||
Anamorphism: 0
|
||||
BlendHint: 0
|
||||
--- !u!4 &1690472047
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1690472042}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 184.28, y: -9.81, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1690809371
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -367310,11 +367902,154 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3499494416280268040, guid: 1c27816d9f5015b448a200e36c995043, type: 3}
|
||||
m_PrefabInstance: {fileID: 1690809371}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &1701992365
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 20851209822974582, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MazeBackground
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6548959094921542577, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_SortingLayer
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6548959094921542577, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6548959094921542577, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_SortingLayerID
|
||||
value: 622133659
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 184.6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 13.7
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8861526539906903110, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
--- !u!212 &1701992366 stripped
|
||||
SpriteRenderer:
|
||||
m_CorrespondingSourceObject: {fileID: 6548959094921542577, guid: fe50f047edb550d4986d997281ffc47a, type: 3}
|
||||
m_PrefabInstance: {fileID: 1701992365}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &1712404259 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3499494416280268040, guid: 1c27816d9f5015b448a200e36c995043, type: 3}
|
||||
m_PrefabInstance: {fileID: 292696029}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &1712644079
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 397845239581813408, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: revealMode
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6259373434446242904, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: RevealableObject_Partial
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6487644332527623320, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6487644332527623320, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 6e053220514a0c64883d9484863533fe, type: 2}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 184.6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 13.889999
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
--- !u!1 &1735776550
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -367360,6 +368095,67 @@ Transform:
|
||||
- {fileID: 260349091}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1771691613
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 6259373434446242904, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: RevealableObject_Full_2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6487644332527623320, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 198.24
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 2.5599997
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
--- !u!4 &1775262587 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 5303771230948604080, guid: 50d0f26cee57ad44995cad1197251b16, type: 3}
|
||||
@@ -368751,7 +369547,7 @@ GameObject:
|
||||
- component: {fileID: 2103114176}
|
||||
- component: {fileID: 2103114175}
|
||||
m_Layer: 0
|
||||
m_Name: CinemachineCamera
|
||||
m_Name: MainCamera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@@ -368978,13 +369774,73 @@ BoxCollider2D:
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 45.183933, y: 20.4}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1001 &2138951778
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 6259373434446242904, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: RevealableObject_Full
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6487644332527623320, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 171.13
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 3.4699996
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7983424933738472089, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 07f826f001311e04984c3efc9ee2b897, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1810521061}
|
||||
- {fileID: 580848255}
|
||||
- {fileID: 2103114178}
|
||||
- {fileID: 1735776552}
|
||||
- {fileID: 258612753}
|
||||
- {fileID: 1106881402}
|
||||
@@ -368997,3 +369853,17 @@ SceneRoots:
|
||||
- {fileID: 1029164886}
|
||||
- {fileID: 932492929}
|
||||
- {fileID: 1648470975}
|
||||
- {fileID: 431233785}
|
||||
- {fileID: 5147849}
|
||||
- {fileID: 2103114178}
|
||||
- {fileID: 1690472047}
|
||||
- {fileID: 826431953}
|
||||
- {fileID: 1416739373}
|
||||
- {fileID: 612593024}
|
||||
- {fileID: 1451084253}
|
||||
- {fileID: 1111361130}
|
||||
- {fileID: 1701992365}
|
||||
- {fileID: 2138951778}
|
||||
- {fileID: 1712644079}
|
||||
- {fileID: 1771691613}
|
||||
- {fileID: 493264642}
|
||||
|
||||
@@ -67,13 +67,6 @@ namespace Input
|
||||
{
|
||||
base.OnManagedStart();
|
||||
|
||||
// Register with InputManager
|
||||
if (InputManager.Instance != null)
|
||||
{
|
||||
InputManager.Instance.SetDefaultConsumer(this);
|
||||
Logging.Debug($"[{GetType().Name}] Registered as default input consumer");
|
||||
}
|
||||
|
||||
_logVerbosity = DeveloperSettingsProvider.Instance.GetSettings<DebugSettings>().inputLogVerbosity;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,9 @@ namespace Input
|
||||
// Track which consumer is handling the current hold operation
|
||||
private ITouchInputConsumer _activeHoldConsumer;
|
||||
|
||||
// Controller registration system
|
||||
private readonly Dictionary<string, ITouchInputConsumer> _registeredControllers = new Dictionary<string, ITouchInputConsumer>();
|
||||
|
||||
/// <summary>
|
||||
/// Singleton instance of the InputManager. No longer creates an instance if one doesn't exist.
|
||||
/// </summary>
|
||||
@@ -408,5 +411,116 @@ namespace Input
|
||||
consumer.OnTap(worldPos);
|
||||
return true;
|
||||
}
|
||||
|
||||
#region Controller Registration System
|
||||
|
||||
/// <summary>
|
||||
/// Registers a controller with a unique name for later switching.
|
||||
/// </summary>
|
||||
/// <param name="controllerName">Unique name for the controller</param>
|
||||
/// <param name="controller">The controller instance to register</param>
|
||||
/// <param name="setAsDefaultConsumer">If true, sets this controller as the default input consumer</param>
|
||||
public void RegisterController(string controllerName, ITouchInputConsumer controller, bool setAsDefaultConsumer = false)
|
||||
{
|
||||
if (string.IsNullOrEmpty(controllerName))
|
||||
{
|
||||
Debug.LogError("[InputManager] Cannot register controller with null or empty name.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (controller == null)
|
||||
{
|
||||
Debug.LogError($"[InputManager] Cannot register null controller for name: {controllerName}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_registeredControllers.ContainsKey(controllerName))
|
||||
{
|
||||
Debug.LogWarning($"[InputManager] Controller with name '{controllerName}' is already registered. Overwriting.");
|
||||
}
|
||||
|
||||
_registeredControllers[controllerName] = controller;
|
||||
Logging.Debug($"Controller registered: {controllerName}");
|
||||
|
||||
if (setAsDefaultConsumer)
|
||||
{
|
||||
SetDefaultConsumer(controller);
|
||||
Logging.Debug($"Controller '{controllerName}' set as default consumer.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unregisters a controller by name.
|
||||
/// </summary>
|
||||
/// <param name="controllerName">Name of the controller to unregister</param>
|
||||
public void UnregisterController(string controllerName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(controllerName))
|
||||
{
|
||||
Debug.LogError("[InputManager] Cannot unregister controller with null or empty name.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_registeredControllers.Remove(controllerName))
|
||||
{
|
||||
Logging.Debug($"Controller unregistered: {controllerName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"[InputManager] Attempted to unregister non-existent controller: {controllerName}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a registered controller by name.
|
||||
/// </summary>
|
||||
/// <param name="controllerName">Name of the controller to retrieve</param>
|
||||
/// <returns>The controller if found, null otherwise</returns>
|
||||
public ITouchInputConsumer GetController(string controllerName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(controllerName))
|
||||
{
|
||||
Debug.LogError("[InputManager] Cannot get controller with null or empty name.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (_registeredControllers.TryGetValue(controllerName, out ITouchInputConsumer controller))
|
||||
{
|
||||
return controller;
|
||||
}
|
||||
|
||||
Debug.LogWarning($"[InputManager] Controller not found: {controllerName}");
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Switches to a registered controller by name, setting it as the default consumer.
|
||||
/// </summary>
|
||||
/// <param name="controllerName">Name of the controller to switch to</param>
|
||||
/// <returns>True if the switch was successful, false otherwise</returns>
|
||||
public bool SwitchToController(string controllerName)
|
||||
{
|
||||
ITouchInputConsumer controller = GetController(controllerName);
|
||||
if (controller != null)
|
||||
{
|
||||
SetDefaultConsumer(controller);
|
||||
Logging.Debug($"Switched to controller: {controllerName}");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a controller with the given name is registered.
|
||||
/// </summary>
|
||||
/// <param name="controllerName">Name to check</param>
|
||||
/// <returns>True if registered, false otherwise</returns>
|
||||
public bool IsControllerRegistered(string controllerName)
|
||||
{
|
||||
return !string.IsNullOrEmpty(controllerName) && _registeredControllers.ContainsKey(controllerName);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,18 @@ namespace Input
|
||||
_movementSettings = configs.DefaultPlayerMovement;
|
||||
}
|
||||
|
||||
internal override void OnManagedStart()
|
||||
{
|
||||
base.OnManagedStart();
|
||||
|
||||
// Register with InputManager as default consumer
|
||||
if (InputManager.Instance != null)
|
||||
{
|
||||
InputManager.Instance.RegisterController("trafalgar", this, setAsDefaultConsumer: true);
|
||||
Logging.Debug($"[PlayerTouchController] Registered controller '{gameObject.name}' as default consumer");
|
||||
}
|
||||
}
|
||||
|
||||
#region ITouchInputConsumer Overrides (Add InterruptMoveTo)
|
||||
|
||||
public override void OnTap(Vector2 worldPosition)
|
||||
|
||||
318
Assets/Scripts/Interactions/ControllerSwitchItem.cs
Normal file
318
Assets/Scripts/Interactions/ControllerSwitchItem.cs
Normal file
@@ -0,0 +1,318 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Core;
|
||||
using Input;
|
||||
using Interactions;
|
||||
using Minigames.TrashMaze.Core;
|
||||
using Minigames.TrashMaze.Data;
|
||||
using Unity.Cinemachine;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Items
|
||||
{
|
||||
/// <summary>
|
||||
/// Saveable data for ControllerSwitchItem state
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class ControllerSwitchItemSaveData
|
||||
{
|
||||
public bool hasBeenUsed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Camera switching mode for controller switch items
|
||||
/// </summary>
|
||||
public enum CameraSwitchMode
|
||||
{
|
||||
/// <summary>
|
||||
/// No camera switching - controller switch only
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Use a direct reference to a Cinemachine camera
|
||||
/// </summary>
|
||||
DirectReference,
|
||||
|
||||
/// <summary>
|
||||
/// Use TrashMazeCameraController state manager API
|
||||
/// </summary>
|
||||
TrashMazeCameraState
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// An interactable item that switches control from one character controller to another.
|
||||
/// When clicked:
|
||||
/// 1. The selected character moves to this item's position
|
||||
/// 2. Upon arrival, the current controller is disabled
|
||||
/// 3. Camera blends to the target camera (based on camera mode)
|
||||
/// 4. Once the blend completes, control switches to the target controller
|
||||
/// </summary>
|
||||
public class ControllerSwitchItem : SaveableInteractable
|
||||
{
|
||||
[Header("Controller Switch Settings")]
|
||||
[Tooltip("Name of the controller to switch to (must match GameObject name of the controller)")]
|
||||
[SerializeField] private string targetControllerName;
|
||||
|
||||
[Header("Camera Settings")]
|
||||
[Tooltip("How to switch the camera when changing controllers")]
|
||||
[SerializeField] private CameraSwitchMode cameraSwitchMode = CameraSwitchMode.None;
|
||||
|
||||
[Tooltip("Direct camera reference (only used if Camera Switch Mode is DirectReference)")]
|
||||
[SerializeField] private CinemachineCamera targetVirtualCamera;
|
||||
|
||||
[Tooltip("Target camera state (only used if Camera Switch Mode is TrashMazeCameraState)")]
|
||||
[SerializeField] private TrashMazeCameraState targetCameraState;
|
||||
|
||||
[Header("Visual Feedback")]
|
||||
[Tooltip("Visual representation to hide after use (optional)")]
|
||||
[SerializeField] private GameObject visualRepresentation;
|
||||
|
||||
// State
|
||||
private bool _hasBeenUsed;
|
||||
private PlayerTouchController _currentPlayerController;
|
||||
private bool _isSwitching;
|
||||
|
||||
public override string SaveId => $"{gameObject.scene.name}/ControllerSwitchItem/{gameObject.name}";
|
||||
|
||||
internal override void OnManagedAwake()
|
||||
{
|
||||
base.OnManagedAwake();
|
||||
|
||||
if (string.IsNullOrEmpty(targetControllerName))
|
||||
{
|
||||
Debug.LogError($"[ControllerSwitchItem] {gameObject.name} has no target controller name specified!");
|
||||
}
|
||||
}
|
||||
|
||||
internal override void OnManagedStart()
|
||||
{
|
||||
base.OnManagedStart();
|
||||
|
||||
// Apply state after restoration
|
||||
if (_hasBeenUsed && isOneTime)
|
||||
{
|
||||
DisableVisual();
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool CanBeClicked()
|
||||
{
|
||||
// Cannot be clicked if already used (one-time) or if currently switching
|
||||
if (_isSwitching)
|
||||
return false;
|
||||
|
||||
if (isOneTime && _hasBeenUsed)
|
||||
return false;
|
||||
|
||||
// Check if target controller is registered
|
||||
if (!InputManager.Instance.IsControllerRegistered(targetControllerName))
|
||||
{
|
||||
Debug.LogWarning($"[ControllerSwitchItem] Target controller '{targetControllerName}' is not registered with InputManager.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.CanBeClicked();
|
||||
}
|
||||
|
||||
protected override bool DoInteraction()
|
||||
{
|
||||
if (_isSwitching)
|
||||
return false;
|
||||
|
||||
// By the time this is called, the interacting character has already arrived at this item
|
||||
// We just need to perform the controller/camera switch
|
||||
|
||||
Logging.Debug("[ControllerSwitchItem] Starting controller switch sequence");
|
||||
|
||||
// Start the async switch sequence (camera blend + controller switch)
|
||||
StartCoroutine(SwitchControllerSequence());
|
||||
|
||||
// Return true immediately - interaction is considered successful
|
||||
// The coroutine will handle the actual switching asynchronously
|
||||
return true;
|
||||
}
|
||||
|
||||
private IEnumerator SwitchControllerSequence()
|
||||
{
|
||||
_isSwitching = true;
|
||||
|
||||
// Step 1: Get current player controller (the one we're switching FROM)
|
||||
_currentPlayerController = FindFirstObjectByType<PlayerTouchController>();
|
||||
if (_currentPlayerController == null)
|
||||
{
|
||||
Debug.LogError("[ControllerSwitchItem] Could not find PlayerTouchController in scene!");
|
||||
_isSwitching = false;
|
||||
yield break;
|
||||
}
|
||||
|
||||
Logging.Debug("[ControllerSwitchItem] Character has arrived, beginning switch");
|
||||
|
||||
// Step 2: Disable current player controller
|
||||
_currentPlayerController.enabled = false;
|
||||
Logging.Debug("[ControllerSwitchItem] Disabled current player controller");
|
||||
|
||||
// Step 3: Blend to target camera based on mode
|
||||
yield return SwitchCamera();
|
||||
|
||||
// Step 4: Switch to target controller
|
||||
ITouchInputConsumer targetController = InputManager.Instance.GetController(targetControllerName);
|
||||
if (targetController != null)
|
||||
{
|
||||
// Enable the target controller if it's a MonoBehaviour
|
||||
if (targetController is MonoBehaviour targetMono)
|
||||
{
|
||||
targetMono.enabled = true;
|
||||
Logging.Debug($"[ControllerSwitchItem] Enabled target controller: {targetControllerName}");
|
||||
}
|
||||
|
||||
// Switch input control to the target controller
|
||||
bool switchSuccess = InputManager.Instance.SwitchToController(targetControllerName);
|
||||
|
||||
if (switchSuccess)
|
||||
{
|
||||
Logging.Debug($"[ControllerSwitchItem] Successfully switched input to controller: {targetControllerName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"[ControllerSwitchItem] Failed to switch to controller: {targetControllerName}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"[ControllerSwitchItem] Target controller '{targetControllerName}' not found!");
|
||||
}
|
||||
|
||||
// Step 5: Mark as used if one-time use
|
||||
if (isOneTime)
|
||||
{
|
||||
_hasBeenUsed = true;
|
||||
DisableVisual();
|
||||
}
|
||||
|
||||
_isSwitching = false;
|
||||
}
|
||||
|
||||
private IEnumerator SwitchCamera()
|
||||
{
|
||||
switch (cameraSwitchMode)
|
||||
{
|
||||
case CameraSwitchMode.None:
|
||||
// No camera switching
|
||||
Logging.Debug("[ControllerSwitchItem] No camera switching configured");
|
||||
break;
|
||||
|
||||
case CameraSwitchMode.DirectReference:
|
||||
if (targetVirtualCamera != null)
|
||||
{
|
||||
Logging.Debug($"[ControllerSwitchItem] Blending to camera: {targetVirtualCamera.name}");
|
||||
|
||||
// Set the target camera as highest priority
|
||||
targetVirtualCamera.Priority = 100;
|
||||
|
||||
// Wait for camera blend to complete
|
||||
yield return WaitForCameraBlend();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[ControllerSwitchItem] DirectReference mode selected but no camera assigned!");
|
||||
}
|
||||
break;
|
||||
|
||||
case CameraSwitchMode.TrashMazeCameraState:
|
||||
if (TrashMazeCameraController.Instance != null)
|
||||
{
|
||||
Logging.Debug($"[ControllerSwitchItem] Switching to camera state: {targetCameraState}");
|
||||
|
||||
// Use the state manager API
|
||||
if (targetCameraState == TrashMazeCameraState.Gameplay)
|
||||
{
|
||||
TrashMazeCameraController.Instance.SwitchToGameplay();
|
||||
}
|
||||
else if (targetCameraState == TrashMazeCameraState.Maze)
|
||||
{
|
||||
TrashMazeCameraController.Instance.SwitchToMaze();
|
||||
}
|
||||
|
||||
// Wait for camera blend to complete
|
||||
yield return WaitForCameraBlend();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("[ControllerSwitchItem] TrashMazeCameraController instance not found in scene!");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator WaitForCameraBlend()
|
||||
{
|
||||
CinemachineBrain brain = Camera.main?.GetComponent<CinemachineBrain>();
|
||||
if (brain != null)
|
||||
{
|
||||
// Wait until blend is not active
|
||||
while (brain.IsBlending)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
|
||||
Logging.Debug("[ControllerSwitchItem] Camera blend completed");
|
||||
}
|
||||
else
|
||||
{
|
||||
// If no brain, just wait a brief moment
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableVisual()
|
||||
{
|
||||
if (visualRepresentation != null)
|
||||
{
|
||||
visualRepresentation.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
#region Save/Load
|
||||
|
||||
protected override object GetSerializableState()
|
||||
{
|
||||
return new ControllerSwitchItemSaveData
|
||||
{
|
||||
hasBeenUsed = _hasBeenUsed
|
||||
};
|
||||
}
|
||||
|
||||
protected override void ApplySerializableState(string serializedData)
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = JsonUtility.FromJson<ControllerSwitchItemSaveData>(serializedData);
|
||||
_hasBeenUsed = data.hasBeenUsed;
|
||||
Logging.Debug($"[ControllerSwitchItem] Restored state: hasBeenUsed={_hasBeenUsed}");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"[ControllerSwitchItem] Failed to deserialize save data: {e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnValidate()
|
||||
{
|
||||
// Visual feedback in editor
|
||||
if (string.IsNullOrEmpty(targetControllerName))
|
||||
{
|
||||
name = "ControllerSwitchItem (UNCONFIGURED)";
|
||||
}
|
||||
else
|
||||
{
|
||||
name = $"ControllerSwitchItem_To_{targetControllerName}";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
3
Assets/Scripts/Interactions/ControllerSwitchItem.cs.meta
Normal file
3
Assets/Scripts/Interactions/ControllerSwitchItem.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 915abd653d714ea3ae11bbf14feafb1e
|
||||
timeCreated: 1765747971
|
||||
@@ -56,7 +56,10 @@ public class GlowOutline : ManagedBehaviour
|
||||
|
||||
foreach (SpriteRenderer childSprite in childrenSprites)
|
||||
{
|
||||
if (itemSprite.sprite != null)
|
||||
if (!itemSprite)
|
||||
continue;
|
||||
|
||||
if (itemSprite?.sprite != null)
|
||||
{
|
||||
childSprite.sprite = itemSprite.sprite;
|
||||
childSprite.material = outlineMaterial;
|
||||
|
||||
3
Assets/Scripts/Items.meta
Normal file
3
Assets/Scripts/Items.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44bf6c911c674dc98cc5a06ad14c7d56
|
||||
timeCreated: 1765747971
|
||||
@@ -52,6 +52,18 @@ namespace Minigames.TrashMaze.Core
|
||||
Logging.Debug($"[PulverController] Loaded vision radius from settings: {_visionRadius}");
|
||||
}
|
||||
|
||||
internal override void OnManagedStart()
|
||||
{
|
||||
base.OnManagedStart();
|
||||
|
||||
// Register with InputManager (not as default consumer)
|
||||
if (InputManager.Instance != null)
|
||||
{
|
||||
InputManager.Instance.RegisterController("pulver", this, setAsDefaultConsumer: false);
|
||||
Logging.Debug($"[PulverController] Registered controller '{gameObject.name}'");
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update(); // Call base for movement and animation
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
using Common.Camera;
|
||||
using Core;
|
||||
using Minigames.TrashMaze.Data;
|
||||
using Unity.Cinemachine;
|
||||
|
||||
namespace Minigames.TrashMaze.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Manages camera states for the Trash Maze minigame.
|
||||
/// Handles transitions between Gameplay (level exploration) and Maze (inside maze exploration) cameras.
|
||||
/// Provides singleton access for easy camera switching from items and other systems.
|
||||
/// </summary>
|
||||
public class TrashMazeCameraController : CameraStateManager<TrashMazeCameraState>
|
||||
{
|
||||
#region Singleton
|
||||
|
||||
private static TrashMazeCameraController _instance;
|
||||
|
||||
/// <summary>
|
||||
/// Singleton instance of the camera controller
|
||||
/// </summary>
|
||||
public static TrashMazeCameraController Instance => _instance;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Lifecycle
|
||||
|
||||
internal override void OnManagedAwake()
|
||||
{
|
||||
// Base class handles InitializeCameraMap() and ValidateCameras()
|
||||
base.OnManagedAwake();
|
||||
|
||||
// Set singleton
|
||||
if (_instance != null && _instance != this)
|
||||
{
|
||||
Logging.Warning("[TrashMazeCameraController] Multiple instances detected! Destroying duplicate.");
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
_instance = this;
|
||||
}
|
||||
|
||||
internal override void OnManagedStart()
|
||||
{
|
||||
base.OnManagedStart();
|
||||
|
||||
// Start in gameplay camera by default
|
||||
SwitchToGameplay();
|
||||
}
|
||||
|
||||
internal override void OnManagedDestroy()
|
||||
{
|
||||
base.OnManagedDestroy();
|
||||
|
||||
if (_instance == this)
|
||||
{
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public API
|
||||
|
||||
/// <summary>
|
||||
/// Switch to the main gameplay camera (level exploration)
|
||||
/// </summary>
|
||||
public void SwitchToGameplay()
|
||||
{
|
||||
SwitchToState(TrashMazeCameraState.Gameplay);
|
||||
|
||||
if (showDebugLogs)
|
||||
Logging.Debug("[TrashMazeCameraController] Switched to Gameplay camera");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Switch to the maze camera (inside maze exploration)
|
||||
/// </summary>
|
||||
public void SwitchToMaze()
|
||||
{
|
||||
SwitchToState(TrashMazeCameraState.Maze);
|
||||
|
||||
if (showDebugLogs)
|
||||
Logging.Debug("[TrashMazeCameraController] Switched to Maze camera");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the gameplay camera
|
||||
/// </summary>
|
||||
public CinemachineCamera GetGameplayCamera()
|
||||
{
|
||||
return GetCamera(TrashMazeCameraState.Gameplay);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the maze camera
|
||||
/// </summary>
|
||||
public CinemachineCamera GetMazeCamera()
|
||||
{
|
||||
return GetCamera(TrashMazeCameraState.Maze);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d058b159d0aa43699eaba263b7b8c5a7
|
||||
timeCreated: 1765749988
|
||||
@@ -13,8 +13,7 @@ namespace Minigames.TrashMaze.Core
|
||||
public static TrashMazeController Instance { get; private set; }
|
||||
|
||||
[Header("Player")]
|
||||
[SerializeField] private PulverController pulverPrefab;
|
||||
[SerializeField] private Transform startPosition;
|
||||
[SerializeField] private PulverController pulverController;
|
||||
|
||||
[Header("Background")]
|
||||
[Tooltip("Background sprite renderer - world size and center are inferred from its bounds")]
|
||||
@@ -27,7 +26,6 @@ namespace Minigames.TrashMaze.Core
|
||||
private static readonly int WorldSizeID = Shader.PropertyToID("_WorldSize");
|
||||
private static readonly int WorldCenterID = Shader.PropertyToID("_WorldCenter");
|
||||
|
||||
private PulverController _pulverInstance;
|
||||
private bool _mazeCompleted;
|
||||
|
||||
internal override void OnManagedAwake()
|
||||
@@ -59,8 +57,8 @@ namespace Minigames.TrashMaze.Core
|
||||
// Infer world bounds from background renderer and set shader globals
|
||||
ApplyBackgroundBoundsToShader();
|
||||
|
||||
// Spawn player
|
||||
SpawnPulver();
|
||||
// Validate player reference
|
||||
InitializePulver();
|
||||
|
||||
Logging.Debug("[TrashMazeController] Trash Maze initialized");
|
||||
}
|
||||
@@ -108,18 +106,15 @@ namespace Minigames.TrashMaze.Core
|
||||
$"Size=({worldSize.x:F2}, {worldSize.y:F2}), Center=({worldCenter.x:F2}, {worldCenter.y:F2})");
|
||||
}
|
||||
|
||||
private void SpawnPulver()
|
||||
private void InitializePulver()
|
||||
{
|
||||
if (pulverPrefab == null)
|
||||
if (pulverController == null)
|
||||
{
|
||||
Logging.Error("[TrashMazeController] Pulver prefab not assigned!");
|
||||
Logging.Error("[TrashMazeController] PulverController reference not assigned! Please assign it in the Inspector.");
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 spawnPosition = startPosition != null ? startPosition.position : Vector3.zero;
|
||||
_pulverInstance = Instantiate(pulverPrefab, spawnPosition, Quaternion.identity);
|
||||
|
||||
Logging.Debug($"[TrashMazeController] Pulver spawned at {spawnPosition}");
|
||||
Logging.Debug($"[TrashMazeController] Pulver controller initialized at {pulverController.transform.position}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
3
Assets/Scripts/Minigames/TrashMaze/Data.meta
Normal file
3
Assets/Scripts/Minigames/TrashMaze/Data.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1c86c04b4dc4dd5add77ba3bb17f95e
|
||||
timeCreated: 1765749918
|
||||
19
Assets/Scripts/Minigames/TrashMaze/Data/TrashMazeEnums.cs
Normal file
19
Assets/Scripts/Minigames/TrashMaze/Data/TrashMazeEnums.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
namespace Minigames.TrashMaze.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Camera states for Trash Maze minigame
|
||||
/// </summary>
|
||||
public enum TrashMazeCameraState
|
||||
{
|
||||
/// <summary>
|
||||
/// Main gameplay camera following Trafalgar around the level
|
||||
/// </summary>
|
||||
Gameplay,
|
||||
|
||||
/// <summary>
|
||||
/// Maze camera following Pulver when exploring the maze alone
|
||||
/// </summary>
|
||||
Maze
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e26aed52b5e4597b3cbba9191fe463b
|
||||
timeCreated: 1765749918
|
||||
Reference in New Issue
Block a user