my problem is I have a Shop button in the game scene so when I press it doesn't take me to the shop scene it starts the game, I want when I press the button take me to the shop scene! , I will post my code I hope you can guys help me because I spend one day reading about that and I didn't get any result PLEASE HELP!
Mobile Input script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MobileInput : MonoBehaviour {
private const float DEADZONE = 100.0f;
public static MobileInput Instance { set; get; }
private bool tap, swipeLeft, swipeRight, swipeUp, swipeDown;
private Vector2 swipeDelta, startTouch;
public bool Tap { get { return tap; } }
public Vector2 SwipeDelta { get { return swipeDelta; } }
public bool SwipeLeft { get { return swipeLeft; } }
public bool SwipeRight { get { return swipeRight; } }
public bool SwipeUp { get { return swipeUp; } }
public bool SwipeDown { get { return swipeDown; } }
private void Awake()
{
Instance = this;
}
private void Update()
{
//Reseting all the booleans
tap = swipeLeft = swipeRight = swipeUp = swipeDown = false;
//Let's check for inputs
#region Stanedalone Inputs
if (Input.GetMouseButtonDown(0))
{
tap = true;
startTouch = Input.mousePosition;
}
else if (Input.GetMouseButtonUp(0))
{
startTouch = swipeDelta = Vector2.zero;
}
#endregion
#region Mobile Inputs
if (Input.touches.Length != 0)
{
if (Input.touches[0].phase == TouchPhase.Began)
{
tap = true;
startTouch = Input.mousePosition;
}
else if (Input.touches[0].phase == TouchPhase.Ended || Input.touches[0].phase == TouchPhase.Canceled)
{
startTouch = swipeDelta = Vector2.zero;
}
}
#endregion
//Caluclate distance
swipeDelta = Vector2.zero;
if (startTouch != Vector2.zero)
{
//Let's check with mobile
if (Input.touches.Length != 0)
{
swipeDelta = Input.touches[0].position - startTouch;
}
//Lets check with standalone
else if (Input.GetMouseButton(0))
{
swipeDelta = (Vector2)Input.mousePosition - startTouch;
}
}
//Let's check if we're beyond the deadzone
if (swipeDelta.magnitude > DEADZONE)
{
// this is a confirmed swipe
float x = swipeDelta.x;
float y = swipeDelta.y;
if (Mathf.Abs(x) > Mathf.Abs(y))
{
// Left or right
if (x < 0)
swipeLeft = true;
else
swipeRight = true;
}
else
{
// Up or Down
if (y < 0)
swipeDown = true;
else
swipeUp = true;
}
startTouch = swipeDelta = Vector2.zero;
}
}
}
GameManager script
private void Update()
{
if (MobileInput.Instance.Tap && !isGameStarted)
{
isGameStarted = true;
motor.StartRunning();
FindObjectOfType<GlacierSpawner>().IsScrolling = true;
FindObjectOfType<CameraMotor>().IsMoving = true;
gameCanvas.SetTrigger("Show");
MenuAnim.SetTrigger("Hide");
}
if (isGameStarted && !isDead)
{
//Bump up the score
score += (Time.deltaTime * modifierScore);
if (lastScore != (int)score)
{
lastScore = (int)score;
scoreText.text = score.ToString("0");
}
}
}
You can create an invisible UIButton to cover the screen except the ShopButton area. Define two public methods in your GameManager script, one for start game, on for show shop, and link these to methods to the UIButtons by adding an OnClick Handler in the Button Component of your UIButtons.
Don't forget to disable the PlayButton after clicking it ;)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.