簡體   English   中英

Unity 2D C#在畫布上實例化精靈。 找不到什么問題

[英]Unity 2D C# Instantiate sprite on canvas. Can't find what's wrong

我讀了很多關於此的問題,但是我仍然找不到我的問題是什么...我試圖在畫布上實例化一個預制件。 它由一個按鈕和一個精靈組成。 該按鈕看起來不錯,但精靈在游戲中不可見(但在場景中可見)。

我做錯了,但看不到...

 [SerializeField] GameObject finishedLevel;

     private void Start()
 {
     finishedLevel = Instantiate(finishedLevel, transform.position, transform.rotation);
     finishedLevel.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, false);

 }

在此處輸入圖片說明

SpriteRenderer不能與Canvas一起使用。 您正在混淆和誤用兩者。

SpriteRenderer用於顯示2D對象,例如2D動畫角色或2D環境。 您可以將Rigidbody2DColliders附加到SpriteRenderer

畫布僅用於UI顯示。 它用於顯示諸如UI文本,按鈕,滑塊,滾動條和圖像之類的內容。 不應將Rigidbody2D和Colliders附加到其或其子對象。

通過上面的解釋,您應該能夠確定要使用哪個。 如果只需要在Canvas下顯示圖像,請使用ImageRawImage組件,因為它們是UI系統的一部分。 這應該可以,但不要使SpriteRenderer成為Canvas的子級。 如果必須使用SpriteRenderer ,則使其成為自己的對象或在另一個對象下,但不應在Canvas下。 您可能會發現Unity的UI 教程很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM