Hello everyone. Firstly sorry about my english. I’m developing a game for android platfom. I’m making gui controller for my game. I started to coding touch input. I have a problem with ‘y’ coordinate of screen for different class. Rect class is using top-left for (0,0)point of screen but touch input is using bottom-left of screen for (0,0) coordinates.
I’m making a button on GUI. My GUI.Button using my defined rectangle. Touch is using same rect for check. In this point, I have a problem.
simple example for my problem:
public Rect rectOfMyButton;//my rect defination for use later.
public GUIStyle myGuiStyle;
void Awake(){
//rect adjusment
rectOfMyButton = new Rect(0, 0, 200, 200);
}
void Update(){
if (Input.touchCount > 0) {
for(int i = 0; i < Input.touchCount; i++){
Touch toc = Input.GetTouch(i);
if (toc.phase == TouchPhase.Began) {
if(rectOfMyButton.Contains(toc.position)){
//Do what I want
}
}
}
}
}
void OnGUI(){
GUI.Button(rectOfMyButton, "", myGuiStyle);
}
I’m touching top-left of screen but game is not doing what I want. Because it’s thinking rectangle is down of screen.
Here some example tutorial about this subject:
http://docs.unity3d.com/ScriptReference/Rect.html
http://unity3d.com/learn/tutorials/modules/beginner/platform-specific/multitouch-input
As a result, How can I fix this problem?