Jump to content
Sign in to follow this  
Megadok

UI Image Offset.

Recommended Posts

Buenas chicos.

Me preguntaba cómo se podría hacer offset (por ejemplo offset en x) al sprite de una UI Image la cual la tengo en Tile mode, porque me gustaría animarla.

Utilizo el modo gráfico Universal Render Pipeline,(por si sirve el dato)

 

Gracias!

Share this post


Link to post
Share on other sites

Lo conseguí creando un UI/Default material y asignadolo al UI Image. 

Entonces añadí este código.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class prueba_offset_ui : MonoBehaviour
{
    public float offset;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        offset += 0.005f;
        GetComponent<Image>().material.SetTextureOffset("_MainTex", new Vector2(offset,0));
    }
}

Por cierto, mucho cuidado en añadir este código y NO asignar un material, por que por defecto cogerá el material ui default que llevan TODOS los UI element y os cambiará el offset de TODO el canvas, además los cambios se quedan guardados.(me ha pasado)💀

Si por acaso os pasa, yo lo solucioné dejando la pestaña de material del UI en cuestión vacío y añadiendo el código PERO poniendo el offset siempre a 0, una vez me cambió el offset de mis UI element, procedí a añadir un material personalizado para que solo los elementos que lleven este material sean sucestibles de modificación.

Un saludo!

Edited by Megadok
  • Like 1

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...