2017-02-22 45 views
-1
int index = 0; 
    private void WayPoint() 
    { 
     if (index == waypoints.Length) 
      index = 0; 
     target = waypoints[index].transform; 
     float distance = Vector3.Distance(myTransform.position, target.transform.position); 
     Debug.DrawLine(target.transform.position, myTransform.position, Color.red); 
     Debug.DrawLine(target.transform.position, myTransform.position, Color.blue); 
     myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime); 

     //move towards the player 
     myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime; 
     if (distance < 2f) 
      index++; 
    } 

现在我画了一条红线,显示角色将要前往的下一个目标(航点)。但是我想添加一条蓝线,它将显示角色已经从原始开始位置和所有访问过的路点实现了何种方式,直到实时角色位置。所以当角色在路点之间行走时,它将显示两行红色表示下一个目标,蓝色表示已经访问过的内容。如何在场景窗口中绘制一条蓝线,以显示角色已走过的路线?

这个WayPoint()方法我从Update()函数调用它。

我刚刚添加了像红色和蓝色相同的线,我只是无法弄清楚如何绘制当前字符位置和他到目前为止访问的位置之间的界限。

我应该使用一些列表并循环遍历列表,以便在游戏运行时同时画线并在场景窗口中看到它吗?

蓝线我现在试图用这样的:

Debug.DrawLine(waypoints[index - 1].transform.position, myTransform.position, Color.blue); 

而且我删除用于测试的红线,但它并没有在所有的画蓝线或不是我想要的。我想要一条线将显示我从原始开始位置访问的位置。

回答

0

简单的LineRenderer你添加点基地你的航点。

https://docs.unity3d.com/Manual/class-LineRenderer.html