- Home /
How to block a LineRenderer with a shield from a moving origin point
Hello!
I'm having trouble using the LineRenderer for the first time. What I want is a sphere that orbits around the player and sends out a laser that always points at the player wherever he moves.
Right now I have this piece of code for the LineRenderer:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DrawLine : MonoBehaviour {
private LineRenderer lineRenderer;
private float counter;
private float dist;
public Transform origin;
public Transform destination;
public float lineDrawSpeed = 6f;
void Start () {
lineRenderer = GetComponent<LineRenderer>();
lineRenderer.SetPosition(0, origin.position);
lineRenderer.SetWidth(.45f, .45f);
dist = Vector3.Distance(origin.position, destination.position);
}
void Update () {
counter += .1f / lineDrawSpeed;
float x = Mathf.Lerp(0, dist, counter);
Vector3 pointA = origin.position;
Vector3 pointB = destination.position;
//Get the unit vector in the desired direction, multiply by the desired lenght and add the starting point
Vector3 pointAlongLine = x * Vector3.Normalize(pointB - pointA) + pointA;
lineRenderer.SetPosition(1, pointAlongLine);
}
}
It works if I turn off the orbit of the sphere but once I activate that code again it starts to look all weird. So how do I get this to work with a moving origin and moving destination point? Another feature that I want to add is that the player can activate a shield and block the laser with it. Any ideas on how to do that?
Any help is much appreciated!
Your answer
Follow this Question
Related Questions
why can't Line Renderer catch movement of camera? 0 Answers
Need help setting correct Y height for laser beam with 50 elements 2 Answers
Bouncing Laser Beam 1 Answer
Pathfinding players? 1 Answer
Mouse drag with specific angle 1 Answer