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

问题描述 投票:0回答:2

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

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

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

enter image description here

c# unity-game-engine textures offset tiling
2个回答
5
投票

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

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

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

3。单击“应用”。完成!

enter image description here

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

enter image description here

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

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;
}

对于 2D,您还可以使用 GameObject ---> 3D Object 菜单中的 PlaneQuad,上面的代码应该可以正常工作。


0
投票

画布中循环背景图像动画:

  1. 创建背景画布。
  2. 画布设置:

渲染模式 > 屏幕空间 - 相机。

渲染相机 > 主相机。

层中顺序 > -1。

  1. 将图像导入到您的项目文件夹中。
  2. 图像设置:

纹理类型 > Sprite 2D 和 UI。

网格类型 > 全矩形。

环绕模式 > 镜像。

  1. 在背景画布中添加 UI/图像并将锚点预设设置为拉伸。
  2. 在项目文件夹中创建新材质。
  3. 材质设置:

着色器 > UI/默认。

  1. 背景图像设置:

源图像 > 您的图像(步骤#5)。 材料 > 您的材料(步骤#7)。

  1. 创建BackgroundAnimation.cs脚本并使用下面的代码:

    使用UnityEngine; 使用 UnityEngine.UI;

    公共类BackgroundAnimation:MonoBehaviour { 私人图片_image;

     private readonly float _scrollSpeed = 0.125f;
    
     private void Awake()
     {
         _image = GetComponent<Image>();
     }
    
     private void Start()
     {
         _image.material.mainTextureOffset = new(0, 0);
     }
    
     private void Update()
     {
         ScrollBackground();
     }
    
     private void OnApplicationQuit()
     {
         _image.material.mainTextureOffset = new(0, 0);
     }
    
     private void ScrollBackground()
     {
         Vector2 textureOffset = new(0, Time.time * _scrollSpeed);
         _image.material.mainTextureOffset = textureOffset;
     }
    

    }

  2. 将脚本附加到背景图像。

© www.soinside.com 2019 - 2024. All rights reserved.