forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using UnityEngine;
 | 
						|
 | 
						|
[ExecuteInEditMode]
 | 
						|
public class StringRenderer : MonoBehaviour
 | 
						|
{
 | 
						|
    [Header("Render Positions")] [SerializeField]
 | 
						|
    private Transform start;
 | 
						|
 | 
						|
    [SerializeField] private Transform middle;
 | 
						|
    [SerializeField] private Transform end;
 | 
						|
 | 
						|
    private LineRenderer _lineRenderer;
 | 
						|
 | 
						|
    private void Awake()
 | 
						|
    {
 | 
						|
        _lineRenderer = GetComponent<LineRenderer>();
 | 
						|
    }
 | 
						|
 | 
						|
    private void Update()
 | 
						|
    {
 | 
						|
        // While in editor, make sure the line renderer follows bow
 | 
						|
        if (Application.isEditor && !Application.isPlaying)
 | 
						|
            UpdatePositions();
 | 
						|
    }
 | 
						|
 | 
						|
    private void OnEnable()
 | 
						|
    {
 | 
						|
        Application.onBeforeRender += UpdatePositions;
 | 
						|
    }
 | 
						|
 | 
						|
    private void OnDisable()
 | 
						|
    {
 | 
						|
        Application.onBeforeRender -= UpdatePositions;
 | 
						|
    }
 | 
						|
 | 
						|
    private void UpdatePositions()
 | 
						|
    {
 | 
						|
        if (_lineRenderer == null) _lineRenderer = GetComponent<LineRenderer>();
 | 
						|
        // Set positions of line renderer, middle position is the notch attach transform
 | 
						|
        _lineRenderer.SetPositions(new Vector3[] { start.position, middle.position, end.position });
 | 
						|
    }
 | 
						|
 | 
						|
    public void UpdateString(Vector3 pullPosition)
 | 
						|
    {
 | 
						|
        middle.position = pullPosition;
 | 
						|
    }
 | 
						|
} |