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

C# 通过纹理偏移滚动2D/3D背景,c#,unity3d,textures,offset,tiling,C#,Unity3d,Textures,Offset,Tiling,我一直在尝试使用一个四边形来显示纹理,在Unity中创建一个无限滚动的2D背景。我的想法是根据玩家的位置改变四边形的偏移量。由于某些原因,当我更改偏移量时,我的图像不会正确重复,一旦达到偏移量2,图像就会完全消失 如果有人知道如何解决这个问题,如果你能给我回电话,我将不胜感激 选择原始纹理,而不是游戏对象 1。将纹理类型更改为纹理 2。将包裹模式更改为重复 3。单击应用。完成了 纹理的最新版本Unity菜单已更改。请参见下图: 现在,要从脚本设置纹理动画 1。创建一个四元组GameObje

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

如果有人知道如何解决这个问题,如果你能给我回电话,我将不胜感激


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

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

2。将包裹模式更改为重复

3。单击应用。完成了

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

现在,要从脚本设置纹理动画

1。创建一个四元组
GameObject->3D Object->Quad
。将四边形缩放到所需的大小

2。创建一个灯光<代码>游戏对象->灯光->平行光。您可以根据自己的喜好调整灯光强度

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;
}
公共游戏对象quadGameObject;
私人渲染器;
浮动速度=0.5f;
void Start()
{
quadRenderer=quadGameObject.GetComponent();
}
无效更新()
{
Vector2 textureOffset=新的Vector2(时间*滚动速度,0);
quadRenderer.material.mainTextureOffset=纹理偏移;
}


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

谢谢程序员,我的背景现在可以正常滚动了;)@汤姆:不客气。我想知道它是否有效。@TommyEaves没问题。啊,包装模式没有打开!才华横溢@Programmer@JoeBlow可能只是这样,但没有人知道他是如何移动纹理的,也不想听到它不起作用,所以我把纹理和移动代码部分放在一起,以防他做错了。根据他提供的图片,看起来像是包裹模式问题。谢谢。