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

ÂÔµ¡¸å¤Î½èÍý¤Î¥±¡¼¥¹¥¹¥¿¥Ç¥£

£±¡¥¥Ç¥ê¥²¡¼¥È¤ÎÃÖ¤­´¹¤¨


¡¡¥³¥ë¡¼¥Á¥ó¤Ï Action ·¿¤Î¥Ç¥ê¥²¡¼¥È¤òµ­½Ò¤Ç¤­¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ÂÔµ¡¸å¤Ë»ØÄꤷ¤¿½èÍý¤ò¹Ô¤¦¤È¤¤¤¦½ñ¼°¤¬½ñ¤±¤Þ¤¹¡£

¡¡¤³¤Á¤é¤ò¥Ù¡¼¥¹¤È¤·¤Æ¡¢UniTask ¤ËÃÖ¤­´¹¤¨¤Æ½ñ¤¤¤Æ¤¤¤¯ÊýË¡¤ò³Ø½¬¤·¤Þ¤¹¡£



¡¡¥³¥ë¡¼¥Á¥ó¤Ï1ÉôÖÂÔµ¡¤·¡¢¤½¤Î¸å¤Ë»ØÄꤵ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£

using System;
using System.Collections;
using UnityEngine;

public class CoroutineExample : MonoBehaviour
{
    private void Start()
    {
        transform.position = Vector3.one;

        StartCoroutine(DelayCoroutine(1, () => Debug.Log(transform.position)));
    }

    private IEnumerator DelayCoroutine(float delaySeconds, Action action)
    {
        yield return new WaitForSeconds(delaySeconds);

        action?.Invoke();
    }
}

¡¡¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥³¥ë¡¼¥Á¥ó¤Î½èÍý¤Ë¥³¡¼¥ë¥Ð¥Ã¥¯½èÍý¤òÄɲäǤ­¤Þ¤¹



¡¡¤½¤ì¤Ç¤Ï¡¢¥³¥ë¡¼¥Á¥ó¤Î½èÍý¤ò UniTask ¤ËÃÖ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£


using Cysharp.Threading.Tasks;
using UnityEngine;

public class UniTaskExample : MonoBehaviour
{
    private async void Start()
    {
        transform.position = Vector3.one;

        await UniTask.Delay(1000);
        
        Debug.Log(transform.position);
    }
}

¡¡UniTask ¤ÏÂÔµ¡Á°Äó¤Î½èÍý¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥³¡¼¥ë¥Ð¥Ã¥¯½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢
¥Ç¥ê¥²¡¼¥È¤òÍøÍѤ»¤º¤È¤âƱ´ü½èÍý¤òµ­½Ò¤¹¤ë¤è¤¦¤Ê´¶³Ð¤Ç½ñ¤¤¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤Þ¤¿¡¢ÂÔµ¡½èÍýÍѤΥ᥽¥Ã¥É¤â¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¤Î¤Ç¡¢½èÍý¼«ÂΤ¬¤¹¤Ã¤­¤ê¤È¤·¤Þ¤·¤¿¡£



¡¡¥³¥ë¡¼¥Á¥ó¤ÈUniTask¤Ï¡¢¥³¡¼¥ë¥Ð¥Ã¥¯½èÍý¤Î¼Â¹ÔÊýË¡¤¬°Û¤Ê¤ê¤Þ¤¹¡£

¡¡¥³¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢StartCoroutine¤ÎÂè2°ú¿ô¤ËAction¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥³¡¼¥ë¥Ð¥Ã¥¯½èÍý¤òľÀÜ¥³¥ë¡¼¥Á¥óÆâ¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹¡£
¤³¤ì¤ÏÈó¾ï¤ËÊØÍø¤Ç¤¹¤Í¡£

¡¡°ìÊý¡¢UniTask¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢Ä̾ï¤Ïawait¤Î²¼¤Ë½èÍý¤òµ­½Ò¤·¡¢ÈóƱ´ü½èÍý¤¬´°Î»¤¹¤ë¤È¤½¤ì¤Ë³¤¯½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
UniTask¤ÎÍøÅÀ¤Ï¡¢ÈóƱ´ü½èÍý¤Îľ´¶Åª¤Êµ­½Ò¤È¡¢¥³¡¼¥É¤ÎľÎ󲽤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤Ç¤¹¡£

