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

4
我一直在尝试使用四边形显示纹理,在Unity中制作无限滚动的2D背景。我的想法是根据玩家的位置改变四边形的偏移量。但出现了问题,当我改变偏移量时,我的图像不能正确重复,并且一旦达到2的偏移量就完全消失了。

我的纹理上有3个不同的x偏移值的图片

如果有人知道如何解决这个问题,请回复我,非常感谢。

enter image description here

1个回答

5
请选择原始纹理而不是GameObject。
1. 将“Texture Type”更改为“Texture”。
2. 将“Wrap Mode”更改为“Repeat”。
3. 点击应用,完成!
Unity最新版本的纹理菜单已经更改。请参见下面的图片:
现在要从脚本中对纹理进行动画处理,
1. 创建一个Quad GameObject -> 3D Object -> Quad。将Quad缩放到所需大小
2. 创建一个灯光。GameObject-> Light-> Directional Light。您可以将灯光强度调整为任何您喜欢的值。
3. 将您的纹理/精灵拖到场景视图中的Quad上。
现在编写您的脚本:
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,您还可以使用来自游戏对象 ---> 3D物体菜单中的平面四边形,上述代码应该可以正常工作。


谢谢程序员,我的背景现在可以正常滚动了 ;) - TommyE
@TommyEaves 不用谢。我在想它是否有效。 - Programmer
@TommyEaves 没问题。 - Programmer
啊,换行模式没有开启!太棒了,@程序员。 - Fattie
1
@JoeBlow,可能只是这样,但没有人知道他如何移动纹理,也不想听到它不起作用的消息,所以我将纹理和移动代码部分放在一起,以防他做错了其中任何一个。根据他提供的图片,看起来像是包裹模式的问题。谢谢。 - Programmer
请注意,并非所有Unity内置着色器都能工作,尽管它们的偏移量是可编辑的。我成功测试过的是“Unlit/…”(Unity 2019.1)。 - mireazma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接