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

Tom*_*myE 4 c# textures tiling offset unity-game-engine

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

纹理上 3 个不同 x 偏移值的图像

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

在此输入图像描述

Pro*_*mer 5

选择原始纹理而不是游戏对象。

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

2 . 将环绕模式更改为重复

3 . 单击“应用”。完毕!

在此输入图像描述

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

在此输入图像描述

现在要根据脚本对纹理进行动画处理,

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

2 . 创建一盏灯。GameObject->Light->Directional Light。您可以将光强度调整为您喜欢的任何强度。

3 . 将纹理/精灵拖动到场景视图中的四边形。

现在为您的脚本:

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;
}
Run Code Online (Sandbox Code Playgroud)

对于 2D,您还可以使用游戏对象---> 3D 对象菜单中的平面四边形,上面的代码应该可以正常工作。