Създадох Raycast, който снима от обект (не основна камера) и искам да удря елементи на потребителския интерфейс. Пример по-долу. Пример
Потребителският интерфейс е очертан в оранжево, голяма сива равнина е тестов обект, червена глава е поставена върху главата на потребителя, а зелена е DrawRay на моя raycast, прикрепен към окото. Опитвам се да направя така, че потребителят да гледа бутон на потребителския интерфейс и raycast да може да натисне този бутон.
Играх си с Graphic raycast, но изглежда нищо не работи. Сивият самолет все още е удрян от излъчването. Опитах да играя с OnPointerEnter, но работата е там, че raycast-ът на очите ми не е докосване с мишка/пръст, а е втори показалец. Някакви идеи как да го накарам да работи с isPointerOverGameObject или Graphic Raycaster или друг метод?? Или как да създадете втори указател, който ще бъде лъчът на окото? Актуален код по-долу.
private void FixedUpdate()
{
GraphicRaycaster gr = this.GetComponent<GraphicRaycaster>();
PointerEventData pointerData = new PointerEventData(EventSystem.current);
pointerData.position = Input.mousePosition;
List<RaycastResult> results = new List<RaycastResult>();
gr.Raycast(pointerData, results);
//EventSystem.current.RaycastAll(pointerData, results);
if (results.Count > 0)
{
if (results[0].gameObject.tag == "Test tag")
{
Debug.Log("test");
}
}
//----- Failed Graphic raycast experiments above; working RaycastHit below --------
RaycastHit hit;
Debug.DrawRay(transform.position, transform.forward * -10000f, Color.green);
if (Physics.Raycast(transform.position, transform.forward * -1, out hit))
{
Debug.Log(hit.transform.name);
}
}
Update
вместоFixedUpdate
2) обвийте го вif (Input.GetKey(KeyCode.Mouse0))
чек. И двете са в пример за документация и не съм сигурен колко важно е. - person Draco18s no longer trusts SE   schedule 21.05.2018