- 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
![](https://koobas.hobune.stream/wayback/20220612170524im_/https://answers.unity.com/themes/thub/images/avi.jpg)
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