Я делаю приложение для рисования в Unity, и я использую средство визуализации линии. Вот код, проблема заключается в том, что каждый раз, когда я делаю новую строку с другим цветом, она обращается к первому цвету. Может кто-нибудь мне помочь? Я просто не знаю, как исправить.Unity linerenderer error
Я думал о добавлении немного более 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
Можете ли вы предоставить аннотированное изображение, указывающее на то, что проблема? Я думаю, что для визуальных проблем такая информация была бы очень полезной. – Serlite