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

时间:2016-04-29 21:29:56

标签: c# unity3d textures offset tiling

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

An image of 3 different x offset values on my texture

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

enter image description here

1 个答案:

答案 0 :(得分:1)

选择原始纹理而不是GameOBject。

<强> 1 即可。将纹理类型更改为纹理

<强> 2 即可。将换行模式更改为重复

第3 即可。单击“应用”完成!

enter image description here

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

enter image description here

现在从脚本动画纹理

<强> 1 即可。创建四元组GameObject -> 3D Object ->Quad。将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;
}

对于2D,您还可以使用 GameObject ---&gt;中的 Plane Quad 3D Object 菜单和上面的代码应该可以正常工作。