2016-07-22 98 views
-1

我在Unity中構建一個簡單的披薩切片遊戲。我有一個精靈附帶的比薩餅撞機,每當我拖動鼠標對撞機,它得到一個進入點和退出點,並提請他們之間的透明線,幾乎是這樣的:屏幕上的黑色痕跡

問題是,無論何時移動披薩,即使禁用線渲染器或整個披薩遊戲對象,該線都會在其後面留下某種痕跡。我找到的唯一解決方案是調整遊戲窗口大小,一切都恢復正常。另外,如果我以最大化模式玩我的遊戲,屏幕會填滿黑色線條,這很奇怪。和以前一樣,如果我調整我的遊戲窗口,一切都會恢復正常。下面是截圖:

有沒有人對如何解決這個問題的想法?或者,至少,在播放模式期間,通過在腳本中以某種方式調整遊戲窗口來解決它?我已經嘗試調整相機大小並更改分辨率,但不會改變任何內容。

這是我的畫線:

void OnTriggerEnter2D (Collider2D other) 
{ 
    enterPoint = LineDrawer.instance.mousePos; 
    enterPoint.z = 0; 

    points.Add (enterPoint); 

} 

void OnTriggerExit2D(Collider2D other) 
{ 


    exitPoint = LineDrawer.instance.mousePos; 
    exitPoint.z = 0; 
    points.Add (exitPoint); 


    GameObject obj = new GameObject(); 
    GameObject instance = Instantiate (obj, transform.position, Quaternion.identity) as GameObject; 
    Destroy (obj); 

    instance.transform.SetParent (transform); 
    instance.name = "Cut"; 

    linerenderer = instance.AddComponent<LineRenderer>(); 
    linerenderer.material = new Material(Shader.Find("Diffuse")); 
    linerenderer.useWorldSpace = false; 
    linerenderer.SetWidth (0.15f, 0.15f); 
    linerenderer.SetVertexCount (2); 
    linerenderer.SetPosition (0, enterPoint); 
    linerenderer.SetPosition (1, exitPoint); 

} 
+0

請向我們展示您的相關代碼。理想情況下,可以讓我們重現問題。 – Bart

+0

是的,我更新了這篇文章。 –

+0

請更新您的文章以包含它。 – Bart

回答

0

,我可以看到這裏的問題:

  1. 你不應該給Quaternion.identity當您創建它。你正在讓它成爲一個孩子。它應該與父母相同的旋轉,否則你的本地位置將無法正常工作:

GameObject instance = Instantiate (obj, transform.position, transform.rotation) as GameObject;

  • 您沒有使用行世界空間。我打賭你的enterPointexitPoint在世界空間。試試這個:
  • linerenderer.SetPosition (0, linerenderer.transform.InverseTransformPoint(enterPoint)); linerenderer.SetPosition (1, linerenderer.transform.InverseTransformPoint(exitPoint));

  • 你爲什麼在觸發功能做這一切?沒有如果,所以這些功能執行任何時候披薩碰到任何東西。