How to get/change Image Source name with code in Unity?

你说的曾经没有我的故事 提交于 2019-12-08 03:45:18

问题


we made a script and need to get the image name, we implement this task with a clumsy way below, but we still want to know whether there is a way to get the image name directly?

public class CubeManager
{
    static public Dictionary<CubeType, string> cubeTypeDict = new Dictionary<CubeType, string>();
    static private Dictionary<string, GameObject> cubeDict = new Dictionary<string, GameObject>();
    static CubeManager()
    {
        cubeTypeDict.Add(CubeType.Wall01, "Wall01");
        cubeTypeDict.Add(CubeType.Wall02, "Wall02");
        cubeTypeDict.Add(CubeType.Wall03, "Wall03");
        cubeTypeDict.Add(CubeType.Wall04, "Wall04");
        cubeTypeDict.Add(CubeType.Wall05, "Wall05");
        cubeTypeDict.Add(CubeType.Wall06, "Wall06");
        cubeTypeDict.Add(CubeType.Wall07, "Wall07");
        cubeTypeDict.Add(CubeType.Wall08, "Wall08");
        cubeTypeDict.Add(CubeType.Wall09, "Wall09");
        cubeTypeDict.Add(CubeType.Wall10, "Wall10");
        cubeTypeDict.Add(CubeType.Wall11, "Wall11");
        cubeTypeDict.Add(CubeType.Wall12, "Wall12");
        cubeTypeDict.Add(CubeType.Wall13, "Wall13");
        cubeTypeDict.Add(CubeType.Wall14, "Wall14");
        cubeTypeDict.Add(CubeType.Wall15, "Wall15");
        cubeTypeDict.Add(CubeType.Wall16, "Wall16");
        cubeTypeDict.Add(CubeType.Wall17, "Wall17");
        cubeTypeDict.Add(CubeType.Wall18, "Wall18");
        cubeTypeDict.Add(CubeType.Wall19, "Wall19");
        cubeTypeDict.Add(CubeType.Wall20, "Wall20");
        cubeTypeDict.Add(CubeType.Wall21, "Wall21");
        cubeTypeDict.Add(CubeType.Wall22, "Wall22");
        cubeTypeDict.Add(CubeType.Wall23, "Wall23");
        cubeTypeDict.Add(CubeType.Wall24, "Wall24");
        cubeTypeDict.Add(CubeType.Wall25, "Wall25");
        cubeTypeDict.Add(CubeType.Wall26, "Wall26");
        cubeTypeDict.Add(CubeType.Wall27, "Wall27");
        cubeTypeDict.Add(CubeType.Wall28, "Wall28");
        cubeTypeDict.Add(CubeType.Wall29, "Wall29");
    }

回答1:


Yes, you can by,

Image img;

Debug.Log("Image Name: " + img.sprite.name);

Additionally you can change sprite as well by giving Texture2D

img.sprite = Sprite.Create (spr.texture, img.sprite.rect, new Vector2 (0.5f, 0.5f));

Here spr is a Sprite, you can use Texture2D directly.




回答2:


this.transform.gameobject.GetComponent<Image> ().name;



来源:https://stackoverflow.com/questions/34431178/how-to-get-change-image-source-name-with-code-in-unity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!