How can I make a button clickable from its back?

I’m developing an educational app with augmented reality resources, using vuforia. In this, I’m using buttons on top of the 3d models to interact with them (perform animations, expand panels with information, etc).

Some of these buttons are “floating” around the model, and when the user rotates the models, they rotate accordingly.

My problem is: When a button is rotated, the user can see its back, which presents the same image as the front of it (except mirrored), but it’s not clickable.

How can I make it clickable from behind?

Or, if that’s not possible/easy, how can I change the back of its texture to a “blank” image, so that the user can perceive that it’s not clickable?

I’ve tried creating a copy of the button directly behind it, but unity apparently never knows which of the 2 buttons should be in front (even when I space them apart), and keeps alternating which one is visible.

Bump, but throwing in a video to illustrate the issue:


Also developing an educational app, using Point-and-click gameplay for users to “discover” certain points of interest in a VR-scene. The Daydream controller uses out-of-the-box GoogleVR-prefabs.
The GVRraycaster will interact with the backside of a standard Button-component, however: not with the frontside.
In this scenario, onMouseHover will trigger the visibility of a smaller, white button.
But as you can see: onMouseHover will only work on one side, just as onMouseClick.


This could be avoided by simply flipping the Canvasses 180-degrees. But having to manually adjust every object will take too much time, so I’m using LookAt to orient these Buttons automatically. Here’s where the problem comes in: the buttons now face the player with their non-interactive frontside. So I’m left:

  • Fixing this manually
  • Using Quaternions to do an auto-180-flip after the LookAt-orientation
  • Making GVRraycast interactable with both/front-sides of a Button.

Hoping someone knows an easy fix, or is able to point out something I’ve missed.

Cheers,
Danny


Edit

Made a work-around by flipping the interactable area 180-degrees.

public class Example : MonoBehaviour {

	private Transform target;

	void Awake()
	{
		// Points the button at 0, 0, 0 on start-up
		transform.LookAt(Vector3.zero);
	}

	void Start () {
		// Turn the button around on y-axis
		transform.localRotation	= Quaternion.Euler (0, 180, 0);	
	}
}