Я пытаюсь удалить объект, на который нажата мышь. Я делаю 2D-игру, используя новый Unity3D 4.3. Вот код, который я используюRaycasting, чтобы найти mouseclick на Object in unity 2d games
void Update() {
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
isHit = false;
Destroy(GameObject.Find(hit.collider.gameObject.name));
}
}
}
Управление не входит в внутренний цикл if. (isHit
не устанавливается как ложное).
У объекта есть коллайдер? У него есть коллайдер и жесткий? –
Да, он содержит коллайдер и жесткое тело –
Я использовал Physics2D, и он работает! Это модифицированный код Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); Vector2 orgin = new Vector2 (ray.origin.x, ray.origin.y); RaycastHit2D hit = Physics2D.Linecast (orgin, -Vector2.up, 1 << LayerMask.NameToLayer («Поддерживает»)); Уничтожить (hit.collider.gameObject); Но теперь, когда даже тогда, когда я нажимаю на других местах объект будет удален .. Я думаю, что проблема с направлением raycast быть -Vector2.up .. В каком направлении я должен бросить его ?? –