2016-01-07 1 views
-2

Я пытаюсь провести линию с LineRenderer, которая следует за движениями пальцев пользователя. До сих пор мне не удалось провести линию. Это код, который я получил.Как нарисовать линию с прикосновением?

как это сделать?

var c1 : Color = Color.white; 
var c2 : Color = Color.white; 

var line : GameObject; 

var lengthOfLineRenderer : int = 5; 

function Update() { 

var touchCount : int = 0; 

if (Input.GetMouseButtonDown (0)) { 

touchCount++; 

} 

if (Input.touchCount == 1) { 

if (Input.GetTouch(0).phase == TouchPhase.Moved) { 

    var lineRenderer : LineRenderer = line.AddComponent(LineRenderer); 
    lineRenderer.SetColors(c1, c2); 
    lineRenderer.SetWidth(0.2,0.2); 
    lineRenderer.SetVertexCount(lengthOfLineRenderer); 
    lineRenderer.SetPosition(0, gameObject.transform.position); 

} 

} 

} 
+3

Пожалуйста, проверьте теги, потому что я уверен, что код, который вы предоставляете, не написан на C# –

+0

@ PawełMarecki, я могу подтвердить, что;) редактирование уже отправлено – Minzkraut

ответ

1

Идея состоит в том, чтобы проверить смещение позиции ввода. Если нет движения, или слишком маленький треугольник, а затем ждать, если движение является достаточно большим, чем добавить вершину и сбросить все позиции:

Это псевдо-код:

Vector3 previous; 
int vertexCount = 0; 
List<Vector3>positions; 
void Update(){ 
    if(Input.detected){ 
     Vector3 current = Input.position; 
     if(Vector3.Distance(previous, current) < threshold){ return; } 
     SetVertexCount(++vertexCount); 
     positions.Add(current); 
     for (int i= 0; i < vertexCount; i++) 
     { 
      lineRenderer.SetPosition(i, positions[i].transform.position); 
     } 
    } 
} 

Перечень должностей будет сохранить все предыдущие позиции, которые должны быть переданы визуализатору линии.

Весь раздел ввода - это только псевдокод и должен быть превращен в рабочий или мобильный вход.