2017-05-12

[Unity] 畫面UI使用滑鼠或觸控無反應

使用版本: Unity 5.6.0

發生狀況: 畫面UI使用滑鼠或觸控無反應


GameObject obj = new GameObject();
Button button = new GameObject("Button").gameObject.AddComponent<Button>();

button.transform.SetParent(obj.transform, false);
button.gameObject.AddComponent<Image>();

在這個地方如果是先使用SetParent再AddComponent<Image>(),
則會發生全畫面互動無效化的問題,
問題發生後,即使將該元件關閉,仍無法恢復其他元件的互動.

修正方式:  將加入順序調整

GameObject obj = new GameObject();
Button button = new GameObject("Button").gameObject.AddComponent<Button>();

button.gameObject.AddComponent<Image>();
button.transform.SetParent(obj.transform, false);

 目前測試過5.6.0與5.3.2,只有在5.6.0上會發生此狀況.


另外,
比較常見的類似問題原因,是少加了EventSystem.
(可透過在Hierarchy上新增Image來自動生成)

沒有留言:

張貼留言