x


OnDrag Draw Line For Pathfinding...

I have a 2D game going and I want to add 2d pathfinding.

I want to know how to draw a ray from where you click and end where you release. (drag to draw using on Click and onDragRelease)

Since it is 2D I will need to set the position of the z axis to be the same no matter where you click.

Then I would need to make the unit follow the ray/path.

How will I do this? (Please post some code along with an answer)

Thanks! :D

more ▼

asked Jul 17 '10 at 01:51 AM

MikezNesh gravatar image

MikezNesh
843 64 74 93

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

You can find out the world position of your mouse using Camera.mainCamera.ScreenToWorldPoint(Input.mousePosition). You will have to set the z component of Input.mousePosition by yourself. To do this you can either use the distance of the cam to your ground, or if this is not fixed (e.g. terrain with different heights) you can do a raycast from the mouse position to find out the distance. Then you would do something like this (pseudo code):

LineRenderer lr;

void Update () {
  if (Input.GetButtonDown("Fire1")) {
    lr.SetPosition(0,GetWorldPoint());
    lr.SetPosition(1,GetWorldPoint());
    lr.enabled = true;
  }

  if (Input.GetButton("Fire1")) {
    lr.SetPosition(1,GetWorldPoint);
  }

  if (Input.GetButtonUp("Fire1")) {
    lr.enabled = false;
  }
}
more ▼

answered Jul 17 '10 at 05:25 AM

StephanK gravatar image

StephanK
6k 39 53 93

Could you make that into javascript? THanks alot!

Jul 17 '10 at 05:21 PM MikezNesh

I'm also getting a parsing error.

Jul 17 '10 at 05:25 PM MikezNesh

As I said this is pseudo code, so the compiler probably won't like it. To make this into javascript you just have to decalare the variable as var lr : LineRenderer; and replace void with function.

Jul 17 '10 at 06:50 PM StephanK

Srry for being so dumb but there is an error with GetWorldPoint. Maybe has to do with me using Unity iPhone?

Jul 17 '10 at 07:51 PM MikezNesh

No that hast to do with the code being pseudo code and that there is no GetWorldPoint method unless you write one yourself. ;) You'll have to do the stuff I mentioned in my post (raycasting etc.) in this method and return a Vector3.

Jul 17 '10 at 09:00 PM StephanK
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x5075
x286
x251
x123
x101

asked: Jul 17 '10 at 01:51 AM

Seen: 2487 times

Last Updated: Jul 17 '10 at 01:51 AM