Hi Guys. I am working on drawing a line on touch screen. i have done perfectly but facing a problem may be not a big problem but i have no idea what to do. when i click on mouse or touch screen the line start with the position where the object is situated and draw a strait line. i don’t want the strait line to draw i want to draw a line from where i want. here is code and screen shots.
thank you.
public GameObject trailPrafab;
GameObject thisTrail;
Vector3 startPos;
Plane objPlane;
void Start()
{
objPlane = new Plane(Camera.main.transform.forward * -1, this.transform.position);
}
// Update is called once per frame
void Update () {
if ((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) || Input.GetMouseButtonDown(0)){
thisTrail = (GameObject) Instantiate(trailPrafab, this.transform.position, Quaternion.identity);
Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition);
float rayDistance;
if (objPlane.Raycast(mRay, out rayDistance))
startPos = mRay.GetPoint(rayDistance);
}
else if(((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) || Input.GetMouseButton(0)))
{
Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition);
float rayDistance;
if (objPlane.Raycast(mRay, out rayDistance))
thisTrail.transform.position = mRay.GetPoint(rayDistance);
}
else if ((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended) || Input.GetMouseButtonUp(0))
{
if (Vector3.Distance(thisTrail.transform.position, startPos) < 0.1)
Destroy(thisTrail);
}
}