diff --git a/Assets/Prefabs/Rotator.prefab b/Assets/Prefabs/Rotator.prefab new file mode 100644 index 0000000..ebc2b0d --- /dev/null +++ b/Assets/Prefabs/Rotator.prefab @@ -0,0 +1,341 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8185732857791692160 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8185732857791692161} + - component: {fileID: 8185732857791692172} + - component: {fileID: 8185732857791692175} + - component: {fileID: 8185732857791692174} + m_Layer: 6 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8185732857791692161 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732857791692160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 4.8, z: 0} + m_LocalScale: {x: 1, y: 5.2375, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8185732859686289158} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8185732857791692172 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732857791692160} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8185732857791692175 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732857791692160} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &8185732857791692174 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732857791692160} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8185732858306452726 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8185732858306452727} + - component: {fileID: 8185732858306452722} + - component: {fileID: 8185732858306452725} + - component: {fileID: 8185732858306452724} + m_Layer: 6 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8185732858306452727 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858306452726} + 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: [] + m_Father: {fileID: 8185732859686289158} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8185732858306452722 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858306452726} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8185732858306452725 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858306452726} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &8185732858306452724 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858306452726} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8185732858472026408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8185732858472026409} + - component: {fileID: 8185732858472026388} + - component: {fileID: 8185732858472026391} + - component: {fileID: 8185732858472026390} + m_Layer: 6 + m_Name: Cube_01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8185732858472026409 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858472026408} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -4.36, z: 0} + m_LocalScale: {x: 1, y: 5.2375, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8185732859686289158} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8185732858472026388 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858472026408} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8185732858472026391 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858472026408} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &8185732858472026390 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732858472026408} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8185732859686289177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8185732859686289158} + - component: {fileID: 8185732859686289159} + m_Layer: 6 + m_Name: Rotator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8185732859686289158 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732859686289177} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 23.22, y: 15.62, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8185732857791692161} + - {fileID: 8185732858472026409} + - {fileID: 8185732858306452727} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8185732859686289159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8185732859686289177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b2b8a83b829aea4993ad3e35b793597, type: 3} + m_Name: + m_EditorClassIdentifier: + rotSpeed: 50 diff --git a/Assets/Prefabs/Rotator.prefab.meta b/Assets/Prefabs/Rotator.prefab.meta new file mode 100644 index 0000000..6ab32a1 --- /dev/null +++ b/Assets/Prefabs/Rotator.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3aef9205067d34c46bee46559d8e90dd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Rotator.cs b/Assets/Rotator.cs new file mode 100644 index 0000000..42ce9d8 --- /dev/null +++ b/Assets/Rotator.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Rotator : MonoBehaviour +{ + + [SerializeField] + + private float rotSpeed; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + transform.Rotate(0,0,Time.deltaTime * rotSpeed); + } +} diff --git a/Assets/Rotator.cs.meta b/Assets/Rotator.cs.meta new file mode 100644 index 0000000..6f341bd --- /dev/null +++ b/Assets/Rotator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b2b8a83b829aea4993ad3e35b793597 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Obstacles.unity b/Assets/Scenes/Obstacles.unity index 8d24a8c..ba27e57 100644 --- a/Assets/Scenes/Obstacles.unity +++ b/Assets/Scenes/Obstacles.unity @@ -321,6 +321,12 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 111805105} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &188521136 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + m_PrefabInstance: {fileID: 8185732859503011254} + m_PrefabAsset: {fileID: 0} --- !u!1 &206662342 GameObject: m_ObjectHideFlags: 0 @@ -977,6 +983,7 @@ Transform: - {fileID: 1678058222} - {fileID: 111805106} - {fileID: 663828001} + - {fileID: 188521136} m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1700,6 +1707,11 @@ PrefabInstance: propertyPath: hitMarkerRect value: objectReference: {fileID: 1301531513} + - target: {fileID: 1772573266731274174, guid: 4dbf735f9da7b9f43b69f1577e4e5763, + type: 3} + propertyPath: m_Constraints + value: 8 + objectReference: {fileID: 0} - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} propertyPath: m_RootOrder @@ -2770,11 +2782,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 663828001} m_Modifications: - - target: {fileID: 7967733336278028241, guid: bb451447e74142046902fe2a6e583147, - type: 3} - propertyPath: magnitude - value: 3 - objectReference: {fileID: 0} - target: {fileID: 7967733336278028250, guid: bb451447e74142046902fe2a6e583147, type: 3} propertyPath: m_Name @@ -2837,3 +2844,72 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: bb451447e74142046902fe2a6e583147, type: 3} +--- !u!1001 &8185732859503011254 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 778227310} + m_Modifications: + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_RootOrder + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalPosition.x + value: 23.22 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalPosition.y + value: 15.62 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289158, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8185732859686289177, guid: 3aef9205067d34c46bee46559d8e90dd, + type: 3} + propertyPath: m_Name + value: Rotator + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3aef9205067d34c46bee46559d8e90dd, type: 3} diff --git a/Assets/Scripts/GrappleHook.cs b/Assets/Scripts/GrappleHook.cs index 0f2cbcf..c831c64 100644 --- a/Assets/Scripts/GrappleHook.cs +++ b/Assets/Scripts/GrappleHook.cs @@ -62,7 +62,7 @@ public class GrappleHook : MonoBehaviour } if(grappled){ - DrawRope(Time.deltaTime); + UpdateRope(Time.deltaTime); if(boosted){ joint.maxDistance -= grappleBoostSpeed * Time.deltaTime; @@ -94,20 +94,21 @@ public class GrappleHook : MonoBehaviour } } - private void DrawRope(float deltaTime){ + private void UpdateRope(float deltaTime){ // TODO animate a wiggle on the rope if(!grappled)return; lr.SetPosition(0, gunPos.position); Vector3 endPoint; - if(hit.rigidbody != null){ - endPoint = hit.transform.TransformPoint(hitPosLocal); - - }else{ - endPoint = hit.point; - } + endPoint = hookedTo.transform.TransformPoint(hitPosLocal); currGrappleEndPos = Vector3.Lerp(currGrappleEndPos, endPoint, deltaTime * grappleDrawingSpeed); lr.SetPosition(1, currGrappleEndPos); if(!lr.enabled)lr.enabled = true; + + if(hit.rigidbody != null){ + joint.connectedAnchor = hitPosLocal; + }else{ + joint.connectedAnchor = endPoint; + } } private void StartGrapple(RaycastHit hit){ @@ -122,12 +123,13 @@ public class GrappleHook : MonoBehaviour joint.anchor = transform.InverseTransformPoint(gunPos.position); joint.autoConfigureConnectedAnchor = false; joint.maxDistance = hit.distance * 0.9f; + hitPosLocal = hit.transform.InverseTransformPoint(hit.point); if(hit.rigidbody != null){ Rigidbody hitRb = hit.rigidbody; joint.connectedBody = hitRb; - joint.connectedAnchor = hit.transform.InverseTransformPoint(hit.point); + joint.connectedAnchor = hitPosLocal; joint.enableCollision = true; - hitPosLocal = hit.transform.InverseTransformPoint(hit.point); + }else{ joint.connectedAnchor = hit.point; }