• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Nosthertus · Jul 15, 2014 at 03:54 AM · spritespriterenderer

How to change sprite in script

i'm trying to make a sprite to be changed on specific button, i've already tried this code: #pragma strict

 var velocity : int = 8;
 var sprite : SpriteRenderer;
 
 function Start ()
 {
     sprite = GetComponent(SpriteRenderer);
 }
 
 function Update ()
 {
     if(Input.GetKey(KeyCode.LeftArrow))
     {
         sprite.sprite = Resources.Load("mario_3", typeof(Sprite));
         transform.Translate(Vector2.right * -1 * velocity * Time.deltaTime);
     }
 
     if(Input.GetKey(KeyCode.RightArrow))
     {
         sprite.sprite = Resources.Load("mario_3", typeof(Sprite));
         transform.Translate(Vector2.right * velocity * Time.deltaTime);
     }
 }

here i'm just interested in the sprite, i've got a multiple sprite splited but when i press the button to see if it works, the sprite disappears, i made a debug log on it to see what is going on and what it prompts is that script is being null when it tries to change.

i've seen some examples through the internet and they did not help, i also looked through the script reference and it does not seem to be that helpful in this case.

alt text

Update

i tried this code:

 var frame : Sprite[];
 
 private var sprite : SpriteRenderer;
 
 function Start ()
 {
     //sprites are in folder Sprites
     frame = Resources.LoadAll<Sprite>("Sprites/mario");
     sprite = GetComponent(SpriteRenderer);
 }

unity gives me this error: Operator '<' cannot be used with a left hand side of type 'function(String, System.Type): UnityEngine.Object[]' and a right hand side of type 'System.Type'.

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Fanttum · Mar 15, 2015 at 03:50 PM 0
Share

Why not just use a public variable and put your sprites you need in it? Or you could use states within an animator to change which sprite shows up.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Spy-King · Mar 13, 2015 at 03:29 PM

This is what i use and it works, i just tested it -

In BooScript -

import UnityEngine

class LineBehaviour (MonoBehaviour):

 public mysprite as SpriteRenderer
 public sprite2 as Sprite
 
 def Start ():
     sprite2 = Resources.LoadAssetAtPath("Assets/Sprites/StartingLineTwo.png", typeof(Sprite))
 
 def Update ():
     pass

I hope you can convert it into JS

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Spy-King · Mar 15, 2015 at 02:37 PM 0
Share

In JS -

public var mysprite : SpriteRenderer public var sprite2 : Sprite

function Start () { sprite2 = Resources.LoadAssetAtPath("Assets/Sprites/StartingWallTwo.png", typeof(Sprite)) }

function Update () { mysprite.sprite = sprite2 }

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

renderer.enabled doesn't work but coloring does 1 Answer

Why can't the camera render the sprite? 2 Answers

How to use spriteRenderer.sprite for a GameObject in a list? 0 Answers

Unity 5.4 - Sprite Shadow 0 Answers

Sprite renderer scaling 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges