- Home /
InvalidCastException with my GUI Textures
Hey all,
I'm trying to make a basic results screen that pops up at the end of my stage. The basic gist is that my game object (housing only a GUITexture component and the script listed below) accesses my Performance script to find out how many lives the player has left. I then use a switch statement to find the appropriate GUITexture which I will then fade in after the results have been posted.
Problem is that I keep getting an "InvalidCastException: Cannot cast from source type to destination type" error. Any ideas on what I'm doing wrong? (Fade-in code not included yet.)
using UnityEngine;
using System.Collections;
public class Rank : MonoBehaviour {
public GUITexture playerRank;
Performance performance;
GameObject manager;
// Use this for initialization
void Start ()
{
manager = GameObject.FindGameObjectWithTag("Manager");
performance = manager.GetComponent<Performance>();
}
// Update is called once per frame
void Update ()
{
}
public void RankCheck()
{
switch (performance.lifeCount)
{
case 1:
playerRank = (GUITexture)Resources.Load("grade_C");
break;
case 2:
playerRank = (GUITexture)Resources.Load("grade_C");
break;
case 3:
playerRank = (GUITexture)Resources.Load("grade_B");
break;
case 4:
playerRank = (GUITexture)Resources.Load("grade_B");
break;
case 5:
playerRank = (GUITexture)Resources.Load("grade_A");
break;
}
}
}
Thanks for your time!
BKF
Answer by Rod-Green · Dec 28, 2011 at 08:32 AM
change
playerRank = (GUITexture)Resources.Load("xxxxx");
to
playerRank.Texture = (Texture)Resources.Load("xxxxx", typeof(Texture));
Thanks for the quick reply! Unfortunately, the above code returns an error.
"Type UnityEngine.GUITexture' does not contain a definition for
Texture' and no extension method Texture' of type
UnityEngine.GUITexture' could be found (are you missing a using directive or an assembly reference?)
edit: Never$$anonymous$$d! Looks like "playerRank.texture" did the trick. Thanks again for your help!