2016-09-07 5 views
-1

私はUnityで描画アプリケーションを作成していますが、私はラインレンダラを使用しています。ここにコードがあります。問題は、最初の色の後ろに描かれている別の色で改行するたびに問題になります。誰かが私を助けることができますか?私はちょうど修正する方法を知らない。Unity linerendererエラー

私は、色を切り替えるときにラインレンダラに少しだけz位置を追加することを考えていましたが、それがうまくいくかどうかはわかりません。

public GameObject lineDrawPrefabs; 
    public Material black; 
    public Material green1; 
    public Material blue; 
    public Material pink; 
    public Material orange; 
    public Material brown; 
    public Material green2; 
    public Material blue2; 
    public Material yellow; 
    public Material red; 
    public Material white; 

    public static string nowcolor; 
    private bool isMousePressed; 
    private GameObject lineDrawPrefab; 
    private LineRenderer lineRenderer; 
    List<Vector3> drawPoints = new List<Vector3>(); 

    // public static bool pencil; 



    void Start() 
    { 

     isMousePressed = false;  
    } 


    void Update() 
    { 
     // if (Input.GetMouseButtonDown(1)) 
     // { 
     //  // delete the LineRenderers when right mouse down 
     //  GameObject[] delete = GameObject.FindGameObjectsWithTag("LineDraw"); 
     // int deleteCount = delete.Length; 
     // for (int i = deleteCount - 1; i >= 0; i--) 
     //  Destroy(delete[i]); 
     // } 

     if (Input.GetMouseButtonDown(0)) 
     { 
      // left mouse down, make a new line renderer 
      isMousePressed = true; 
      lineDrawPrefab = GameObject.Instantiate(lineDrawPrefabs) as GameObject; 
      lineRenderer = lineDrawPrefab.GetComponent<LineRenderer>(); 
      CheckColor(); 
      lineRenderer.SetVertexCount(0); 
     } 
     else if (Input.GetMouseButtonUp(0)) 
     { 
      // left mouse up, stop drawing 
      isMousePressed = false; 
      drawPoints.Clear(); 
     } 

     if (isMousePressed) 
     { 
      // when the left mouse button pressed 
      // continue to add vertex to line renderer 
      Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 
      mousePos.z = -1000; 
      if (!drawPoints.Contains(mousePos)) 
      { 
       drawPoints.Add(mousePos); 
       lineRenderer.SetVertexCount(drawPoints.Count); 
       lineRenderer.SetPosition(drawPoints.Count - 1, mousePos); 
      } 
     } 
    } 

    public static void deletedrawing() { 
     //  // delete the LineRenderers when right mouse down 
      GameObject[] delete = GameObject.FindGameObjectsWithTag("LineDraw"); 
      int deleteCount = delete.Length; 
      for (int i = deleteCount - 1; i >= 0; i--) 
      Destroy(delete[i]); 
    } 

Here is the image,first time I used the black color,then the green

+0

問題の内容を示す注釈付きの画像を提供できますか?私は視覚的な問題のために、その種の情報が本当に役に立つと思います。 – Serlite

答えて

0

私は、層に問題、私はちょうど使用順序を固定し、ユーザが色を選択+1するたびに追加、今ではメインスクリプト

にこれを追加しました細かい

を働いています

public static int orderinlayer = 1; 

さらにlineRenderer.sortingOrder = orderinlayerを追加しました。ここ

if (Input.GetMouseButtonDown(0)) 
     { 
      isMousePressed = true; 
      lineDrawPrefab = GameObject.Instantiate(lineDrawPrefabs) as GameObject; 
      lineRenderer = lineDrawPrefab.GetComponent<LineRenderer>(); 
      lineRenderer.sortingOrder = orderinlayer; 
      CheckColor(); 
      lineRenderer.SetVertexCount(0); 
     } 

と私はちょうど各color.Nowその作業のために

ScriptLineGameobject.orderinlayer += 1; 

を追加し、カラーピッカーが何であるかを別のスクリプトから!