示例#1
0
    private void LateUpdate()
    {
        Vector2 speed = new Vector2(scrollSpeed.x * Time.deltaTime * 60f, scrollSpeed.y * Time.deltaTime * 60f);

        foreach (var sprRenderer in allSpriteRenderers)
        {
            sprRenderer.transform.localPosition += new Vector3(speed.x, speed.y);
        }

        positionDelta += VectorHelper.Absolute(speed);

        if (Mathf.Abs(scrollSpeed.x) > 0 && positionDelta.x >= (int)(sprite.bounds.size.x))
        {
            positionDelta.x = 0;
            for (int c = 0; c < columns; c++)
            {
                for (int r = 0; r < rows; r++)
                {
                    var sprRenderer = allSpriteRenderers[c * rows + r];
                    sprRenderer.transform.localPosition = new Vector3(GetTilePosition(c, r).x, sprRenderer.transform.localPosition.y);
                }
            }
        }

        if (Mathf.Abs(scrollSpeed.y) > 0 && positionDelta.y >= (int)(sprite.bounds.size.y))
        {
            positionDelta.y = 0;
            for (int c = 0; c < columns; c++)
            {
                for (int r = 0; r < rows; r++)
                {
                    var sprRenderer = allSpriteRenderers[c * rows + r];
                    sprRenderer.transform.localPosition = new Vector3(sprRenderer.transform.localPosition.x, GetTilePosition(c, r).y);
                }
            }
        }
    }