私の問題はゲームシーンにショップボタンがありますので、それを押してもゲームシーンが始まります。ボタンを押して店のシーンに連れて行ってください!私は自分のコードを掲示します。私はあなたが私を助けてくれることを願っています。私はそれについて一日読むことを費やしました。結果は得られませんでした。私はゲームシーンのボタンを押すとゲームが始まります
モバイル入力スクリプト
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スクリプト
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");
}
}
}
あなたは 'loadLevel'を示しどこで見ることができません。私は[this](https://docs.unity3d.com/ScriptReference/Application.LoadLevel.html)を使ってシーン間を入れ替えます。シーンを追加して設定をビルドするようにしてください。 – Thalthanas
私はあなたが望むものが得られなかったと思う、最初に私は店のシーンのためにシーン1のためにシーンを2つ持っていなければならないので、私はショップを押すときのゲームシーンに問題があるボタンを押すとゲームが自動的に開始され、モバイル入力スクリプトを無効にすると店舗のシーンに移動するので、モバイル入力スクリプトに問題があると思った –
しかし、両方のコードでシーンを入れ替えることはできません?あなたは私を見せたり、どのスクリプトのどの行でこれをしているか教えてもらえますか? – Thalthanas