我有一颗炸弹,希望它在被触碰时爆炸。我只是尝试使用光线投射来实现它,但有些东西不起作用。我正在使用统一2d设置。
此外,我正在计算机上编程(当然),所以我必须设置一些设置,以便将鼠标点击识别为触摸?
#pragma strict
var explosion:GameObject;
function Update () {
for (var i = 0; i < Input.touchCount; i++) {
if (Input.GetTouch(i).phase == TouchPhase.Began) {
// Construct a ray from the current touch coordinates
var pos:Vector3 = Camera.main.ScreenToWorldPoint (Input.mousePosition);
var hitInfo:RaycastHit2D = Physics2D.Raycast(pos, Vector2.zero);
if (hitInfo != null && hitInfo.collider != null) {
Debug.Log ("I'm hitting "+hitInfo.collider.name);
var whatsHit:GameObject = hitInfo.collider.gameObject;
if(whatsHit.CompareTag("bomb")){
whatsHit.GetComponent(BombScript).Explode(whatsHit.transform.position);
}
} else {
Debug.Log("hitting nothing");
}
}
}
}
function Explode(pos:Vector3){
GameObject.FindGameObjectWithTag("GameController").GetComponent(BombSpawner).spawnBomb = true;
Instantiate(explosion, pos, Quaternion.identity);
Destroy (this.gameObject);
}
答案 0 :(得分:0)
OnMouseDown实际上也会被触摸。当然,它限制了您跟踪手指ID的能力,但如果您不需要它,那么这是完美的,因为它允许您在PC和触摸设备上使用它而无需额外的代码。