Conditionals using TouchPhase.Ended
Hello, I have a problem, I am developing a game in 2D and I have errors with the touch.phase. Well, I have two objects: Object A and Object B. I put a condition that when Object A crosses over Object B nothing happens but I want to put another condition that says, if object A is dropped inside object B , For the moment a message is printed. Is it possible? I hope you can help me. Thank you
using UnityEngine;
using System.Collections;
public class Control : MonoBehaviour {
public GameObject CameraGameOver;
bool FlagMoved;
bool CollisionObjB;
TouchPhase Tphase;
public void OnTriggerEnter2D(Collider2D ObjectA){
if (ObjectA.CompareTag ("BoxA")) {
CameraGameOver.SetActive (false);
Destroy (gameObject);
} else
if (ObjectA.CompareTag ("BoxB")) {
CollisionObjB = true;
if (Time.timeScale == 1 && FlagMoved) {
Time.timeScale = 1;
CameraGameOver.SetActive (false);
}
//FIRST ATTEMPT
if (Input.touchCount == 0 && Input.GetMouseButtonUp(0) ){
Debug.Log ("TouchPhase Ended");
Time.timeScale = 0;
CameraGameOver.SetActive (true);
CollisionObjB = false;
}
//SECOND ATTEMPT
if (TPhase.Equals(TouchPhase.Ended)){
debug.log("hello world");
}
}
}
// Update is called once per frame
void Update () {
// Handle native touch events
foreach (Touch touch in Input.touches) {
HandleTouch(touch.fingerId, Camera.main.ScreenToWorldPoint(touch.position), touch.phase);
}
// Simulate touch events from mouse events
if (Input.touchCount == 0) {
if (Input.GetMouseButtonDown(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Began);
Debug.Log ("TouchBegan");
}
if (Input.GetMouseButton(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Moved);
Debug.Log ("Moved");
FlagMoved = true;
}
if (Input.GetMouseButtonUp(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Ended);
Debug.Log ("TouchEnded");
if (CollisionObjB) {
Debug.Log ("");
Time.timeScale = 0;
CameraGameOver.SetActive (true);
CollisionObjB = false;
}
}
}
}
void Start () {
}
private void HandleTouch(int touchFingerId, Vector3 touchPosition, TouchPhase touchPhase) {
switch (touchPhase) {
case TouchPhase.Began:
break;
case TouchPhase.Moved:
//Debug.Log ("");
break;
case TouchPhase.Ended:
break;
}
}
Comment
Your answer
Follow this Question
Related Questions
Cannot call trigger-event when dragging object via touch 1 Answer
Need to move gameObject when triggering collider 0 Answers
Stucking with RTS Building detection using 2D Raycasts and 2DBoxColliders 0 Answers
2D Sprites: Animator sync two animations using layers 1 Answer
Rhythm game LONG NOTES 0 Answers