Я делаю развивающую игру для детей ... Но я остановился в конце сцены, я не мог сделать код, чтобы начать новую сцену ... в Первом сценарии, когда играешь в игру, сцены не останавливаются до тех пор, покапоследняя сцена.
YouWin.pictureInPlace++;
Я много искал и не нашел свой вопрос, поэтому обратился к вам.Было проще сделать кнопку, чтобы перейти на следующую сцену, но я предпочитаю делать это автоматически, я думаю, что эта задача может быть выполнена с помощью логического значения, но она требует ссылки на игровой объект ... и сценарий на 2 изображениях.Первый скрипт (менеджер) надел четыре изображения на холсте .. Второй (YouWin) я поставил на пустой GameObject .. спасибо за помощь
Первый скрипт (менеджер)
using UnityEngine;
using UnityEngine.EventSystems;
public class Manager : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
Vector2 pos1;
public GameObject pos2;
private bool canMove;
public GameObject winner;
void Start()
{
pos1 = transform.position;
canMove = true;
}
public void OnBeginDrag(PointerEventData eventData)
{
Debug.Log(eventData);
}
public void OnDrag(PointerEventData eventData)
{
if (canMove)
transform.position = Input.mousePosition;
}
public void OnEndDrag(PointerEventData eventData)
{
float distance = Vector3.Distance(transform.position, pos2.transform.position);
if (distance < 50)
{
transform.position = pos2.transform.position;
transform.localScale = pos2.transform.localScale;
canMove = false;
winner.GetComponent<YouWin>().pictureInPlace++;
}
else
{
transform.position = pos1;
}
}
}
Второй скрипт (YouWin)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class YouWin : MonoBehaviour
{
public int NumberOfImages;
public int pictureInPlace;
public string sceneName;
void Update()
{
if (pictureInPlace == NumberOfImages)
{
StartCoroutine(LoadScene());
Debug.Log("You Win!");
}
}
IEnumerator LoadScene()
{
yield return new WaitForSeconds(1.5f);
SceneManager.LoadScene(sceneName);
}
}