C# 如何制作虚线渲染器并强制更改颜色

C# 如何制作虚线渲染器并强制更改颜色,c#,unity3d,C#,Unity3d,各位开发人员好 我试图做一个轨迹,我可以用直线渲染器通过触摸方向画一条直线。但我正试图画一条虚线,并通过强制力在绿、黄和红之间改变颜色(就像愤怒的小鸟) private void Draw(向量3力方向) { 变量长度=数学最小值(力方向大小、线长度最大值); var start=transform.position; var end=开始+力方向。归一化*长度; lineRenderer.enabled=true; 如果(lineRenderer.positionCount

各位开发人员好

我试图做一个轨迹,我可以用直线渲染器通过触摸方向画一条直线。但我正试图画一条虚线,并通过强制力在绿、黄和红之间改变颜色(就像愤怒的小鸟)

private void Draw(向量3力方向)
{
变量长度=数学最小值(力方向大小、线长度最大值);
var start=transform.position;
var end=开始+力方向。归一化*长度;
lineRenderer.enabled=true;
如果(lineRenderer.positionCount<2)
lineRenderer.positionCount=2;
lineRenderer.SetPosition(0,开始);
lineRenderer.SetPosition(1,结束);
}    

这是我画直线的方式,但我找不到一种方法使它有点和颜色。因为我对unity line是新手,所以事情对我来说有点复杂。我找了又找不到办法。因此,如果您能帮助我,请不要犹豫。

至少我知道,Unity默认线条渲染器中没有“虚线”功能,因此您可能需要自己推动

绘制直线并没有那么复杂,特别是如果您只想绘制一条直线,甚至不必使用unity直线渲染器。知道起点和终点后,可以计算其切线向量以调整直线的旋转,并根据直线的长度调整幅值

要渲染虚线,可以使每个“点”与所需的线对齐,并保持一定距离


我发现一篇文章可能对您有用:

至少我知道,Unity默认线条渲染器中没有“虚线”功能,所以您可能需要自己推动

绘制直线并没有那么复杂,特别是如果您只想绘制一条直线,甚至不必使用unity直线渲染器。知道起点和终点后,可以计算其切线向量以调整直线的旋转,并根据直线的长度调整幅值

要渲染虚线,可以使每个“点”与所需的线对齐,并保持一定距离


我发现了一篇可能对您有用的文章:

我会检查这篇文章,并尝试实现我的轨迹啊,我错过了一件事。改变颜色也不难。保留每个点的渲染器列表,可以在条件发生变化时轻松更改其颜色。但是要小心!Unity GetComponent()不是廉价函数。在update中调用每个dot的GetComponent()函数将非常繁重,因此请记住,当条件“实际”发生变化时,您必须更新dots。我将对此进行检查,并尝试实现我的轨迹啊,我错过了一件事。改变颜色也不难。保留每个点的渲染器列表,可以在条件发生变化时轻松更改其颜色。但是要小心!Unity GetComponent()不是廉价函数。在update中调用每个dot的GetComponent()函数将非常繁重,因此请记住,当条件为“实际”时,必须更新dots已更改。对lineRenderer材质使用带点的纹理?@derHugo我真的这样做了,工作起来像个魔术师。对lineRenderer材质使用带点的纹理?@derHugo我真的这样做了,工作起来像个魔术师
private void Draw(Vector3 forceDirection)
{
    var length = Mathf.Min(forceDirection.magnitude, lineLengthMax);

    var start = transform.position;
    var end = start + forceDirection.normalized * length;

    lineRenderer.enabled = true;

    if (lineRenderer.positionCount < 2)
        lineRenderer.positionCount = 2;

    lineRenderer.SetPosition(0, start);
    lineRenderer.SetPosition(1, end);
}