Tasharen Entertainment Forum

Support => NGUI 3 Support => Topic started by: mishaps on September 15, 2014, 02:23:13 AM

Title: change UI2DSprite's sprite at runtime broken?
Post by: mishaps on September 15, 2014, 02:23:13 AM
I'm trying to change a sprite at runtime but it doesn't work. I set my2DSprite.2DSprite to a unityengine.sprite but it never seems to appear on the screen?
Title: Re: change UI2DSprite's sprite at runtime broken?
Post by: ArenMook on September 15, 2014, 04:23:36 AM
I assume you mean UI2DSprite.sprite2D. Works fine here. What code are you using?
Title: Re: change UI2DSprite's sprite at runtime broken?
Post by: mishaps on September 16, 2014, 01:12:00 AM
thanks for the quick reply Aren, you assume right!  ;D here's the code I'm using:

  1. public class assignSpriteTest : MonoBehaviour {
  2.  
  3.         public UI2DSprite my2DSprite;
  4.         public UnityEngine.Sprite newSprite;
  5.  
  6.  
  7.         public void OnClick ()
  8.         {
  9.                 Debug.Log ("my2DSprite.sprite2D.name= " + my2DSprite.sprite2D.name);
  10.                 my2DSprite.sprite2D = newSprite;
  11.                 Debug.Log ("my2DSprite.sprite2D.name= " + my2DSprite.sprite2D.name);
  12.         }
  13. }

when I click the button this script is assigned to, the console outputs:
my2DSprite.sprite2D.name= (original sprite's name)
my2DSprite.sprite2D.name= (newSprite's name)


Which seems to me like everything works fine except the original-sprite is still visible, not the new one. Help!
Title: Re: change UI2DSprite's sprite at runtime broken?
Post by: ArenMook on September 16, 2014, 09:34:16 AM
Works fine here.
1. New scene.
2. ALT+SHIFT+D, ALT+SHIFT+C, choose one sprite
3. Added this script, chose another sprite on it:
  1. using UnityEngine;
  2.  
  3. public class Test : MonoBehaviour
  4. {
  5.         public UnityEngine.Sprite sprite;
  6.  
  7.         void OnClick ()
  8.         {
  9.                 GetComponent<UI2DSprite>().sprite2D = sprite;
  10.         }
  11. }
  12.  
4. Hit Play, click, sprite changes.
Title: Re: change UI2DSprite's sprite at runtime broken?
Post by: mishaps on September 16, 2014, 06:23:19 PM
Great, thanks for the repro aren.  8)

UI2DSprite is fine. UIButton's auto-assigned sprite was overriding it. I just assign my new sprite to UIButton.normalSprite2D instead and everything's good. Cheers.