Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£

¡¡¥³¥ë¡¼¥Á¥óµ¡Ç½¤Î³Ø½¬¶µºà¤Ç¤¹¡£

*WaitUntil ¤Î¥æ¡¼¥¹¥±¡¼¥¹

¡¡¤³¤Á¤é¤Ç¤Ï yield return new WaitUntil ¤Î¥æ¡¼¥¹¥±¡¼¥¹¤È¥µ¥ó¥×¥ë¥³¡¼¥É¤ò³Ø½¬¤·¤Þ¤¹¡£

----

**£±¡¥¥Ü¥¿¥ó¤Î²¡²¼ÂÔ¤Á

¡¡¥×¥ì¥¤¥ä¡¼¤¬ÆÃÄê¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤Þ¤ÇÂÔµ¡¤·¡¢¤½¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½èÍý¤ò³¹Ô¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£


[+]
=|BOX|
using UnityEngine;
using System.Collections;

public class WaitUntilExample1 : MonoBehaviour
{
void Start()
{
StartCoroutine(WaitForButton());
}

IEnumerator WaitForButton()
{
Debug.Log("Waiting for button press...");

yield return new WaitUntil(() => Input.GetKeyDown(KeyCode.Space));

Debug.Log("Space key pressed!");
}
}
||=
[END]

----

**£²¡¥¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ª¥óÂÔ¤Á

¡¡ÆÃÄê¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¢¥¯¥Æ¥£¥Ö(¤¢¤ë¤¤¤ÏÈó¥¢¥¯¥Æ¥£¥Ö)¤Ë¤Ê¤ë¤Î¤òÂÔµ¡¤·¡¢¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¢¥¯¥Æ¥£¥Ö(¤¢¤ë¤¤¤ÏÈó¥¢¥¯¥Æ¥£¥Ö)¤Ë¤Ê¤Ã¤¿¤é½èÍý¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£

[+]
=|BOX|
using UnityEngine;
using System.Collections;

public class WaitUntilExample2 : MonoBehaviour
{
public GameObject targetObject;

void Start()
{
StartCoroutine(WaitForChangeTargetState());
}

IEnumerator WaitForChangeTargetState()
{
Debug.Log("Waiting for target object to be active...");

yield return new WaitUntil(() => targetObject.activeSelf == true);

Debug.Log("Target object is now active!");
}
}
||=
[END]

¡¡¤³¤Î¥µ¥ó¥×¥ë¤Ç¤Ï¡¢WaitForChangeTargetState¥³¥ë¡¼¥Á¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
»ØÄꤵ¤ì¤¿targetObject¤¬¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£
targetObject.activeSelf ==false ¤ò¾ò·ï¤È¤¹¤ë¤³¤È¤Ç¡¢Èó¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¤Î¤òÂԤĤ³¤È¤â¤Ç¤­¤Þ¤¹¡£

----

**£³¡¥¥Õ¥é¥°¤Î³Îǧ

¡¡ÆÃÄê¤Î¾ò·ï¤ä¥Õ¥é¥°¤¬Ëþ¤¿¤µ¤ì¤ë¤Þ¤ÇÂÔµ¡¤·¡¢¤½¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¤é½èÍý¤ò·Ñ³¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£

[+]
=|BOX|
using UnityEngine;
using System.Collections;

public class WaitUntilExample3 : MonoBehaviour
{
public bool flag = false;
public int count = 0;
public int targetCount = 10;

void Start()
{
StartCoroutine(WaitForFlag());
StartCoroutine(WaitForCount());
}

IEnumerator WaitForFlag()
{
Debug.Log("Waiting for flag to be true...");

yield return new WaitUntil(() => flag == true);

Debug.Log("Flag is now true!");
}

IEnumerator WaitForCount()
{
Debug.Log("Waiting for button press...");

yield return new WaitUntil(() => count > targetCount);

Debug.Log("Space key pressed!");
}
}
||=
[END]

