[英]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.