我正在使用谷歌纸板在Unity3d中创建一个VR应用程序,并且需要知道如何记录玩家所采取的路径(他们正在穿越迷宫)。有没有一种方法可以绘制用户所采用的路径(可能在控制台中;而不是在实际的游戏中并且对用户不可见)并将该路径保存为图像?Unity 3D:在游戏对象/记录路径背后绘制的游戏对象?
我需要保存的图像,或只是其中的玩家在游戏中去,这样我就可以通过电子邮件发送该视频线/数据的球员。什么是实现这一目标的最佳方式是什么?
我正在使用谷歌纸板在Unity3d中创建一个VR应用程序,并且需要知道如何记录玩家所采取的路径(他们正在穿越迷宫)。有没有一种方法可以绘制用户所采用的路径(可能在控制台中;而不是在实际的游戏中并且对用户不可见)并将该路径保存为图像?Unity 3D:在游戏对象/记录路径背后绘制的游戏对象?
我需要保存的图像,或只是其中的玩家在游戏中去,这样我就可以通过电子邮件发送该视频线/数据的球员。什么是实现这一目标的最佳方式是什么?
您需要玩家的路径List
存储为Vector3
。然后你可以使用LineRenderer
绘制line.change的LineRenderer的vertext量与LineRenderer.SetVertexCount
然后遍历所有的清单和List.Count改变LineRenderer与LineRenderer的位置。 SetPosition(loopIndex,playersPo [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
@skyguy是的,有一种方法。虽然它很复杂。这不是你原来的问题。你的问题是关于玩家的位置,与Canvas无关。你应该为Canvas创建一个新的问题。另外,你应该开始接受答案。你有很多问题没有选择答案。如果本指南提供了在原始问题中做你想做的事情,你可以简单地接受它作为答案。谢谢。 – Programmer
谢谢。您能否在UI画布上使用LineRenderer指向正确的方向?你以前做过吗? – skyguy
你看过[Trail Renderer](http://docs.unity3d.com/Manual/class-TrailRenderer.html)组件吗?显然[你可以设置淡入淡出时间为无穷](http://forum.unity3d.com/threads/trail-renderer-0-infinity.155445/),它应该让它记录一个对象在持续时间游戏。之后,您可以使用正交相机保存截图以获取它的图像。 – Serlite