У меня есть 2 текстуры gui.обнаружить касание на графическом изображении Текстуры
В зависимости от ширины и высоты экрана я хранил его в gui.
Один для джойстика и другой для стрелялки.
Теперь касаясь стрелка, джойстик перемещается к этой определенной части.
Я использовал rect.Contains.
void Start() {
xx = Screen.width - Screen.width/12;
yy = Screen.height - Screen.height/8;
lb = Screen.width/10;
rect = new Rect(-xx/2, -yy/2, lb, lb);
shooter.pixelInset = rect;
shooter.enabled = false;
}
void OnGUI(){
if(characterScript.playbool){
shooter.enabled = true;
}
if (rect.Contains(Event.current.mousePosition)){
shootBool = true;
print("shoot");
alert.text="shoot";
}
}
Не работает должным образом для меня. Подумайте, что координаты пространства отличаются от координат gui. Как можно исправить эту проблему. Кто-нибудь может предложить любой другой хороший метод.
Ошибка ошибки CS1061: тип 'UnityEngine.Rect 'не содержит определения для« HitTest », и не может быть найден метод расширения« HitTest »типа« UnityEngine.Rect »(вам не хватает директивы использования или сборки ссылка?) – Sona
Ой извините, что работает только с элементами GUI. Вместо этого вы можете попробовать 'rect.Contains (touch.position)'! – Joetjah
Я отредактировал свой ответ, чтобы отразить это. – Joetjah