通过纹理偏移滚动 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 中的 Plane 或 Quad - --> 3D 对象 菜单和上面的代码应该可以正常工作。
我一直在尝试在 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 中的 Plane 或 Quad - --> 3D 对象 菜单和上面的代码应该可以正常工作。