2017-07-18 64 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; 
} 
}