繁体   English   中英

创建带有图像的按钮

[英]Create the button with image

对不起这个愚蠢的问题。 我还是个初学者。 我可以使用以下代码创建一个简单的精灵:

Texture2D texture2D = new Texture2D(2, 2);

texture2D.LoadImage(File.ReadAllBytes(DevyatInitializer.path + "/Stamina/StaminaTest1.png"));

Sprite value = Sprite.Create(texture2D, new Rect(0f,0f, (float)texture2D.width, (float)texture2D.height), new Vector2(0.5f, 0.5f));

GameObject Stamina = new GameObject("New Sprite");

Stamina.transform.SetParent(this.owner.view.charAppearance.transform);

Stamina.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f);

Stamina.transform.localPosition = new Vector3(0.0f, 10f, 0.0f);

Stamina.layer = LayerMask.NameToLayer("Effect");

Stamina.SetActive(true);

SpriteRenderer renderer = Stamina.AddComponent<SpriteRenderer>();

renderer.sprite = value;

我试图根据我已有的代码创建一个工作按钮,但没有出现:

Texture2D texture2D = new Texture2D(2, 2);

texture2D.LoadImage(File.ReadAllBytes(DevyatInitializer.path + "/ArtWork/Shield.png"));

Sprite value = Sprite.Create(texture2D, new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height), new Vector2(0.5f, 0.5f));

GameObject buttonObject = new GameObject("Shield");

buttonObject.transform.SetParent(this.owner.view.charAppearance.transform);

buttonObject.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f);

buttonObject.transform.localPosition = new Vector3(0f, 0f, 0f);

buttonObject.layer = LayerMask.NameToLayer("Effect");

buttonObject.GetComponent<Button>().onClick.AddListener(TaskOnClick);

buttonObject.SetActive(true);

SpriteRenderer renderer = buttonObject.AddComponent<SpriteRenderer>();

renderer.sprite = value;

我可能误解了按钮 object 的形成。 有人可以帮忙吗?

我认为您忘记使用Instantiate()方法。 看看这个页面,您可能会找到有关其工作原理的有用信息。

所以基本上你用你的代码有效地创建了一些东西,但它只是没有出现在你的场景中,因为你没有实例化它。

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM