From 0bec5d576cec81cb93299684194f1b815812ca8c Mon Sep 17 00:00:00 2001 From: nlevin6 Date: Mon, 14 Apr 2025 21:07:16 -0400 Subject: [PATCH] added pipe task --- Assets/Scenes/level1.unity | 217 +++++++++++++++++++- Assets/Scripts/PipeTask.meta | 8 + Assets/Scripts/PipeTask/PipeFixZone.cs | 55 +++++ Assets/Scripts/PipeTask/PipeFixZone.cs.meta | 2 + ProjectSettings/TagManager.asset | 4 +- 5 files changed, 279 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/PipeTask.meta create mode 100644 Assets/Scripts/PipeTask/PipeFixZone.cs create mode 100644 Assets/Scripts/PipeTask/PipeFixZone.cs.meta diff --git a/Assets/Scenes/level1.unity b/Assets/Scenes/level1.unity index b4ad4527..bc346b32 100644 --- a/Assets/Scenes/level1.unity +++ b/Assets/Scenes/level1.unity @@ -1291,7 +1291,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} propertyPath: m_LocalPosition.x - value: -3.619698 + value: -1.53 objectReference: {fileID: 0} - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} propertyPath: m_LocalPosition.y @@ -1299,7 +1299,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} propertyPath: m_LocalPosition.z - value: -31.869919 + value: -32.29 objectReference: {fileID: 0} - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} propertyPath: m_LocalRotation.w @@ -15935,6 +15935,89 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 911584530} m_CullTransparentMesh: 1 +--- !u!1001 &923637988 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1236261788099784, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_Name + value: MediumPipe1-fixed + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalPosition.x + value: -0.48298004 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalPosition.y + value: 1.491 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalPosition.z + value: -22.472 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4832176326394370, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 1236261788099784, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + insertIndex: -1 + addedObject: {fileID: 923637994} + m_SourcePrefab: {fileID: 100100000, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} +--- !u!1 &923637989 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1236261788099784, guid: 27879f38628a5a84ba8c478897f4ac7e, type: 3} + m_PrefabInstance: {fileID: 923637988} + m_PrefabAsset: {fileID: 0} +--- !u!114 &923637994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923637989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5fea29bb7c508c244a1f805a5fd3fc4d, type: 3} + m_Name: + m_EditorClassIdentifier: + outlineMode: 0 + outlineColor: {r: 0, g: 1, b: 1, a: 1} + outlineWidth: 1 + precomputeOutline: 0 + bakeKeys: [] + bakeValues: [] --- !u!1 &931979584 GameObject: m_ObjectHideFlags: 0 @@ -17305,6 +17388,29 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 999184773} m_CullTransparentMesh: 1 +--- !u!1 &999371113 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1130208405809564, guid: 886ef8301a4778342891ec173b845399, type: 3} + m_PrefabInstance: {fileID: 1672602531} + m_PrefabAsset: {fileID: 0} +--- !u!114 &999371117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999371113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5fea29bb7c508c244a1f805a5fd3fc4d, type: 3} + m_Name: + m_EditorClassIdentifier: + outlineMode: 0 + outlineColor: {r: 0, g: 1, b: 1, a: 1} + outlineWidth: 1 + precomputeOutline: 0 + bakeKeys: [] + bakeValues: [] --- !u!1 &1004732702 GameObject: m_ObjectHideFlags: 0 @@ -17683,6 +17789,29 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1024705317} m_CullTransparentMesh: 1 +--- !u!1 &1029141307 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1130208405809564, guid: 886ef8301a4778342891ec173b845399, type: 3} + m_PrefabInstance: {fileID: 2005980733} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1029141311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1029141307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5fea29bb7c508c244a1f805a5fd3fc4d, type: 3} + m_Name: + m_EditorClassIdentifier: + outlineMode: 0 + outlineColor: {r: 0, g: 1, b: 1, a: 1} + outlineWidth: 1 + precomputeOutline: 0 + bakeKeys: [] + bakeValues: [] --- !u!1 &1036101059 GameObject: m_ObjectHideFlags: 0 @@ -28360,7 +28489,10 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 1130208405809564, guid: 886ef8301a4778342891ec173b845399, type: 3} + insertIndex: -1 + addedObject: {fileID: 999371117} m_SourcePrefab: {fileID: 100100000, guid: 886ef8301a4778342891ec173b845399, type: 3} --- !u!1 &1677210893 GameObject: @@ -29484,6 +29616,74 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1757330048} m_CullTransparentMesh: 1 +--- !u!1 &1765369058 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1765369061} + - component: {fileID: 1765369060} + - component: {fileID: 1765369059} + m_Layer: 0 + m_Name: PipeFixZone + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1765369059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765369058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 935f7d1e2ad2d5b408177a316db06bdf, type: 3} + m_Name: + m_EditorClassIdentifier: + requiredItemName: Pipe + fixedPipeVisual: {fileID: 923637989} +--- !u!65 &1765369060 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765369058} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1.7340813} + m_Center: {x: 0, y: 0, z: 0.0668869} +--- !u!4 &1765369061 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765369058} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.45, y: 1.49, z: -22.454} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1767326433 GameObject: m_ObjectHideFlags: 0 @@ -33688,7 +33888,10 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 1130208405809564, guid: 886ef8301a4778342891ec173b845399, type: 3} + insertIndex: -1 + addedObject: {fileID: 1029141311} m_SourcePrefab: {fileID: 100100000, guid: 886ef8301a4778342891ec173b845399, type: 3} --- !u!1 &2008702527 GameObject: @@ -35556,7 +35759,7 @@ GameObject: - component: {fileID: 1228075557} - component: {fileID: 7685886779921947557} - component: {fileID: 7685886779921947558} - m_Layer: 8 + m_Layer: 6 m_Name: PlayerCapsule m_TagString: Player m_Icon: {fileID: 0} @@ -38062,7 +38265,7 @@ Transform: m_GameObject: {fileID: 7094977339719025836} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0.6649941, z: -0, w: 0.7468486} - m_LocalPosition: {x: -48.69, y: -9.26, z: -8.39} + m_LocalPosition: {x: -49.211, y: -9.26, z: 5.033} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -39442,4 +39645,6 @@ SceneRoots: - {fileID: 466121129} - {fileID: 2005980733} - {fileID: 54317557} + - {fileID: 923637988} - {fileID: 1672602531} + - {fileID: 1765369061} diff --git a/Assets/Scripts/PipeTask.meta b/Assets/Scripts/PipeTask.meta new file mode 100644 index 00000000..764547ee --- /dev/null +++ b/Assets/Scripts/PipeTask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3aaa2aa4fc21b9a47969558f72da8738 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PipeTask/PipeFixZone.cs b/Assets/Scripts/PipeTask/PipeFixZone.cs new file mode 100644 index 00000000..b0fd3c09 --- /dev/null +++ b/Assets/Scripts/PipeTask/PipeFixZone.cs @@ -0,0 +1,55 @@ +using UnityEngine; + +public class PipeFixZone : MonoBehaviour +{ + public string requiredItemName = "Pipe"; + public GameObject fixedPipeVisual; + + private bool isFixed = false; + + void Start() + { + if (fixedPipeVisual != null) + fixedPipeVisual.SetActive(false); + } + + void Update() + { + if (isFixed) return; + + Inventory inventory = FindObjectOfType(); + if (inventory == null) return; + + bool hasPipe = false; + for (int i = 0; i < inventory.slots.Length; i++) + { + var item = inventory.slots[i]; + if (item != null && item.itemName == requiredItemName) + { + hasPipe = true; + break; + } + } + + if (hasPipe && Input.GetMouseButtonDown(0)) + { + Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward); + int layerMask = ~LayerMask.GetMask("Player"); + + if (Physics.Raycast(ray, out RaycastHit hit, 3f, layerMask)) + { + if (hit.transform == transform) + { + inventory.slots[inventory.currentSlot] = null; + inventory.EquipSlot(inventory.currentSlot); + + if (fixedPipeVisual != null) + fixedPipeVisual.SetActive(true); + + isFixed = true; + GetComponent().enabled = false; + } + } + } + } +} diff --git a/Assets/Scripts/PipeTask/PipeFixZone.cs.meta b/Assets/Scripts/PipeTask/PipeFixZone.cs.meta new file mode 100644 index 00000000..03b9fe07 --- /dev/null +++ b/Assets/Scripts/PipeTask/PipeFixZone.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 935f7d1e2ad2d5b408177a316db06bdf \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index ffb69c0f..2cf0e68a 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -6,6 +6,8 @@ TagManager: tags: - CinemachineTarget - Ladder + - PersistentInfo + - Door layers: - Default - TransparentFX @@ -13,7 +15,7 @@ TagManager: - - Water - UI - - + - Player - - -