当角色在统一 2D 中移动时循环地砖

Wil*_*rim 1 2d tile unity-game-engine

我正在尝试创建一个地面瓷砖,一旦离开屏幕,它就会移动到当前屏幕中的另一个地面瓷砖前面的前方位置。

在此输入图像描述

我几乎没有在代码中尝试过任何对这个问题有一点用处的东西。有人可以为我指出正确的方向来完成这项工作,这样我就不必复制数百个图块吗?

谢谢!

Ala*_*nde 5

将此票据附在您的Tile物品上。

using UnityEngine;

    public class SpawnTiles : MonoBehaviour {

        private Material currentTile;
        public float speed;
        private float offset;


        // Use this for initialization
        void Start () {

            currentTile = GetComponent<Renderer>().material;
        }

        // Update is called once per frame
        void Update () {

            offset += 0.001f;
            currentTile.SetTextureOffset ("_MainTex", new Vector2 (offset * speed, 0));
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑

这就是你想要的吗?

如果是,请按照以下步骤操作。

创建 > 3D 对象 > 四边形(根据需要调整大小)

在此输入图像描述

选择您的图块精灵:

纹理类型 = 纹理

换行模式 = 重复

在此输入图像描述

现在创建新的Material:创建>材质

选择:着色器 = 未照亮/纹理

纹理选择您之前的纹理。

在此输入图像描述

拖放该Material内部Quad对象。

在此输入图像描述

在检查员处调整瓷砖。

在此输入图像描述

结果

在此输入图像描述

创建新脚本SpawnTiles并附加到Quad对象。

using UnityEngine;

public class SpawnTiles : MonoBehaviour {

    private Material currentTile;
    public float speed;
    private float offset;

    // Update is called once per frame
    void Update () {

        GetComponent<Renderer>().material.mainTextureOffset = new Vector2 (Time.time * speed, 0f);
    }
}
Run Code Online (Sandbox Code Playgroud)

在检查器处调整瓷砖移动速度。

Quad根据需要完成重命名对象。

在此输入图像描述