通过纹理偏移滚动 2D/3D 背景

Scroll 2D/3D background via texture offset

我一直在尝试在 Unity 中使用四边形显示纹理来制作无限滚动的 2D 背景。我的想法是根据玩家的位置改变四边形的偏移量。由于某种原因,当我更改偏移量时,我的图像无法正确重复,并且一旦达到 2 的偏移量就完全消失了。

An image of 3 different x offset values on my texture

如果有人知道如何解决这个问题,如果您能回复我,我们将不胜感激。

Select 原始纹理不是游戏对象。

1。将 纹理类型 更改为 纹理

2。将 Wrap Mode 更改为 Repeat

3。单击应用。完成!

最新版本的 Unity 纹理菜单已更改。见下图:

现在从脚本动画纹理,

1。创建四边形 GameObject -> 3D Object ->Quad。将四边形缩放到您想要的大小

2。创建一个光。 GameObject->Light->Directional Light。您可以根据自己的喜好调整光强度。

3。将 Texture/Sprite 拖动到场景视图中的四边形。

现在你的脚本:

public GameObject quadGameObject;
private Renderer quadRenderer;

float scrollSpeed = 0.5f;

void Start()
{
    quadRenderer = quadGameObject.GetComponent<Renderer>();
}

void Update()
{
    Vector2 textureOffset = new Vector2(Time.time*scrollSpeed,0);
    quadRenderer.material.mainTextureOffset = textureOffset;
}

对于 2D,您还可以使用 GameObject 中的 PlaneQuad - --> 3D 对象 菜单和上面的代码应该可以正常工作。