Search Unity

Question Sprite isn't being set via Load(). What am I missing?

Discussion in 'Scripting' started by fgbg, May 24, 2020.

  1. fgbg

    fgbg

    Joined:
    Dec 22, 2012
    Posts:
    53
    I'm trying to add some basic components to a gameobject as a bit of practice. For some reason, I cannot get my sprite renderer to add a sprite to itself. What am I doing wrong? I've already set the "Rogue" sprint to a gameobject via the gui and it works fine. The path is "Assets/Resources/Sprites/Rogue.png".

    Code (CSharp):
    1.     void Start()
    2.     {
    3.         GameObject tutorial = new GameObject();
    4.         tutorial.name = "Test";
    5.         tutorial.transform.position = new Vector3(1, 1, 1);
    6.         BoxCollider2D boxCollider = tutorial.AddComponent<BoxCollider2D>();
    7.         Rigidbody2D rigidBody = tutorial.AddComponent<Rigidbody2D>();
    8.         SpriteRenderer spriteRenderer = tutorial.AddComponent<SpriteRenderer>();
    9.         Sprite sprite = Resources.Load<Sprite>("Assets/Resources/Sprites/Rogue");
    10.         spriteRenderer.sprite = sprite;
    11.         spriteRenderer.color = Color.blue;
    12.     }
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    38,745
    Line 9... check out the docs on Resources.Load... you want to give it only "Sprites/Rogue" , not the earlier bits.