Hello,
I’m using a raycast to shoot a laser at an object on a specific layer which is working, but the starting point stays at the position of the player as the player moves away. How can i keep the laser focused on both objects as they are moving around the scene? Heres the code i have put together so far.
Thank you
using UnityEngine;
using System.Collections;
public class MiningLaser : MonoBehaviour {
LineRenderer line;
public bool IsKeyEnabled_M { get; set; }
int layerMask = 1 << 8;
void Start()
{
IsKeyEnabled_M = true;
line = gameObject.GetComponent<LineRenderer> ();
line.enabled = false;
}
void Update()
{
if (IsKeyEnabled_M)
{
if (Input.GetKeyDown (KeyCode.M))
{
StopCoroutine ("FireMiningLaser");
StartCoroutine (FireMiningLaser (2.0f));
}
}
}
IEnumerator FireMiningLaser(float waitTime)
{
line.enabled = true;
IsKeyEnabled_M = false;
while (Input.GetKeyDown (KeyCode.M))
{
Ray ray = new Ray (transform.position, transform.forward);
RaycastHit hit;
line.SetPosition (0, ray.origin);
if (Physics.Raycast (ray, out hit, 100, layerMask))
line.SetPosition (1, hit.transform.position);
else
line.SetPosition (1, ray.GetPoint (100));
yield return new WaitForSeconds (waitTime);
}
line.enabled = false;
IsKeyEnabled_M = true;
}
}