- Home /
Cannot click button hidden under image
I am trying to create touch on screen animation,but when i click on button the animation show up before button don t and it doesn t click on him.Don t know how and why that happens.I tried to move both back and forward in canvas but nothing changed
void Update ()
{
if (Input.touches.Length > 0) {
for (int i = 0; i < Input.touchCount; i++) {
if(EventSystem.current.currentSelectedGameObject!=null && EventSystem.current.currentSelectedGameObject.name=="Button"){
Debug.Log("EventSystem.current.currentSelectedGameObject");
return;
}
//check textures that should not be able to clicked no and show touch animation
foreach (GameObject guit in guitextures) {
if (guit.GetComponent<GUITexture>() == null || (guit.GetComponent<GUITexture>().HitTest (Input.GetTouch (i).position))) {
Debug.Log("Touch on Texture");
return;
}
}
ray = Camera.main.ScreenPointToRay (Input.GetTouch (i).position);
switch (Input.GetTouch (i).phase) {
case TouchPhase.Began:
if (Physics.Raycast (ray, out rayHitInfo) && rayHitInfo.distance<MAX_DISTANCE
&& rayHitInfo.transform.tag.Equals(PICKABLE_OBJECTS_TAG)){
Debug.Log("Touch with everything");
addTouchCursor(Input.GetTouch (i).position.x,Input.GetTouch (i).position.y);
rayHitInfo.transform.gameObject.SendMessage ("touchOnObjectBegan", rayHitInfo.distance, SendMessageOptions.DontRequireReceiver);
addTouchCursor(Input.GetTouch (i).position.x,Input.GetTouch (i).position.y);
}else{
addTouchCursorMiss(Input.GetTouch (i).position.x,Input.GetTouch (i).position.y);
}
break;
case TouchPhase.Ended:
if (Physics.Raycast (ray, out rayHitInfo)){
rayHitInfo.transform.gameObject.SendMessage ("touchOnObjectEnded", SendMessageOptions.DontRequireReceiver);
}
break;
}
}
}
}
and here method addTouchCursor the other use only different prefab almost same
private void addTouchCursor(float x,float y){ GameObject canvas=(GameObject)GameObject.Find("Canvas"); Image image = (Image)GameObject.Instantiate (PREFAB_OBJECT); image.transform.SetParent(canvas.transform,false); RectTransform rectNew=image.GetComponent<RectTransform>(); rectNew.offsetMin=new Vector2(10,10); rectNew.offsetMax=new Vector2(20,20); image.transform.position=new Vector3(x,y,5); }
Your answer
Follow this Question
Related Questions
Problem with image press event 0 Answers
How to make the back image appear before the front image where it is scratched? 0 Answers
Detecting onDrag over UI images 1 Answer
Scaling giant images as 2D Sprite 0 Answers
how to draw a line with your finger 1 Answer