LineRenderer not appearing as expected...

Hi all,

I’m having trouble getting the Ray or LineRenderer to appear where it should. When my ship fires its laser beam (pink) it appears in the wrong place. BUT the Debug.DrawRay (green) is perfect!

They both use the same origin points and directions and run in the same co-routine.

Any ideas?

    IEnumerator FireLaser()
    {
        line.enabled = true;
        while (firing)
        {
            Vector3 forward = transform.TransformDirection(Vector3.forward) * 100;
            Debug.DrawRay(transform.position, forward, Color.green);
            Ray ray = new Ray(transform.position, forward);
            line.SetPosition(0, transform.position);
            line.SetPosition(1, forward);
            yield return null;
        }
        line.enabled = false;
    }

Youtube Video Demo

hello, i know this isnt your question but are you sure your ray is working? it feels like you are missunderstabding points with directions. i will leave this line in case you need it later.

Ray ray = new Ray(transform.position, forward- transform.position); 

your issue is the most common issue that i have seen working with line renderers and is understanding that the setposition works locally not in world space, can you test that exact code but with the lineRenderer in a gameobject with the rotation and position reseted?

The Ray was working fine, but you hit the nail on the head wth WorldSpace. I’d unticked “Use worldspace” on the LineRenderer component. As soon as I ticked it, it worked great.

Thanks
:slight_smile: