有没有办法给这个线渲染器添加动画?我的意思是我想画一条从点1到点3的线,这条线应该像进度条一样移动。如何在下面的脚本中做到这一点
public class DrawLineRenderer : MonoBehaviour
{
public Transform Point1;
public Transform Point2;
public Transform Point3;
public LineRenderer linerenderer;
public float vertexCount = 12;
public float Point2Ypositio = 2;
// Start is called before the first frame update
void Start()
{
linerenderer.SetWidth(10, 10);
}
// Update is called once per frame
void Update()
{
}
public void buttonPress()
{
Point2.transform.position = new Vector3((Point1.transform.position.x + Point3.transform.position.x)/2, Point2Ypositio, (Point1.transform.position.z + Point3.transform.position.z) /2);
var pointList = new List<Vector3>();
for(float ratio = 0;ratio<=1;ratio+= 1/vertexCount)
{
var tangent1 = Vector3.Lerp(Point1.position, Point2.position, ratio);
var tangent2 = Vector3.Lerp(Point2.position, Point3.position, ratio);
var curve = Vector3.Lerp(tangent1, tangent2, ratio);
pointList.Add(curve);
}
linerenderer.positionCount = pointList.Count;
linerenderer.SetPositions(pointList.ToArray());
}
}
1条答案
按热度按时间omhiaaxx1#
若要使用线性插值设置线渲染器的动画,可以使用
Lerp()
方法在线的点之间进行插值。下面是一个示例,说明如何实现这一点:
此脚本使用
Update()
循环中的Lerp()
设置线条渲染器的位置,并在调用ButtonPress()
函数时通过将_isAnimating
标志设置为true来启动动画。这将使线条在每次按下按钮时从起点到终点进行动画显示。