¡¡¤³¤Î¥µ¥ó¥×¥ë¤Ç¤Ï¡¢WaitForFlag¥³¥ë¡¼¥Á¥ó¤È WaitForCount¥³¥ë¡¼¥Á¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
WaitForFlag¥³¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ flag¤¬true¤Ë¤Ê¤ë¤Î¤òÂÔµ¡¤·¤Þ¤¹¡£
WaitForCount¥³¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ÊÑ¿ô¤¬¾ò·ï¤òËþ¤¿¤¹¤Þ¤ÇÂÔµ¡¤·¤Þ¤¹¡£

----

*³Ø½¬ÌäÂê

¡¡WaitUntil¤ò»ÈÍѤ·¤Æ¡¢ÆÃÄê¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤ë¤Î¤òÂÔµ¡¤¹¤ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£
¥Ü¥¿¥ó¤Î²¡²¼¡¢ÆÃÄê¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ä¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂÖÊѲ½¤Ê¤É¡¢Ç¤°Õ¤Î¾ò·ï¤ò»ØÄꤷ¡¢Àµ¾ï¤ËÆ°ºî¤¹¤ë¤³¤È¤ò¸¡¾Ú¤·¤Æ¤¯¤À¤µ¤¤¡£

[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using System.Collections;

public class WaitForCondition : MonoBehaviour
{
public bool conditionMet = false;

void Start()
{
StartCoroutine(WaitForConditionToBeTrue());
}

IEnumerator WaitForConditionToBeTrue()
{
Debug.Log("Waiting for condition to be true...");
yield return new WaitUntil(() => conditionMet == true);
Debug.Log("Condition is now true!");
}
}
||=

¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢conditionMet¤¬true¤Ë¤Ê¤ë¤Î¤òÂÔµ¡¤¹¤ëWaitForConditionToBeTrue¥³¥ë¡¼¥Á¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

[END]

----

*Îý½¬ÌäÂê

**£±¡¥Ä̾ï¤Î¥á¥½¥Ã¥É¤Ç¤Î¼ÂÁõ¥Á¥ã¥ì¥ó¥¸

¡¡¤³¤Á¤é¤Ç¤Ï¡¢Ä̾ï¤Î¥á¥½¥Ã¥É¤Ç¤Î¼ÂÁõ¤È¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤ò»È¤Ã¤¿¼ÂÁõ¤ÎξÊý¤Î¥Ñ¥¿¡¼¥ó¤ò³Ø½¬¤·¤Þ¤¹¡£
¤Þ¤º¤Ï¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤ÏÍøÍѤ»¤º¡¢Ä̾ï¤Î¥á¥½¥Ã¥É¤Î¤ß¤Ç¡¢²¼µ­¤ÎÌäÂê¤ò¹Í¤¨¤Æ¡¢½èÍý¤ò¼ÂÁõ¤·¤Æ¤¯¤À¤µ¤¤¡£

----

=|PERL|
£±¡¥¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯¤òÂÔµ¡¤·¡¢¤½¤Î¸å¡¢¥·¡¼¥óÁ«°Ü¤µ¤»¤ëÌäÂê¤È¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡ÁÛÄê¤È¤·¤Æ¤Ï¥¿¥¤¥È¥ë¤«¤é¥á¥¤¥ó¤Ø¤ÎÁ«°Ü¤Ç¤¹¡£
||=

[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using UnityEngine.SceneManagement;

public class ClickToStart : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButtonDown(0)) // º¸¥¯¥ê¥Ã¥¯¤òÂÔµ¡
{
SceneManager.LoadScene("MainScene"); // ¥á¥¤¥ó¥·¡¼¥ó¤ØÁ«°Ü
}
}
}
||=

¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Ëè¥Õ¥ì¡¼¥à¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤òÂÔµ¡¤·¡¢¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤éMainScene¤ËÁ«°Ü¤·¤Þ¤¹¡£

[END]

----

=|PERL|
£²¡¥Å¨¤ÎÇ˲õ¿ô¤ò·×¬¤·¡¢ÌÜɸ¿ô¤ÎÊÑ¿ôÃͤˤʤ俤饲¡¼¥à¥¯¥ê¥¢¤È¤¹¤ë¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
||=

