Skip to main content
Don't repeat tags in title. There's no engine called Unity 2D, it's just Unity. Format code.
Source Link
DMGregory
  • 141k
  • 23
  • 258
  • 401

Unity2D. Change sprites for multiple image in one codefunction

I am trying to make a digital clock (24:00 type), where each number is an individual image, that should change. So, i amI want to change sprites for multiple imageimages in one piece of code, but.

But when i initializingI initialize two imageimages, the second one is just ignoreignored. And plus when i am, I attach this code to the object, it workworks on that object, not on the image, that iI am pointing at. How can iI fix that?

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class Timer : MonoBehaviour

{

[Header("Sprites for times")]

public Sprite _One;

public Sprite _Two;

public Sprite _Three;

public Sprite _Four;

public Sprite _Five;

public Sprite _Six;

public Sprite _Seven;

public Sprite _Eight;

public Sprite _Nine;

public Sprite _Zero;

public GameObject BACK;
public Image _seconds;
public Image _minuts;

private bool secy = true;
private bool miny = true;
private void Start()
{
    BACK = GetComponent<GameObject>();
    _seconds = GetComponent<Image>();
    _seconds.sprite = _Zero;
    _minuts = GetComponent<Image>();
    _minuts.sprite = _Zero;
}

void FixedUpdate()
{
    StartCoroutine(_AloneMinut());
    StartCoroutine(_Decade());
}

private bool JustWhait_sec()
{
    return secy;
}

private bool JustWhait_min()
{
    return miny;
}
private IEnumerator _AloneMinut()
{
    yield return new WaitUntil(JustWhait_sec);
    secy = false;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _One;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Two;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Three;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Four;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Five;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Six;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Seven;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Eight;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Nine;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Zero;
    secy = true;
}

private IEnumerator _Decade()
{
    yield return new WaitUntil(JustWhait_min);
    miny = false;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _One;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Two;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Three;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Four;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Five;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Zero;
    miny = true;
}

}

using UnityEngine;
using System.Collections;

using UnityEngine.UI;

public class Timer : MonoBehaviour
{
    
    [Header("Sprites for times")]    
    public Sprite _One;    
    public Sprite _Two;    
    public Sprite _Three;    
    public Sprite _Four;    
    public Sprite _Five;    
    public Sprite _Six;    
    public Sprite _Seven;   
    public Sprite _Eight;    
    public Sprite _Nine;    
    public Sprite _Zero;

    public GameObject BACK;
    public Image _seconds;
    public Image _minuts;

    private bool secy = true;
    private bool miny = true;

    private void Start()
    {
        BACK = GetComponent<GameObject>();
        _seconds = GetComponent<Image>();
        _seconds.sprite = _Zero;
        _minuts = GetComponent<Image>();
        _minuts.sprite = _Zero;
    }

    void FixedUpdate()
    {
        StartCoroutine(_AloneMinut());
        StartCoroutine(_Decade());
    }

    private bool JustWhait_sec()
    {
        return secy;
    }

    private bool JustWhait_min()
    {
        return miny;
    }
    private IEnumerator _AloneMinut()
    {
        yield return new WaitUntil(JustWhait_sec);
        secy = false;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _One;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Two;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Three;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Four;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Five;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Six;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Seven;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Eight;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Nine;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Zero;
        secy = true;
    }

    private IEnumerator _Decade()
    {
        yield return new WaitUntil(JustWhait_min);
        miny = false;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _One;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Two;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Three;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Four;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Five;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Zero;
        miny = true;
    }
}

Unity2D. Change sprites for multiple image in one code

I am trying to make a digital clock (24:00 type), where each number is individual image, that should change. So, i am want to change sprites for multiple image in one code, but when i initializing two image, the second one is just ignore. And plus when i am attach this code to the object it work on that object, not on image, that i am pointing at. How can i fix that?

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class Timer : MonoBehaviour

{

[Header("Sprites for times")]

public Sprite _One;

public Sprite _Two;

public Sprite _Three;

public Sprite _Four;

public Sprite _Five;

public Sprite _Six;

public Sprite _Seven;

public Sprite _Eight;

public Sprite _Nine;

public Sprite _Zero;

public GameObject BACK;
public Image _seconds;
public Image _minuts;

private bool secy = true;
private bool miny = true;
private void Start()
{
    BACK = GetComponent<GameObject>();
    _seconds = GetComponent<Image>();
    _seconds.sprite = _Zero;
    _minuts = GetComponent<Image>();
    _minuts.sprite = _Zero;
}

void FixedUpdate()
{
    StartCoroutine(_AloneMinut());
    StartCoroutine(_Decade());
}

private bool JustWhait_sec()
{
    return secy;
}

private bool JustWhait_min()
{
    return miny;
}
private IEnumerator _AloneMinut()
{
    yield return new WaitUntil(JustWhait_sec);
    secy = false;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _One;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Two;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Three;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Four;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Five;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Six;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Seven;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Eight;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Nine;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Zero;
    secy = true;
}

private IEnumerator _Decade()
{
    yield return new WaitUntil(JustWhait_min);
    miny = false;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _One;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Two;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Three;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Four;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Five;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Zero;
    miny = true;
}

}

