55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
public class LineHookHandHelper : MonoBehaviour
|
|
{
|
|
public LineRenderer lineRenderer;
|
|
|
|
public Transform jointHookPoint;
|
|
|
|
private Transform startPointHandle;
|
|
|
|
private Transform endPointHandle;
|
|
|
|
private Rigidbody firstHookLureConnectBody;
|
|
|
|
private void Start()
|
|
{
|
|
if (!lineRenderer)
|
|
{
|
|
lineRenderer = GetComponent<LineRenderer>();
|
|
}
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
if ((bool)startPointHandle)
|
|
{
|
|
base.transform.position = startPointHandle.position;
|
|
RenderLine();
|
|
}
|
|
}
|
|
|
|
public void Setup(Transform startPoint, Transform HookLure, LineRenderer currentLinerenderer)
|
|
{
|
|
startPointHandle = startPoint;
|
|
HookLure.position = HookLure.transform.position;
|
|
firstHookLureConnectBody = HookLure.GetComponent<HingeJoint>().connectedBody;
|
|
HookLure.GetComponent<HingeJoint>().connectedBody = jointHookPoint.GetComponent<Rigidbody>();
|
|
endPointHandle = HookLure;
|
|
lineRenderer.material = currentLinerenderer.material;
|
|
lineRenderer.widthCurve = currentLinerenderer.widthCurve;
|
|
}
|
|
|
|
private void RenderLine()
|
|
{
|
|
lineRenderer.positionCount = 2;
|
|
lineRenderer.SetPosition(0, startPointHandle.transform.position);
|
|
lineRenderer.SetPosition(1, endPointHandle.position);
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
endPointHandle.GetComponent<HingeJoint>().connectedBody = firstHookLureConnectBody;
|
|
}
|
|
}
|