¡¡£²¤ÄÄ󼨤·¤Þ¤¹¡££±¤Ä¤Ï Update ¥á¥½¥Ã¥É¤Ç¾ï¤ËÃͤò´Æ»ë¤¹¤ëÊýË¡¡£
¤â¤¦£±¤Ä¤ÏŨ¤òÅݤ·¤¿¥¿¥¤¥ß¥ó¥°¤Ç¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¸úΨ¤è¤¯´ÉÍý¤¹¤ëÊýË¡¤Î£²¤Ä¤Ç¤¹¡£

¡¡½èÍýÉé²ÙŪ¤Ë¤Ï¡¢£²¤ÄÌܤÎÊýË¡¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£
¤Ê¤¼¤Ê¤é¡¢¥Ü¥¿¥ó¤Î¤è¤¦¤Ë¤¤¤Ä²¡¤µ¤ì¤ë¤«¤ï¤«¤é¤Ê¤¤¾ì¹ç¤È°Û¤Ê¤ê¡¢Å¨¤òÅݤ¹¡¢¤È¤¤¤¦½èÍý¤Î¥¿¥¤¥ß¥ó¥°¤¬·è¤Þ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç
¾ï»þ´Æ»ë¤¹¤ëɬÍפϤʤ¯¡¢Å¬Àڤʥ¿¥¤¥ß¥ó¥°¤Ç½èÍý¤ò¤½¤ÎÅÔÅÙ¹Ô¤¦¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¤«¤é¤Ç¤¹¡£