Change sprites for multiple image in one function

I am trying to make a digital clock (24:00 type), where each number is an individual image, that should change. So, I want to change sprites for multiple images in one piece of code.

But when I initialize two images, the second one is just ignored. And plus when, I attach this code to the object, it works on that object, not on the image that I am pointing at. How can I fix that?

using UnityEngine;
using System.Collections;

using UnityEngine.UI;

public class Timer : MonoBehaviour
{
    
    [Header("Sprites for times")]    
    public Sprite _One;    
    public Sprite _Two;    
    public Sprite _Three;    
    public Sprite _Four;    
    public Sprite _Five;    
    public Sprite _Six;    
    public Sprite _Seven;   
    public Sprite _Eight;    
    public Sprite _Nine;    
    public Sprite _Zero;

    public GameObject BACK;
    public Image _seconds;
    public Image _minuts;

    private bool secy = true;
    private bool miny = true;

    private void Start()
    {
        BACK = GetComponent<GameObject>();
        _seconds = GetComponent<Image>();
        _seconds.sprite = _Zero;
        _minuts = GetComponent<Image>();
        _minuts.sprite = _Zero;
    }

    void FixedUpdate()
    {
        StartCoroutine(_AloneMinut());
        StartCoroutine(_Decade());
    }

    private bool JustWhait_sec()
    {
        return secy;
    }

    private bool JustWhait_min()
    {
        return miny;
    }
    private IEnumerator _AloneMinut()
    {
        yield return new WaitUntil(JustWhait_sec);
        secy = false;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _One;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Two;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Three;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Four;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Five;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Six;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Seven;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Eight;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Nine;
        yield return new WaitForSeconds(2);
        _seconds.sprite = _Zero;
        secy = true;
    }

    private IEnumerator _Decade()
    {
        yield return new WaitUntil(JustWhait_min);
        miny = false;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _One;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Two;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Three;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Four;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Five;
        yield return new WaitForSeconds(20);
        _minuts.sprite = _Zero;
        miny = true;
    }
}
Source Link
Ratty
  • 13
  • 3

Unity2D. Change sprites for multiple image in one code

I am trying to make a digital clock (24:00 type), where each number is individual image, that should change. So, i am want to change sprites for multiple image in one code, but when i initializing two image, the second one is just ignore. And plus when i am attach this code to the object it work on that object, not on image, that i am pointing at. How can i fix that?

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class Timer : MonoBehaviour

{

[Header("Sprites for times")]

public Sprite _One;

public Sprite _Two;

public Sprite _Three;

public Sprite _Four;

public Sprite _Five;

public Sprite _Six;

public Sprite _Seven;

public Sprite _Eight;

public Sprite _Nine;

public Sprite _Zero;

public GameObject BACK;
public Image _seconds;
public Image _minuts;

private bool secy = true;
private bool miny = true;
private void Start()
{
    BACK = GetComponent<GameObject>();
    _seconds = GetComponent<Image>();
    _seconds.sprite = _Zero;
    _minuts = GetComponent<Image>();
    _minuts.sprite = _Zero;
}

void FixedUpdate()
{
    StartCoroutine(_AloneMinut());
    StartCoroutine(_Decade());
}

private bool JustWhait_sec()
{
    return secy;
}

private bool JustWhait_min()
{
    return miny;
}
private IEnumerator _AloneMinut()
{
    yield return new WaitUntil(JustWhait_sec);
    secy = false;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _One;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Two;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Three;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Four;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Five;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Six;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Seven;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Eight;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Nine;
    yield return new WaitForSeconds(2);
    _seconds.sprite = _Zero;
    secy = true;
}

private IEnumerator _Decade()
{
    yield return new WaitUntil(JustWhait_min);
    miny = false;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _One;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Two;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Three;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Four;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Five;
    yield return new WaitForSeconds(20);
    _minuts.sprite = _Zero;
    miny = true;
}

}