So i have a prefab laser and I was wondering how do i make it scale on the z axis when it hits an enemy? I want it basically like a laser pointer and stop when it hits an enemy. I have it done with a line renderer. But i want to use my laser prefab. Please help!
Using Line Renderer (Works perfectly)
LineRenderer lineRenderer = (LineRenderer)player.GetComponent(typeof(LineRenderer));
lineRenderer.useWorldSpace = false;
lineRenderer.SetVertexCount(2);
RaycastHit hit;
Physics.Raycast(transform.position,transform.forward, out hit);
if(hit.collider)
{
lineRenderer.SetPosition(1,new Vector3(0,0,hit.distance));
}
else
{
lineRenderer.SetPosition(1,new Vector3(0,0,100));
}
Using Laser Prefab (Doesnt scale properly)
RaycastHit hit;
if(Physics.Raycast(weaponSpawn.transform.position,lookPos, out hit,100F))
{
if(hit.collider.gameObject.CompareTag("Enemy"))
{
objCreatedLaser.transform.localScale = new Vector3(0,0,hit.distance);
Debug.Log("Enemy");
Debug.DrawRay (weaponSpawn.transform.position, lookPos, Color.red);
}
else
{
objCreatedLaser.transform.localScale += new Vector3(0, 0, 10F);
Debug.Log("No Enemy");
Debug.DrawRay (transform.position, lookPos, Color.blue);
}
}