2016-02-27 1 views
-2

Мой вопрос кажется довольно простым, но я не могу понять это сам.Как нарисовать линию с длиной x в направлении положения мыши в единстве3D?

Я хочу нарисовать линию с фиксированной длиной из моего transform.position в том направлении, в котором находится курсор мыши.

Вещи я выяснил:

var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 
lazer.setPosition(0, transform.position); 

// here is where the failing starts. i need to calculate the end position. 
lazer.setPosition(1, ?) 

Благодаря А.

+0

Unity имеет ** нет возможности, вообще, рисовать линии ** - это игровой движок. Единство абсолютно не связано с рисованием линий или фигур. этот вопрос задавался так часто - сначала попросите Google помочь сэкономить время !!! – Fattie

+0

Возможный дубликат [вычерчивание строки, следующей за объектом в единстве C#] (http://stackoverflow.com/questions/16039520/drawing-a-line-following-an-object-in-unity-c-sharp) – Fattie

+0

i используйте LineRenderer для этого. Я просто прошу векторную математику, которая будет вычислять конечную позицию LineRenderer. –

ответ

0

Я думаю, что вы ищете является переменной normalized на любом классе Vector2 или Vector3. Что-то вроде этого не даст вам новый вектор с теми же длинами (величина, на самом деле) каждый раз, когда:

Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 
Vector3 offsetPos = mousePos - transform.position; 
Vector3 newVec = offsetPos.normalized * scale; // this is the important line 
newVec += transform.position;