【问题标题】:Unity 3D: draw line behind game object/record path taken by game object?Unity 3D:在游戏对象后面画线/记录游戏对象所采用的路径?
【发布时间】:2016-04-29 03:01:08
【问题描述】:

我正在使用 Google Cardboard 在 Unity3d 中创建一个 VR 应用,并且需要知道如何记录玩家所走的路径(他们正在穿越迷宫)。有没有办法绘制用户采取的路径(可能在控制台中;不在实际游戏中,对用户不可见)并将此路径保存为图像?

我需要保存一张图片或只保存玩家在游戏中去过的地方的一行,以便我可以将此图片/数据通过电子邮件发送给玩家。完成此操作的最佳方法是什么?

【问题讨论】:

标签: unity3d virtual-reality


【解决方案1】:

您需要在List 中将播放器的路径存储为Vector3。然后您可以使用LineRenderer 来绘制线条。使用LineRenderer.SetVertexCount 将LineRenderer 的顶点数量更改为List.Count,然后循环遍历列表并使用LineRenderer 更改LineRenderer 的位置。SetPosition(loopIndex, playerPo[loopIndex])。

List<Vector3> playerPos = new List<Vector3>();

//Store players positions somewhere
//playerPos.Add(pPos);
//playerPos.Add(pPos); 
//playerPos.Add(pPos);


Color red = Color.red;
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
lineRenderer.SetColors(red, red);
lineRenderer.SetWidth(0.2F, 0.2F);

//Change how mant points based on the mount of positions is the List
lineRenderer.SetVertexCount(playerPos.Count);

for (int i = 0; i < playerPos.Count; i++ )
{
    //Change the postion of the lines
    lineRenderer.SetPosition(i, playerPos[i]);
}

【讨论】:

  • 有没有办法在画布上绘制 LineRenderer?让这条线随着相机移动并且始终与主相机的位置相关联?
  • @skyguy 是的,有办法。虽然很复杂。这不是你原来的问题。您的问题是关于玩家的位置,与 Canvas 无关。您应该为 Canvas 内容创建一个新问题。此外,您应该开始接受答案。您有很多问题没有选定的答案。如果本指南提供了您在原始问题中想要做的事情,您可以简单地接受它作为答案。谢谢。
  • 谢谢。你能指出我在 UI 画布上使用 LineRenderer 的正确方向吗?你以前做过吗?
  • 我以前没有这样做过,但我认为这是可能的。如果你为它创建一个新帖子,我会做一些实验,看看我能想出什么。你如何设置你的 UI 很重要。 forum.unity3d.com/threads/…
  • @skyguy 修改版UI流畅运行youtube.com/watch?v=OElcWAZGHi0
猜你喜欢
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多