2016-04-06 106 views
-2

我有兩個遊戲對象objAobjB其中後者是前者的孩子。 ObjA處於活動狀態,B已禁用。我希望objB在指針進入時出現,在指針退出時要消失。我不僅要這樣,而且要永遠。 我試過下面的代碼,附objA來控制objB的可見性,但它不成功。有人可以幫助我PLZ:Unity 3d控制對象的可見性

using UnityEngine; 
using UnityEngine.EventSystems; 

public class eventvisbtoggle : MonoBehaviour 
{ 
    public void PointerEnter(BaseEventData eventData) 
    { 
     ObjB.gameobject.SetActive(true); 
    } 

    public void PointerExit(BaseEventData eventData) 
    { 
     ObjB.gameobject.SetActive(false); 
    } 
} 
+1

我回答了你的第一個問題,並提供了學習Unity和C#的鏈接。我不認爲你接受了這個建議。祝你好運! – Programmer

+0

@程序員:非常感謝你的建議。我認爲我的要求是非常基本的,並且要學習第一階段的展示/隱藏,並且不要反對。我相信這裏有專家會指導我學習除了像我這樣的新手用戶不友好的unity3d教程。 – user6160538

+3

「學習顯示/隱藏的第一階段」這個,我向你展示了你還沒有接受答案的'SetActive'。這裏沒有專家會指導你學習Unity。 stackoverflow不是教程網站。它是解決問題的方法,你應該先學習基礎知識來幫助自己。如果Unity教程對您來說很難,請在YouTube上嘗試來自** Brackeys **的教程。遵循一個教程並完成它,然後您將瞭解如何將ObjA和ObjB聲明爲GameObject以及如何實現接口。 https://www.youtube.com/user/Brackeys – Programmer

回答

0

遊戲對象的啓用狀態和它是否可見是有區別的。主動確定腳本和其他組件是否附加到對象上。一個名爲Renderer的組件是實際在場景中繪製GameObject的組件。你想要做的是禁用附加到目標

foreach(var r in GetComponentsInChildren<Renderer>()){ 
    r.enabled = false; 
} 

注意,這是很慢的代碼渲染,你應該指定使用編輯程序的適當渲染到你的腳本,但是這僅僅是一個例子。