Возможно тут вопрос можно решить еще какими-то способами,
но я решил применить старый добрый хак с Execution Order .
Синтаксис:
Используется csharp
public GameObject crosshair_part1;
public GameObject crosshair_part2;
public void ToggleCrossHair_Hack(bool on)
{
crosshair_part1.SetActiveRecursively(on);
crosshair_part2.SetActiveRecursively(on);
}
void Update()
{
ToggleCrossHair_Hack(true);
}
void OnPostRender()
{
ToggleCrossHair_Hack(false);
}
public GameObject crosshair_part2;
public void ToggleCrossHair_Hack(bool on)
{
crosshair_part1.SetActiveRecursively(on);
crosshair_part2.SetActiveRecursively(on);
}
void Update()
{
ToggleCrossHair_Hack(true);
}
void OnPostRender()
{
ToggleCrossHair_Hack(false);
}
Тут мы отрубаем гуитекстуры после того как отрендерился текущий кадр, в следующем кадре отрабатывают OnMouse() события (т.к. гуитекстуры выключены), в Update() врубаем гуитекстуры - они рендерятся нормально.