- Home /
Why cant I change the image to another?
Hi All
I tried to setup a small class in my game that allows me to change the target reticle when pressing mouse left and right buttons; but I still cannot get the image to change. I also tried to use a co-routine to create a short pause between changing images, but this doesn't work either - I had to use a co-routine as the update() does not return a value.
here is my code below:
using System.Collections; using System.Collections.Generic; using UnityEngine;
using System;
using UnityStandardAssets.CrossPlatformInput; using UnityStandardAssets.Utility; using Random = UnityEngine.Random;
public class reticalChanger : MonoBehaviour {
public Sprite[] images;
public Sprite sprite;
private Vector2 movement;
// Use this for initialization
void Start (){
this.transform.GetComponent<UnityEngine.UI.Image>().sprite = sprite;
//IEnumerator Pause()
//{
// print(Time.time);
// yield return new WaitForSeconds(5);
// print(Time.time);
//}
}
// Update is called once per frame
void Update (){
if (Input.GetButtonDown("Fire1"))
{
sprite = images[1];
Debug.Log("fire button");
}
if (Input.GetButtonDown("Fire2"))
{
sprite = images[0];
Debug.Log("fire button 2");
}
/*UnityStandardAssets.Characters.FirstPerson.FirstPersonController FPC = GetComponent<UnityStandardAssets.Characters.FirstPerson.FirstPersonController>();
if (FPC.Vector() == Vector3.zero)
{
//must use IEnumerator as Update does not return a value
StartCoroutine(Pause());
}*/
}
}
Answer by FortisVenaliter · Aug 03, 2017 at 09:59 PM
You're never actually changing the sprite on the image. To do so, you need to store a reference to the Image component you want to change, then change it's sprite property. That will apply it to the actual object. Right now, you're just changing your local variable that isn't hooked up to anything.
Your answer
Follow this Question
Related Questions
Erase Images on Canvas Using UnityScript 0 Answers
Showing random image from folder on my U.I. canvas by script 0 Answers
Image in GUI warped 1 Answer
Images in Canvas will not show 2 Answers
Controlling visibility of several objects with GUI 2 Answers