Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

GUILayer.HitTest

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public function HitTest(screenPosition: Vector3): GUIElement;
public GUIElement HitTest(Vector3 screenPosition);

Параметры

Описание

Получает GUI элемент в определенной позиции экрана.

Возвращает GUIElement в определенной точке экрана. Если screenPosition внутри некого GUIElement, этот элемент будет возвращен. Возвращает null если позиция не находится внутри какого либо элемента. GUI элементы, принадлежащие слою Ignore Raycast будут игнорироваться. Так, как будто их не существует.

screenPosition измеряется в координатах экрана, примерно как значения, возвращаемые свойством Input.mousePosition.

Важно: GUILayer.HitTest находит GUI компоненты только "старой школы" (созданные с помощью классов GUIElement, GUITexture, GUIText, GUILayer), и не работает с "новыми" элементами (которые упоминаются как "UnityGUI" и made up of all the other GUIAnything classes, and the OnGUI() call).
Поэтому, если вы используете UnityGUI, HitTest ничего не возвратит.

See Also: GUIElement.HitTest, Input.mousePosition.

	// Tests if the mouse is touching a GUIElement.
	// Add a GUITexture and put the mouse over it and
	// it will print the GUITexture name.
	private var test : GUILayer;
	test = Camera.main.GetComponent.<GUILayer>();
	function Update() {
		if(test.HitTest(Input.mousePosition) != null) {
			Debug.Log(test.HitTest(Input.mousePosition).name);
		}
	}
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { private GUILayer test; void Update() { if (test.HitTest(Input.mousePosition) != null) Debug.Log(test.HitTest(Input.mousePosition).name); } void Example() { test = Camera.main.GetComponent<GUILayer>(); } }