如何在 Unity 中为线条渲染器平铺纹理制作动画
How To Animate Line Renderer Tiled Texture In Unity
我想重现您在《炉石传说》中看到的画线效果,其中画了一条线,并且线的平铺纹理沿着路径动画。
这是一个视频参考:
https://youtu.be/68usg4ELkYI
我可以使用点对点的绘制线,而且我知道如何设置平铺纹理。我的问题是如何为纹理制作动画,使其向前滑动和淡出。
这里是我的画线代码供参考:
[SerializeField]
LineRenderer _lineRenderer;
private void drawLineFromCardToCursor()
{
var mousePos = Input.mousePosition;
mousePos.z = 10.35f; // Distance from camera to world
Vector3 worldPoint = Camera.main.ScreenToWorldPoint(mousePos);
// Must move it forward by 1 so it appears in front of screens
worldPoint.z = -0.001f;
_lineRenderer.SetPosition(0, start);
_lineRenderer.SetPosition(1, end);
}
这是我的线条渲染器的平铺设置:
请告知您是否知道如何使平铺动画向前移动(如果它包括在末端淡入和淡出则更好)。
谢谢。
您可以将 Texture Mode
设置为 Tile
。
然后偏移贴图:
lineRenderer.material.SetTextureOffset("_MainTex", Vector2.right * Time.time);
我想重现您在《炉石传说》中看到的画线效果,其中画了一条线,并且线的平铺纹理沿着路径动画。
这是一个视频参考: https://youtu.be/68usg4ELkYI
我可以使用点对点的绘制线,而且我知道如何设置平铺纹理。我的问题是如何为纹理制作动画,使其向前滑动和淡出。
这里是我的画线代码供参考:
[SerializeField]
LineRenderer _lineRenderer;
private void drawLineFromCardToCursor()
{
var mousePos = Input.mousePosition;
mousePos.z = 10.35f; // Distance from camera to world
Vector3 worldPoint = Camera.main.ScreenToWorldPoint(mousePos);
// Must move it forward by 1 so it appears in front of screens
worldPoint.z = -0.001f;
_lineRenderer.SetPosition(0, start);
_lineRenderer.SetPosition(1, end);
}
这是我的线条渲染器的平铺设置:
请告知您是否知道如何使平铺动画向前移动(如果它包括在末端淡入和淡出则更好)。
谢谢。
您可以将 Texture Mode
设置为 Tile
。
然后偏移贴图:
lineRenderer.material.SetTextureOffset("_MainTex", Vector2.right * Time.time);