- Home /
How to Destroy multiple object on one hit?
I'm use Raycast. when I'm touch the program destroy one object but my figer is hit 2 object
using UnityEngine; using System.Collections;
public class create : MonoBehaviour {
public GameObject prefab;
public float gridX = 33f;
public float gridY = 1f;
public float spacing = 2f;
public float startsize = 3.5f;
public float size = 1.0f;
public float resize;
private GameObject temp;
public int j;
Vector3 spawn_position;
//ConnectDB conDB = new ConnectDB();
void Awake(){
//conDB.OpenConnect ();
}
void insert(string button_size, string status, string button_position, string hit_position)
{
/*string sql = "INSERT INTO DEx1(ButtonSize, Status, ButtonPosition, HitPosition) VALUES ('"+ button_size +"','"+ status +"','"+ button_position +"','"+ hit_position +"')";
Debug.Log("......"+sql);
conDB.InsertEnrties (sql);*/
}
void Start() {
size = 16;
resize = startsize - (size * 0.2f);
prefab.transform.localScale = new Vector3(resize,resize,0);
for (int y = 0; y < gridY; y++) {
for (int x = 0; x < gridX; x++) {
spawn_position = new Vector3(x, 0, y) * spacing;
Instantiate(prefab, transform.position +spawn_position, Quaternion.identity);
}
}
}
void Update()
{
int layerMask = 1 << 8;
layerMask = ~layerMask;
for (j = 0; j<Input.touchCount; j++){
if (Input.GetTouch(j).phase != TouchPhase.Ended && Input.GetTouch(j).phase != TouchPhase.Canceled) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.GetTouch(j).position);
if (Physics.Raycast (ray, out hit,100)) {
if (hit.collider.tag == "ITEM") {
//insert("Size"+size, "CORRECT", spawn_position+"", hit.point+"");
Destroy(hit.collider.gameObject);
}
}
}
}
}
void destroyer(){
}
void spawning()
{
}
}
thank so much
untitled1.png
(145.7 kB)
Comment
Best Answer
Answer by darthtelle · Apr 22, 2014 at 09:47 AM
Try using Physics.RaycastAll instead. Once you've got an array of all the colliders being hit by the ray, loop through and destroy them all.
RaycastHit[] hits;
hits = Physics.RaycastAll(transform.position, transform.forward, 100.0F);
for(int hitIndex = 0; hitIndex < hits.Length; hitIndex++)
{
Destroy(hits[hitIndex].collider.gameObject);
}
Your answer
Follow this Question
Related Questions
Android touch 3d Object event 1 Answer
Insatiate and Destroy problem 0 Answers
ray destroying prefab not clone? 2 Answers
i need help in walking character in android, using raycast where user touches? 0 Answers
Select and drag a gameObject with Touch 2 Answers