[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;

public class EnemyManager : MonoBehaviour
{
public int totalEnemies = 10;
private int destroyedEnemies = 0;

¡¡¡¡void Update() {
EnemyDestroyed();
}

void EnemyDestroyed()
{
destroyedEnemies++;
if (destroyedEnemies >= totalEnemies)
{
Debug.Log("Game Clear!");
}
}
}
||=

¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Update ¥á¥½¥Ã¥ÉÆâ¤Ç EnemyDestroyed() ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢¾ï»þ¡¢´Æ»ë¤ò¹Ô¤¤¤Þ¤¹¡£
totalEnemies¤Ç»ØÄꤵ¤ì¤¿Å¨¤Î¿ô¤ò·×¬¤·¡¢EnemyDestroyed¥á¥½¥Ã¥É¤ÇŨ¤¬Ç˲õ¤µ¤ì¤ë¤¿¤Ó¤Ë¥«¥¦¥ó¥È¤òÁý¤ä¤·¤Þ¤¹¡£Á´¤Æ¤ÎŨ¤¬Ç˲õ¤µ¤ì¤ë¤È¡¢¡ÖGame Clear!¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£

----

=|BOX|
using UnityEngine;

public class EnemyManager : MonoBehaviour
{
public int totalEnemies = 10;
private int destroyedEnemies = 0;


public void EnemyDestroyed()
{
destroyedEnemies++;
if (destroyedEnemies >= totalEnemies)
{
Debug.Log("Game Clear!");
}
}
}
||=

¡¡¤³¤Á¤é¤Ç¤Ï³°Éô¥¯¥é¥¹¤è¤ê EnemyDestroyed()¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£


[END]

----

=|PERL|
£³¡¥¡Ú£²¡Û¤Î½èÍý¤ò²þÎɤ·¡¢¡Ú£±¡Û¤Îµ¡Ç½¤ÈÁȤ߹ç¤ï¤»¤Æ¡¢¥¯¥ê¥¢É½¼¨¸å¤Ë²èÌ̤ò¥¯¥ê¥Ã¥¯¤·¤¿¤é¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü¤¹¤ë¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
||=

¡¡¡Ú£²¡Û¤Î½èÍý¤ò Update ¤Ç¤Ï¤Ê¤¯¡¢³°Éô¥¯¥é¥¹¤«¤é¼Â¹Ô¤¹¤ë·Á¤ËÊѹ¹¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£


[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameClearManager : MonoBehaviour
{
public int totalEnemies = 10;
private int destroyedEnemies = 0;
private bool isGameClear = false;

void Update()
{
// ¥²¡¼¥à¥¯¥ê¥¢¸å¤Î²èÌÌ¥¯¥ê¥Ã¥¯»þ¤Î½èÍý
if (isGameClear && Input.GetMouseButtonDown(0))
{
SceneManager.LoadScene("TitleScene");
}
}

public void EnemyDestroyed()
{
destroyedEnemies++;
if (destroyedEnemies >= totalEnemies && !isGameClear)
{
isGameClear = true;
Debug.Log("Game Clear!");
}
}
}
||=

¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Update¥á¥½¥Ã¥É¤Ç¥¯¥ê¥¢ÍѤΥե饰¤È²èÌ̤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤ë¤Î¤òÂÔµ¡¤·¡¢¾ò·ï¤òËþ¤¿¤·¤¿¤¦¤¨¤Ç¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤é¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü¤·¤Þ¤¹¡£

[END]

----

**£²¡¥¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ç¤Î¼ÂÁõ¥Á¥ã¥ì¥ó¥¸

¡¡Àè¤Û¤ÉÄ̾ï¤Î¥á¥½¥Ã¥É¤ÇºîÀ®¤·¤¿¡Ú£±¡Û¡Á¡Ú£³¡Û¤Î½èÍý¤ò¡¢¤¹¤Ù¤Æ¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤ò»È¤Ã¤Æºî¤êľ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

----

=|PERL|
£±¡¥¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯¤òÂÔµ¡¤·¡¢¤½¤Î¸å¡¢¥·¡¼¥óÁ«°Ü¤µ¤»¤ëÌäÂê¤È¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡ÁÛÄê¤È¤·¤Æ¤Ï¥¿¥¤¥È¥ë¤«¤é¥á¥¤¥ó¤Ø¤ÎÁ«°Ü¤Ç¤¹¡£
||=

[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

public class ClickToStart : MonoBehaviour
{
IEnumerator Start()
{
yield return new WaitUntil(() => Input.GetMouseButtonDown(0)); // º¸¥¯¥ê¥Ã¥¯¤òÂÔµ¡
SceneManager.LoadScene("MainScene"); // ¥á¥¤¥ó¥·¡¼¥ó¤ØÁ«°Ü
}
}
||=

¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Start¥³¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æº¸¥¯¥ê¥Ã¥¯¤òÂÔµ¡¤·¡¢¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤é¥á¥¤¥ó¥·¡¼¥ó¤ËÁ«°Ü¤·¤Þ¤¹¡£

[END]

----

=|PERL|
£²¡¥Å¨¤ÎÇ˲õ¿ô¤ò·×¬¤·¡¢ÌÜɸ¿ô¤ÎÊÑ¿ôÃͤˤʤ俤饲¡¼¥à¥¯¥ê¥¢¤È¤¹¤ë¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
||=


[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using System.Collections;

public class EnemyManager : MonoBehaviour
{
public int totalEnemies = 10;
private int destroyedEnemies = 0;

public void Start()
{
StartCoroutine(CheckGameClear());
}

IEnumerator CheckGameClear()
{
while (destroyedEnemies < totalEnemies)
{
yield return null; // Ëè¥Õ¥ì¡¼¥àÂÔµ¡
}
Debug.Log("Game Clear!");
}

public void EnemyDestroyed()
{
destroyedEnemies++;
}
}
||=
¡¡
¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢CheckGameClear¥³¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¡¢Å¨¤ÎÇ˲õ¿ô¤¬ÌÜɸ¿ô¤Ë㤹¤ë¤Þ¤ÇÂÔµ¡¤·¡¢ÌÜɸ¿ô¤Ë㤷¤¿¤é¡ÖGame Clear!¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
Ũ¤¬Ç˲õ¤µ¤ì¤ë¤¿¤Ó¤ËEnemyDestroyed¥á¥½¥Ã¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢Ç˲õ¤µ¤ì¤¿Å¨¤Î¿ô¤ò¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£
¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢CheckGameClear¥³¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¡¢Å¨¤ÎÇ˲õ¿ô¤¬ÌÜɸ¿ô¤Ë㤹¤ë¤Þ¤ÇÂÔµ¡¤·¡¢ÌÜɸ¿ô¤Ë㤷¤¿¤é¡ÖGame Clear!¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£Å¨¤¬Ç˲õ¤µ¤ì¤ë¤¿¤Ó¤ËEnemyDestroyed¥á¥½¥Ã¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢Ç˲õ¤µ¤ì¤¿Å¨¤Î¿ô¤ò¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£

[END]

----

=|PERL|
£³¡¥¡Ú£²¡Û¤Î½èÍý¤ò²þÎɤ·¡¢¡Ú£±¡Û¤Îµ¡Ç½¤ÈÁȤ߹ç¤ï¤»¤Æ¡¢¥¯¥ê¥¢É½¼¨¸å¤Ë²èÌ̤ò¥¯¥ê¥Ã¥¯¤·¤¿¤é¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü¤¹¤ë¥µ¥ó¥×¥ë²òÅú¤òÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
||=


[+]¡¡¢«¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È²òÅúÎã¤òɽ¼¨¤·¤Þ¤¹¡£
=|BOX|
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

public class GameClearManager : MonoBehaviour
{
public int totalEnemies = 10;
private int destroyedEnemies = 0;
private bool isGameClear = false;
public string titleSceneName = "TitleScene";

void Start()
{
StartCoroutine(GameClearCoroutine());
}

IEnumerator GameClearCoroutine()
{
while (true)
{
yield return null; // 1¥Õ¥ì¡¼¥àÂÔµ¡
// ¥²¡¼¥à¥¯¥ê¥¢É½¼¨
Debug.Log("Game Clear!");

// ¥²¡¼¥à¥¯¥ê¥¢¤Î¾ò·ï¤ò³Îǧ
if (destroyedEnemies >= totalEnemies && !isGameClear)
{
isGameClear = true;
Debug.Log("Game Clear!");
// ²èÌ̤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤Î¤òÂÔµ¡
yield return new WaitUntil(() => Input.GetMouseButtonDown(0));

// ²èÌ̤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤Î¤òÂÔµ¡
yield return new WaitUntil(() => Input.GetMouseButtonDown(0));

// ¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü
SceneManager.LoadScene("TitleScene");

// ¥³¥ë¡¼¥Á¥ó½ªÎ»
yield break;
}
}
// ¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü
SceneManager.LoadScene(titleSceneName);
}

public void EnemyDestroyed()
{
destroyedEnemies++;
}
}
||=

¡¡¤³¤Î¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤µ¤ì¤¿¥³¡¼¥É¤Ç¤Ï¡¢¥²¡¼¥à¥¯¥ê¥¢¤Î¾ò·ï¤ò³Îǧ¤¹¤ëÉôʬ¤òËè¥Õ¥ì¡¼¥à¥ë¡¼¥×¤Ç¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤Þ¤¹¡£
¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¾ì¹ç¡¢¥³¥ë¡¼¥Á¥óÆâ¤Ç¥²¡¼¥à¥¯¥ê¥¢¤òɽ¼¨¤·¡¢²èÌÌ¥¯¥ê¥Ã¥¯¤ÎÂÔµ¡¤ò¹Ô¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡¢¥¯¥ê¥Ã¥¯¤µ¤ì¤¿»þÅÀ¤Ç¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü¤·¡¢¥³¥ë¡¼¥Á¥ó¤ò½ªÎ»¤·¤Þ¤¹¡£
¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢GameClearCoroutine¥³¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¡¢¥²¡¼¥à¥¯¥ê¥¢¤òɽ¼¨¤·¡¢²èÌ̤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤ë¤Î¤òÂÔµ¡¤·¡¢¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤é¥¿¥¤¥È¥ë¥·¡¼¥ó¤ËÁ«°Ü¤·¤Þ¤¹¡£

[END]

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