统一绘制 HoloLens 图形的最佳方法是什么?我是这个平台的新手,不知道哪些包可以工作,哪些不可以,图表动态获取数据。
编辑:我尝试过 LineRenderer,但在 Unity 5.4 版中似乎非常有限
绘制 3D-Graph 的一种可能解决方案是使用粒子系统:
粒子系统组件脚本的简单示例:
public class Graph: MonoBehaviour {
//Particle-Resolution of the Graph
[Range(10, 100)]
public int resolution = 10;
private int currentResolution;
private ParticleSystem.Particle[] points;
void Start()
{
currentResolution = resolution;
points = new ParticleSystem.Particle[resolution];
float increment = 1f / (resolution - 1);
for (int i = 0; i < resolution; i++)
{
float x = i * increment;
points[i].position = new Vector3(x, 0f, 0f);
points[i].startColor = new Color(0f, 0f, 0f);
points[i].startSize = 0.1f;
}
}
void Update()
{
if ((currentResolution != resolution) || (points == null))
{
CreatePoints();
}
FunctionDelegate f = functionDelegates[(int)function];
for (int i = 0; i < points.Length; i++)
{
Vector3 p = points[i].position;
p.y = Sine(p.x);
points[i].position = p;
Color c = points[i].GetCurrentColor(GetComponent<ParticleSystem>());
c.g = p.y;
c.r = 1f - p.y;
points[i].startColor = c;
}
GetComponent<ParticleSystem>().SetParticles(points, points.Length);
}
private static float Sine(float x)
{
return 0.5f + 0.5f * Mathf.Sin(2 * Mathf.PI * x + Time.timeSinceLevelLoad);
}
}
使用来自 CatLikeCoding (Jasper Flick) 的粒子系统绘制 2D/3D 图形(包括此示例)的一个很好的教程。参考:http ://catlikecoding.com/unity/tutorials/graphs/ 。它有点过时了,在这种情况下,您必须使用 startSize/startColor 而不是弃用的 color/size-Properties。
但是我已经用全息透镜测试了它,它工作得很好。如果您有大量粒子,则需要使用 HoloToolkit 着色器进行一些实验以获得更好的性能 :-)
如果您还有其他问题:请问我。