¡¡UniTask¤Ï¡¢Ê£»¨¤ÊÈóƱ´ü¥³¡¼¥É¤ò´ÉÍý¤·¤ä¤¹¤¯¤·¡¢ÈóƱ´ü¥×¥í¥°¥é¥ß¥ó¥°¤ò¤è¤ê¥·¥ó¥×¥ë¤Ë¤·¤Þ¤¹¡£
¥³¡¼¥ë¥Ð¥Ã¥¯½èÍý¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤Ï¡¢await¤Î²¼¤Ë¥³¡¼¥É¤òµ­½Ò¤¹¤ëÊýË¡¤¬°ìÈÌŪ¤Ç¤¹¡£

¡¡½èÍý¤òÈæ³Ó¤¹¤ë¤È¤ï¤«¤ê¤ä¤¹¤¤¤Ç¤¹¤¬¡¢UniTask¤Ï¡¢ÈóƱ´ü½èÍý¤ò´Êñ¤ËÆɤ߽ñ¤­¤Ç¤­¤ë¶¯ÎϤʥġ¼¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


£²¡¥Æ¿Ì¾¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿¥±¡¼¥¹¤ÎÃÖ¤­´¹¤¨


¡¡¥é¥à¥À¼°¤âÍøÍѤǤ­¤Þ¤¹¤Î¤Ç¡¢Æ¿Ì¾¥á¥½¥Ã¥É¤òºîÀ®¤·¤Æ½èÍý¤òµ­½Ò¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£
¡¡
using System;
using System.Collections;
using UnityEngine;

public class CoroutineCallbackExample : MonoBehaviour
{
    private void Start()
    {
        // 3Éøå¤Ë½èÍý¤ò¼Â¹Ô
        StartCoroutine(DelayMethod(3.0f, () =>
        {
            Debug.Log("3Éøå¤Ë¼Â¹Ô¤µ¤ì¤¿½èÍý");

            // ¤³¤³¤ÇºÂɸ¤ò°ÜÆ°¤¹¤ë¤Ê¤É¤ÎÄɲäνèÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹
¡¡¡¡¡¡¡¡¡¡¡¡transform.position = Vector3.one;

        }));
    }

    private IEnumerator DelayMethod(float delaySeconds, Action action)
    {
        yield return new WaitForSeconds(delaySeconds);

        action?.Invoke();
    }
}



using System;
using Cysharp.Threading.Tasks;
using UnityEngine;

public class UniTaskCallbackExample1 : MonoBehaviour
{
    private async void Start()
    {
        // 3Éøå¤Ë½èÍý¤ò¼Â¹Ô
        await DelayAsync(3.0f, () =>
        {
            Debug.Log("3Éøå¤Ë¼Â¹Ô¤µ¤ì¤¿½èÍý");

            // ¤³¤³¤ÇºÂɸ¤ò°ÜÆ°¤¹¤ë¤Ê¤É¤ÎÄɲäνèÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹
            transform.position = Vector3.one;
        });
    }

    private async UniTaskVoid DelayAsync(float delaySeconds, Action action)
    {
        await UniTask.Delay(TimeSpan.FromSeconds(delaySeconds));

        action?.Invoke();
    }
}




¡¡¤µ¤é¤Ë´Ê·é¤Ëµ­½Ò²Äǽ¤Ç¤¹¡£

using System;
using Cysharp.Threading.Tasks;
using UnityEngine;

public class UniTaskCallbackExample2 : MonoBehaviour
{
¡¡¡¡private async void Start()
    {
        // 3Éøå¤Ë½èÍý¤ò¼Â¹Ô
        await UniTask.Delay(TimeSpan.FromSeconds(3.0f));

        Debug.Log("3Éøå¤Ë¼Â¹Ô¤µ¤ì¤¿½èÍý");

        // ¤³¤³¤ÇºÂɸ¤ò°ÜÆ°¤¹¤ë¤Ê¤É¤ÎÄɲäνèÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹
        transform.position = Vector3.one;

    }
}

¡¡¤³¤ÎÊýË¡¤ò»ÈÍѤ¹¤ë¤È¡¢ÈóƱ´ü½èÍý¤òľÀÜ¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥éÆâ¤Ç°·¤¦¤³¤È¤¬¤Ç¤­¡¢¥³¡¼¥É¤¬¤è¤êÌÀÎƤˤʤê¤Þ¤¹¡£

¡¡UniTask¤ò²ð¤·¤ÆÈóƱ´ü½èÍý¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¿·¤·¤¤¥á¥½¥Ã¥É¤òºîÀ®¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

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