Как определить нажатие на прозрачную кнопку с помощью unity?

#c# #unity3d

Вопрос:

У меня есть кнопка с изображением (на холсте пользовательского интерфейса) , которая частично прозрачна. Щелчки срабатывают только при нажатии на непрозрачную часть. Мне нужны щелчки, чтобы срабатывать везде, даже на прозрачном изображении. Как я могу этого достичь?

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

очень просто поместите компонент кнопки на свое изображение (лучше всего внутри холста), затем вы проверяете внутри компонента кнопки, что «Интерактивно» проверено, а также проверяется ваше прозрачное изображение «Цель Raycast», иначе вы не сможете этого сделать. если у вас есть объекты внутри игры (например, дверь), вы можете спросить внутри скрипта, который хранится на «двери» (пример)

 if (Input.GetMouseButtonDown(0)){ // if left button pressed...  Ray ray = camera.ScreenPointToRay(Input.mousePosition);  RaycastHit hit;  if (Physics.Raycast(ray, out hit)){  // the object identified by hit.transform was clicked  // do whatever you want  } }  

я надеюсь, что это уже помогло, если это не так или вы хотите оставить положительный отзыв, не стесняйтесь использовать раздел комментариев.

[ПРАВКА] о, извините, я неправильно понял ваш вопрос, под компонентом кнопки вы можете изменять цвета по отдельности, например, при наведении или нажатии, чтобы сделать все это полностью прозрачным, перетащив значение A в палитре цветов.

Комментарии:

1. пока ваша кнопка не деактивирована, вы должны быть готовы к этому, если у вас активны изображение и компонент кнопки и установлены флажки, о которых я сказал в своем ответе

2. Я думаю, вы все еще неправильно понимаете вопрос: у OP есть значок, некоторые части которого прозрачны, некоторые нет. OP утверждает, что в настоящее время клики работают правильно только на непрозрачных деталях, и хочет, чтобы он работал также на прозрачных деталях.

3. тогда мой способ решения будет работать, это пользовательский интерфейс (внутри холста) или он находится внутри вашей игровой сцены (как реквизит)?

4. Вопрос как об пользовательском интерфейсе внутри canvas. Я использую стандартную функцию OnClick кнопки. Он хорошо работает, но только с непрозрачными изображениями. На моем изображении есть прозрачные части, и когда вы нажимаете на прозрачную часть — ничего не происходит.

5. как вам удалось сделать изображение прозрачным? я надеюсь, что вы просто перетащили значение A внутри палитры цветов, а не отключили компонент изображения, это важно для передачи вашего попадания, поэтому изображение должно быть «Целью передачи».