물웅덩이, 밧줄 움직임 코드 추가
This commit is contained in:
parent
2394752748
commit
9f841c4828
|
|
@ -3508,6 +3508,105 @@ Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 7588602306031819191, guid: dd314a3f767a46446b652103ace62042, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7588602306031819191, guid: dd314a3f767a46446b652103ace62042, type: 3}
|
||||||
m_PrefabInstance: {fileID: 590924598}
|
m_PrefabInstance: {fileID: 590924598}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &1177009317
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1177009320}
|
||||||
|
- component: {fileID: 1177009319}
|
||||||
|
- component: {fileID: 1177009321}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: GameObject (3)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!61 &1177009319
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1177009317}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 1
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
oldSize: {x: 0, y: 0}
|
||||||
|
newSize: {x: 0, y: 0}
|
||||||
|
adaptiveTilingThreshold: 0
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1, y: 5}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!4 &1177009320
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1177009317}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1.72, y: -5.7, z: 0}
|
||||||
|
m_LocalScale: {x: 2.03, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!253 &1177009321
|
||||||
|
BuoyancyEffector2D:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1177009317}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_UseColliderMask: 1
|
||||||
|
m_ColliderMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_SurfaceLevel: 2.4
|
||||||
|
m_Density: 0
|
||||||
|
m_LinearDamping: 20
|
||||||
|
m_AngularDamping: 10
|
||||||
|
m_FlowAngle: 0
|
||||||
|
m_FlowMagnitude: 0
|
||||||
|
m_FlowVariation: 0
|
||||||
--- !u!1 &1190488655
|
--- !u!1 &1190488655
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -5069,3 +5168,4 @@ SceneRoots:
|
||||||
- {fileID: 1478180731}
|
- {fileID: 1478180731}
|
||||||
- {fileID: 1995838084}
|
- {fileID: 1995838084}
|
||||||
- {fileID: 2026865174}
|
- {fileID: 2026865174}
|
||||||
|
- {fileID: 1177009320}
|
||||||
|
|
|
||||||
8
Assets/Scripts/Prop/Rope.meta
Normal file
8
Assets/Scripts/Prop/Rope.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48a39c9b49fa6a441a9b788f5209c16e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
62
Assets/Scripts/Prop/Rope/Rope2D.cs
Normal file
62
Assets/Scripts/Prop/Rope/Rope2D.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
public class Rope2D : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Transform startPoint;
|
||||||
|
[SerializeField] private Transform endPoint;
|
||||||
|
[SerializeField] private GameObject ropeSegmentPrefab;
|
||||||
|
[SerializeField] private int segmentCount = 10;
|
||||||
|
|
||||||
|
[HideInInspector] public List<GameObject> ropeSegments = new List<GameObject>();
|
||||||
|
|
||||||
|
[ContextMenu("Generate Rope")]
|
||||||
|
private void GenerateRope()
|
||||||
|
{
|
||||||
|
RemoveRope();
|
||||||
|
|
||||||
|
Vector3 startPos = startPoint.position;
|
||||||
|
Vector3 endPos = endPoint.position;
|
||||||
|
Rigidbody2D previousRigidbody = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < segmentCount; i++)
|
||||||
|
{
|
||||||
|
float t = (float)i / (segmentCount - 1);
|
||||||
|
Vector3 spawnPos = Vector3.Lerp(startPos, endPos, t);
|
||||||
|
GameObject segment = Instantiate(ropeSegmentPrefab, spawnPos, Quaternion.identity, transform);
|
||||||
|
ropeSegments.Add(segment);
|
||||||
|
HingeJoint2D joint = segment.GetComponent<HingeJoint2D>();
|
||||||
|
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
segment.GetComponent<Rigidbody2D>().bodyType = RigidbodyType2D.Static;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
joint.connectedBody = previousRigidbody;
|
||||||
|
}
|
||||||
|
|
||||||
|
previousRigidbody = segment.GetComponent<Rigidbody2D>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RemoveRope()
|
||||||
|
{
|
||||||
|
foreach (GameObject segment in ropeSegments)
|
||||||
|
{
|
||||||
|
DestroyImmediate(segment);
|
||||||
|
}
|
||||||
|
ropeSegments.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDrawGizmos()
|
||||||
|
{
|
||||||
|
Gizmos.color = Color.yellow;
|
||||||
|
for (int i = 0; i < segmentCount; i++)
|
||||||
|
{
|
||||||
|
float t = (float)i / (segmentCount - 1);
|
||||||
|
Vector3 pos = Vector3.Lerp(startPoint.position, endPoint.position, t);
|
||||||
|
Gizmos.DrawSphere(pos, 0.1f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Prop/Rope/Rope2D.cs.meta
Normal file
2
Assets/Scripts/Prop/Rope/Rope2D.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1cee6270fbd1842429e1ec4d6350bbc4
|
||||||
28
Assets/Scripts/Prop/Rope/RopeRenderer.cs
Normal file
28
Assets/Scripts/Prop/Rope/RopeRenderer.cs
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[RequireComponent(typeof(LineRenderer))]
|
||||||
|
public class RopeRenderer : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Rope2D ropeCreator;
|
||||||
|
private LineRenderer lineRenderer;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
lineRenderer = GetComponent<LineRenderer>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (ropeCreator == null || ropeCreator.ropeSegments.Count == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lineRenderer.positionCount = ropeCreator.ropeSegments.Count;
|
||||||
|
|
||||||
|
for (int i = 0; i < ropeCreator.ropeSegments.Count; i++)
|
||||||
|
{
|
||||||
|
lineRenderer.SetPosition(i, ropeCreator.ropeSegments[i].transform.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Prop/Rope/RopeRenderer.cs.meta
Normal file
2
Assets/Scripts/Prop/Rope/RopeRenderer.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e418e743fe84926449be9bd03e646603
|
||||||
Loading…
Reference in New Issue
Block a user