Line renderer is not working for Perspective camera.

Hi,

I am trying to draw line using line rendrer as per mouse drag, its work for orthographic camera, but not working for perspective camera.
I am printing the values of linerenderer position array, but everytime , it gives me (0,0,0) initial position in whole array.
So please help me.

Code which i have written is,

using UnityEngine;
using System.Collections;
using System.Collections.Generic;


public class DrawLine : MonoBehaviour 
{
	public List<Vector3> pointsList;

	public Material mat ;

	private LineRenderer lineRenderer;
	private bool isMousePressed;

	private Vector3 mousePos;
	private Vector3 lastPos;




	void Awake()
	{
		// Create line renderer component and set its property
		lineRenderer = gameObject.GetComponent<LineRenderer>();
		lineRenderer.SetVertexCount(0);
		lineRenderer.SetWidth(0.1f,0.1f);
		lineRenderer.useWorldSpace = true;    
		isMousePressed = false;
	
		pointsList = new List<Vector3>();
	}
	//    -----------------------------------    
	void Update () 
	{
		// If mouse button down, remove old line and set its color to green
		if(Input.GetMouseButtonDown(0))
		{
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;
			if (Physics.Raycast(ray, out hit, 100))
			{
				if (hit.transform.gameObject == transform.gameObject)
				{
					print("hit me");
					isMousePressed = true;
					lineRenderer.SetVertexCount(0);
					pointsList.RemoveRange(0,pointsList.Count);
				}
			}
		}
		else if(Input.GetMouseButtonUp(0))
		{
				if(isMousePressed)
				{
				    lineRenderer.enabled = false;
					isMousePressed = false;
				    print("LastPos:"+lastPos);
				}
		}
		// Drawing line when mouse is moving(presses)
		if(isMousePressed)
		{
			mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
			mousePos.z=0;

			//if (!pointsList.Contains (mousePos)) 
			//{
				pointsList.Add (mousePos);
				lastPos=mousePos;
				lineRenderer.SetVertexCount (pointsList.Count);
				lineRenderer.SetPosition (pointsList.Count - 1, (Vector3)pointsList [pointsList.Count - 1]);

			//}
		}
	}

}

Hi,

Got the solution of it.

By just replacing following two lines,

mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousePos.z=0;

By this line

mousePos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, transform.position.z - Camera.main.transform.position.z));

Cheers…