Unity3d 屏幕上的黑色痕迹
我正在Unity中创建一个简单的比萨饼切片游戏。我有一个带有碰撞器的精灵作为比萨饼,每当我在碰撞器上拖动鼠标时,它就会得到一个进入点和一个退出点,并在它们之间画一条透明的线,非常像这样: 问题是,每当我移动比萨饼时,线条都会在后面留下某种痕迹,即使我禁用了线条渲染器或整个比萨饼游戏对象。我找到的唯一解决办法是调整游戏窗口的大小,然后一切都恢复正常。 此外,如果我在最大化模式下玩游戏,屏幕上会出现黑线,这很奇怪。和以前一样,如果我调整游戏窗口的大小,一切都会恢复正常。以下是一个屏幕截图: 有人知道如何解决这个问题吗?或者,至少,在游戏模式下,从脚本中调整游戏窗口的大小?我已经尝试过调整相机的大小和改变分辨率,但它没有改变任何东西 我就是这样画线的:Unity3d 屏幕上的黑色痕迹,unity3d,unity5,Unity3d,Unity5,我正在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);
}
void OnTriggerInter2d(碰撞的R2D其他)
{
enterPoint=LineDrawer.instance.mousePos;
enterPoint.z=0;
点。添加(输入点);
}
无效OnTriggerExit2D(碰撞的R2D其他)
{
exitPoint=LineDrawer.instance.mousePos;
出口点z=0;
点。添加(出口点);
gameobjectobj=新的GameObject();
GameObject实例=实例化(obj,transform.position,Quaternion.identity)为GameObject;
销毁(obj);
instance.transform.SetParent(transform);
instance.name=“Cut”;
linerenderer=instance.AddComponent();
linerenderer.material=新材质(Shader.Find(“漫反射”);
linerenderer.useWorldSpace=false;
linerenderer.SetWidth(0.15f,0.15f);
linerenderer.SetVertexCount(2);
linerenderer.SetPosition(0,输入点);
linerenderer.SetPosition(1,exitPoint);
}
我在这里看到的问题是:
GameObject实例=实例化(obj,transform.position,transform.rotation)为GameObject;
enterPoint
和exitPoint
都在世界空间中。试试这个:
linerenderer.SetPosition(0,linerenderer.transform.InverseTransformPoint(enterPoint));
linerenderer.SetPosition(1,linerenderer.transform.InverseTransformPoint(exitPoint));
请出示您的相关代码。理想的情况下,我们可以复制这个问题。是的,我更新了帖子。请更新你的帖子,包括它。