물웅덩이, 밧줄 움직임 코드 추가
This commit is contained in:
parent
2394752748
commit
9f841c4828
|
|
@ -3508,6 +3508,105 @@ Transform:
|
|||
m_CorrespondingSourceObject: {fileID: 7588602306031819191, guid: dd314a3f767a46446b652103ace62042, type: 3}
|
||||
m_PrefabInstance: {fileID: 590924598}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -5069,3 +5168,4 @@ SceneRoots:
|
|||
- {fileID: 1478180731}
|
||||
- {fileID: 1995838084}
|
||||
- {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