делает этот скрипт эксклюзивным для кнопки в команде On Click
это имеет мало смысла. Тем более что метод Update
вызывается все время каждый кадр. Таким образом, вызов этого параметра из onClick
вызовет его дважды в этом кадре. Также от Button.onClick
Обратите внимание, что EventType.MouseDown
и EventType.MouseUp
вызываются до onClick
.
Вы можете, например, используйте интерфейсы IPointerDownHandler
и IPointerUpHandler
для реализации этого
public class clickshake : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
{
//Detect current clicks on the GameObject (the one with the script attached)
public void OnPointerDown(PointerEventData pointerEventData)
{
transform.localScale -= new Vector3(0.1F, 0.1f, 0);
}
//Detect if clicks are no longer registering
public void OnPointerUp(PointerEventData pointerEventData)
{
transform.localScale += new Vector3(0.1F, 0.1f, 0);
}
}
Примечание
Убедитесь, что в сцене есть EventSystem
, чтобы разрешить обнаружение щелчков. Для обнаружения щелчков на не-UI GameObjects убедитесь, что PhysicsRaycaster
подключен к камере.
и объекты, не относящиеся к пользовательскому интерфейсу, также нуждаются в Collider
.