2016-11-30 17 views
2

HoloLensのグラフを1つにまとめるにはどうすればよいですか? 私はこのプラットフォームを初めて使い、どんなパッケージがうまく動作しないのかわからないので、グラフはデータを動的に取得します。HoloLensグラフを描く

編集:私はLineRendererを試してみましたが、3D-グラフを描画するための可能な解決策は、パーティクルシステムを使用している非常にユニティ

+0

あなたは何種類のグラフについて話しているのでしょうか。それはダイアグラムですか?また、それは3Dの図形で作られた3DグラフかUIで作られた2Dのグラフでなければなりませんか? – Everts

+0

オブジェクトの上にグラフ線を描画する必要があります。そのため、2d線グラフです。しかし、すべてが最終的には3dでなければなりませんか?すべてのことからホログラム。 –

+0

はい、ライン(2D)を作成するためのフラットなUIイメージでも、薄いキューブ(3D)でもかまいません。基本的に、私はあなたの質問に答えたと思います。オブジェクトに付けられたキャンバスを持つ細いUIラインか、オブジェクトに取り付けられた薄いストレッチされたキューブ。 – Everts

答えて

2

のバージョン5.4に限られそうです:用のコンポーネントのスクリプトのための

簡単な例を粒子系:

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(ジャスパーフリック)からパーティクルシステムで(この例含む)2D/3Dグラフを描画するためのチュートリアル良いです。参照:http://catlikecoding.com/unity/tutorials/graphs/少し古くなっているので、この場合はdepreceated color/size-Propertiesの代わりにstartSize/startColorを使用する必要があります。

しかし、私はすでにホロレンズでそれをテストしていて、うまくいきました。粒子の量が多い場合は、HoloToolkitシェーダを使用してパフォーマンスを向上させるためのいくつかの実験が必要です。

その他の質問がある場合は、私に相談してください。

+1

'Start()'には閉じ括弧 '}'がありませんか? – derHugo

+0

あなたはそうです。それを私が直した。情報をありがとう! – HoloJens