2017-07-18 58 views
0

我有一個目標對象(多維數據集)和一個假鼠標,我從一個對象(球體)創建並由遊戲板操縱桿控制。當我按下游戲板按鈕並精確地擊中目標對象(立方體)時,我想展現另一個對象(讓我們說;球體)。 之前,我嘗試了點擊鼠標,並且它成功了,但是當我用操縱桿控制假鼠標時,當我甚至在目標(立方體)外按下按鈕時,它仍然帶出另一個對象。這裏是代碼,如果有人可以幫我修改它。由於將按鈕上的對象更改爲精確對象

function Start() {} 
 
function Update() { 
 

 
    if (Input.GetButtonDown ("Fire1")) 
 
    { 
 
    var Cube = GameObject.FindGameObjectsWithTag ("Cube"); 
 
    if (Cube[0].GetComponent(MeshRenderer).enabled){ 
 
     var Circle1 = GameObject.FindGameObjectsWithTag ("Circle1"); 
 
     Circle1[0].GetComponent(MeshRenderer).enabled = true; 
 
     Circle1[0].GetComponent(MeshRenderer).material.color = color.red; 
 
     } 
 
    } 
 
    }

+0

你在哪裏檢查是否點擊了魔方?我看到的是當你點擊按鈕時,你就會得到你的「東西」。 – Thalthanas

+0

你所做的只是詢問「是用戶點擊嗎?好,多維數據集*有網格*嗎?」 (提示:是的它確實)「好吧,生成球體!」你從不執行任何形式的碰撞檢測。 – Draco18s

回答

0

[解決] 由於EmreE和Draco18s的回答我的問題。我已經解決了它,我確實做了一個碰撞觸發器。 這是我的代碼經過幾次試驗。

if (Input.GetButtonDown ("Fire1") && isCollide) 
{ 

var Cube = GameObject.FindGameObjectsWithTag ("Cube"); 
if (Cube[0].GetComponent(MeshRenderer).enabled){ 
    var Circle1 = GameObject.FindGameObjectsWithTag ("Circle1"); 
    Circle1[0].GetComponent(MeshRenderer).enabled = true; 
    Circle1[0].GetComponent(MeshRenderer).material.color = Color.red; 

Debug.Log("Muncul"); 
    } 
} 

function OnTriggerEnter (col : Collider) 
{ 
Debug.Log(isCollide); 
if(col.gameObject.name == "Mouse3DSphere") 
{ 
    isCollide = true; 
} 
} 
function OnTriggerExit (col : Collider) 
{ 
Debug.Log(isCollide); 
if(col.gameObject.name == "Mouse3DSphere") 
{ 
    isCollide = false; 
} 
}