Как заблокировать прохождение RayCast через слой UI?
Добавлено: 23 май 2017, 10:58
В общем есть небольшая загвоздка с которой столкнулся и не могу найти решения, вродь не сложное и крутиться реализация на уме но все не то, мож кто направит как говриться на путь истенный. Суть проблемы есть скрипт управления персонажем с видом сверху. Нужно чтобы при Touch на андроиде лучь не проходил через слой UI
Синтаксис:
Используется csharp
void Update ()
if(Physics.Raycast(gameObject.GetComponent<Camera>().ScreenPointToRay(Input.mousePosition), out hitinfo))
{
//====не годится ===============================
if (EventSystem.current.IsPointerOverGameObject())
return;
//===============================================
if(Input.GetMouseButtonDown(0))
{
PointerEventData pointer = new PointerEventData(EventSystem.current);
pointer.position = Input.mousePosition;
List<RaycastResult> raycastResults = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointer, raycastResults);
if(raycastResults.Count > 0)
{
foreach(var go in raycastResults)
{
Debug.Log(go.gameObject.name,go.gameObject);
//====здесь нужно добавить блокировку прохождения луча если тыкнули по UI
}
}
if(hitinfo.collider.tag == groundTagName)
{
PickToMoove();
}
if (hitinfo.transform.tag == "Box") {
}
if(Physics.Raycast(gameObject.GetComponent<Camera>().ScreenPointToRay(Input.mousePosition), out hitinfo))
{
//====не годится ===============================
if (EventSystem.current.IsPointerOverGameObject())
return;
//===============================================
if(Input.GetMouseButtonDown(0))
{
PointerEventData pointer = new PointerEventData(EventSystem.current);
pointer.position = Input.mousePosition;
List<RaycastResult> raycastResults = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointer, raycastResults);
if(raycastResults.Count > 0)
{
foreach(var go in raycastResults)
{
Debug.Log(go.gameObject.name,go.gameObject);
//====здесь нужно добавить блокировку прохождения луча если тыкнули по UI
}
}
if(hitinfo.collider.tag == groundTagName)
{
PickToMoove();
}
if (hitinfo.transform.tag == "Box") {
}