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

³èÍÑ»öÎã


¡¡ÍÍ¡¹¤Ê³èÍÑÊýË¡¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¼ÂÁõÎã¤òÄ󼨤·¤Þ¤¹¡£

¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ÎÍý²ò¤¬Æñ¤·¤¤¥Ý¥¤¥ó¥È¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤¬¡¢£²ÅÀÈ´¿è¤·¤Þ¤¹¡£

¡¡¡¦¡Ö¥é¥à¥À¼°¤Ï¡¢²¿¤ò¾Êά¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤«¤¬Ê¬¤«¤ê¤Å¤é¤¤¡×¡¡¢ª¡¡¥á¥½¥Ã¥É¤ò¾Êά¤·¤Æ½ñ¤¤¤Æ¤¤¤ë´¶³Ð¤¬À¸¤Þ¤ì¤Ê¤¤
¡¡¡¦¡Ö¼ÂÁ©¤¹¤ë¤È¤­¤Ë¾¤ÎÍ×ÁǤÎÍý²ò¤òµá¤á¤é¤ì¤ë¡×¡¡¢ª¡¡Íý²ò¤·¤Ê¤¬¤é¼ÂÁ©¤¹¤ë¤³¤È¤¬¤à¤º¤«¤·¤¤

¡¡¤¿¤È¤¨¤Ð¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Ø¤ÎÍý²ò¤¬Ìµ¤¤¤Þ¤Þ¥é¥à¥À¼°¤òÆþ¤ì¤Æ¤â¡¢¥é¥à¥À¼°¤Ç¥á¥½¥Ã¥É¤òÅϤ·¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Å¤é¤¤¤Ç¤¹¤·¡¢
ξÊý¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤ë LINQ ¤Ë¤·¤Æ¤â¡¢ÆâÉô½èÍý¤¬Ê¬¤«¤ê¤Å¤é¤¤¤Ç¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢¤³¤³¤Ç¤Ï¶ñÂÎŪ¤Ê³èÍÑ»öÎã¤òÄ󼨤·¤¿¾å¤Ç¡¢¾¯¤·¤Ç¤âÍý²ò¤Î¤ªÌò¤ËΩ¤Æ¤ë¤è¤¦¤Ëµ­»ö¤òºîÀ®¤·¤Þ¤¹¡£


£±¡¥LINQ¤È¥é¥à¥À¼°


¡¡C#¤Ç¤Ï¡¢LINQ (Language Integrated Query)¤È¤¤¤¦µ¡Ç½¤ò»ÈÍѤ·¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¥ê¥¹¥È¤äÇÛÎó¤Ê¤É¤Î¥Ç¡¼¥¿¹½Â¤¤ËÂФ·¤Æ¥¯¥¨¥êÁàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥¯¥¨¥ê¤È¤Ï¡¢Ãµ¤·¤¿¤¤¥Ç¡¼¥¿¤Î¸¡º÷¤ä¹¹¿·¡¢ºï½ü¡¢Ãê½Ð¤Ê¤É¤ÎÍ׵᤹¤ëÌ¿Îá¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£

¡¡LINQ¤Ï¡¢¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ÈÏ¢·È¤·¤Æ¡¢¥Ç¡¼¥¿¤ÎÁàºî¤ò´Ê·é¤ÇÆɤߤ䤹¤¤·Á¼°¤Çµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥ê¥¹¥È¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£


List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

¡¡¤³¤Î¥ê¥¹¥È¤«¤é¡¢¶ö¿ô¤À¤±¤òÃê½Ð¤¹¤ë¾ì¹ç¡¢LINQ ¤Î Where ¥á¥½¥Ã¥É¤È¥é¥à¥À¼°¤ò»ÈÍѤ·¤Æ¼¡¤Î¤è¤¦¤Ëµ­½Ò¤Ç¤­¤Þ¤¹¡£


var evenNumbers = numbers.Where(n => n % 2 == 0);



¡¡¤Þ¤¿¡¢¥ê¥¹¥ÈÆâ¤Î¿ôÃͤò£²Çܤ·¤¿¿·¤·¤¤¥ê¥¹¥È¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢L
INQ ¤Î Select ¥á¥½¥Ã¥É¤ò³èÍѤ¹¤ë¤³¤È¤Ç¼Â¸½¤Ç¤­¤Þ¤¹¡£


var doubledNumbers = numbers.Select(n => n * 2);

¡¡¥é¥à¥À¼°¤ò»ÈÍѤ·¤Æ¡¢Áàºî¤Î¾ò·ï¤äÊÑ´¹½èÍý¤ò´Ê·é¤Ëµ­½Ò¤¹¤ëÊýË¡¤òÄ󼨤·¤Þ¤·¤¿¡£
¤³¤ì¤Ë¤è¤ê¡¢¥Ç¡¼¥¿¤ÎÁàºî¤¬¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£



¡¡°Ê²¼¤Ï¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤¹¡£


using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class LambdaExample : MonoBehaviour
{
    [Serializable]
    public class Item
    {
        public string Name;
        public int Value;
    }

    [SerializeField]
    private List<Item> items;

    private void Start()
    {
        // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Value ¤¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ëLINQ¥¯¥¨¥ê¤òÄêµÁ¤·¤Þ¤¹
        var expensiveItems = items.Where(item => item.Value >= 10);

        // ·ë²Ì¤òɽ¼¨¤·¤Þ¤¹
        Debug.Log("Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à:");
        foreach (var expensiveItem in expensiveItems)
        {
            Debug.Log($"¥¢¥¤¥Æ¥à̾: {expensiveItem.Name}, ÃÍ: {expensiveItem.Value}");
        }
    }
}

¡¡Unity¤ÎMonoBehaviour¤ò·Ñ¾µ¤·¤¿LambdaExample¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
Item¥¯¥é¥¹¤Ï¡¢¥¢¥¤¥Æ¥à¤Î̾Á°¤ÈÃͤò»ý¤Ä¥·¥ó¥×¥ë¤Ê¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£

¡¡Start¥á¥½¥Ã¥ÉÆâ¤Ç¡¢¥é¥à¥À¼°item => item.Value >= 10¤ò»È¤Ã¤Æ¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ëLINQ¥¯¥¨¥ê¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡¢·ë²Ì¤òUnity¤Î¥Ç¥Ð¥Ã¥°¥í¥°¤Ëɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£

¡¡Item¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥Èitems¤Ï¡¢Unity¥¨¥Ç¥£¥¿¾å¤ÇÊÔ½¸¤·¤ÆÃͤòÀßÄê¤Ç¤­¤Þ¤¹¡£
¤³¤Î¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤¬¥í¥°¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£


£²¡¥DOTween ¤Î OnComplete ¤Ç¤Î¼ÂÁõÎã


¡¡°Ê²¼¤Ï¡¢DOTween¤È¥é¥à¥À¼°¤ò³èÍѤ·¤Æ¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤µ¤»¤¿¸å¤Ë¥¹¥±¡¼¥ë¤òÊѹ¹¤¹¤ëÎã¤Ç¤¹¡£


using DG.Tweening;

void MoveAndScaleObject()
{
    transform.DOMove(new Vector3(5, 0, 0), 1f)
¡¡¡¡¡¡¡¡.OnComplete(() => 
¡¡¡¡¡¡¡¡{
        ¡¡¡¡Debug.Log("Move Complete!");

        ¡¡¡¡transform.DOScale(new Vector3(2, 2, 2), 1f)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.OnComplete(() => Debug.Log("Scale Complete!"));
    ¡¡¡¡});
}

¡¡¾åµ­¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤µ¤»¤¿¸å¡¢OnComplete¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¥¹¥±¡¼¥ë¤òÊѹ¹¤¹¤ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë¡¢¥é¥à¥À¼°¤ò»È¤Ã¤Æ¥Ç¥ê¥²¡¼¥È¤ò´Ê·é¤Ëɽ¸½¤¹¤ë¤³¤È¤Ç¡¢Ê£»¨¤Ê¥¢¥Ë¥á¡¼¥·¥ç¥ó½èÍý¤â¤ï¤«¤ê¤ä¤¹¤¯µ­½Ò¤Ç¤­¤Þ¤¹¡£


£³¡¥¥é¥à¥À¼°¤ò»ÈÍѤ·¤¿¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ÎÄêµÁ


¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ÎÄêµÁ¤Ë¤â³èÍѤǤ­¤Þ¤¹¡£

¡¡¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Ï¡¢ÆÃÄê¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤È¤­¤Ë¼Â¹Ô¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ò´Ê·é¤ËÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤òÄêµÁ¤¹¤ë¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥é¥à¥À¼°¤ò»ÈÍѤǤ­¤Þ¤¹¡£


using UnityEngine;
using UnityEngine.UI;

public class ButtonClickHandler : MonoBehaviour
{
    [SerializeField]
    private Button myButton;

    private void Start()
    {
        myButton.onClick.AddListener(() =>
        {
            // ¥Ü¥¿¥ó¤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤È¤­¤Î½èÍý
            Debug.Log("¥Ü¥¿¥ó¤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤Þ¤·¤¿");
        });
    }
}

¡¡¤³¤ÎÎã¤Ç¤Ï¡¢¥é¥à¥À¼°¤Îº¸Â¦¤Î()¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤Î°ú¿ô¤òɽ¤·¤Þ¤¹¡£
±¦Â¦¤Î{}¤Ï¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤ÎËÜÂΤǡ¢¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë½èÍý¤òµ­½Ò¤·¤Þ¤¹¡£


£´¡¥¹â³¬´Ø¿ô¤È¥é¥à¥À¼°


¡¡¹â³¬´Ø¿ô¤Ï¡¢´Ø¿ô¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤ê¡¢¤Þ¤¿¤Ï´Ø¿ô¤òÌá¤êÃͤȤ·¤ÆÊÖ¤¹´Ø¿ô¤Ç¤¹¡£
¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¹â³¬´Ø¿ô¤ò´Êñ¤Ë¼ÂÁõ¤Ç¤­¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢¥ê¥¹¥È¤ËÂФ·¤Æ¡¢ÆÃÄê¤Î¾ò·ï¤Ë°ìÃפ¹¤ëÍ×ÁǤò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë´Ø¿ô¤òºîÀ®¤¹¤ë¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥é¥à¥À¼°¤ò»ÈÍѤǤ­¤Þ¤¹¡£


List<int> Filter(List<int> list, Predicate<int> predicate)
{
    List<int> result = new List<int>();
    foreach (var item in list)
    {
        if (predicate(item))
        {
            result.Add(item);
        }
    }
    return result;
}

¡¡¤³¤Î´Ø¿ô¤Ï¡¢list¤È¤¤¤¦¥ê¥¹¥È¤È¡¢predicate¤È¤¤¤¦¾ò·ï¤òɽ¤¹(½Ò¸ì)¥Ç¥ê¥²¡¼¥È¤ò°ú¿ô¤Ë¼è¤ê¤Þ¤¹¡£
¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£


List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = Filter(numbers, n => n % 2 == 0);

¡¡¤³¤ÎÎã¤Ç¤Ï¡¢n => n % 2 == 0¤È¤¤¤¦¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢¶ö¿ô¤òȽÄꤹ¤ë¾ò·ï¤òɽ¸½¤·¤Æ¤¤¤Þ¤¹¡£

¡¡Â¾¤Ë¤â¿§¡¹¤Ê¾ì½ê¤Ç¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ë¤è¤ëµ­½Ò¤Ï³èÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£


¥é¥à¥À¼°¤ÎÍøÅÀ¤ÈÃí°ÕÅÀ


¡¡¥é¥à¥À¼°¤Ï¡¢¥³¡¼¥É¤ò´Ê·é¤Ë¤·¡¢²ÄÆÉÀ­¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤ËÌòΩ¤Á¤Þ¤¹¡£
¤¿¤À¤·¡¢Å¬Àڤ˻ÈÍѤ·¤Ê¤¤¤È¡¢µÕ¤Ë¥³¡¼¥É¤Î²ÄÆÉÀ­¤¬Äã²¼¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

¡¡°Ê²¼¤Ï¡¢¥é¥à¥À¼°¤ÎÍøÅÀ¤ÈÃí°ÕÅÀ¤Ç¤¹¡£


£±¡¥ÍøÅÀ


¡¡¡¦¥³¡¼¥É¤¬´Ê·é¤Ë¤Ê¤ê¡¢²ÄÆÉÀ­¤¬¸þ¾å¤¹¤ë¡£
¡¡¡¦Ì¾Á°¤Î¤Ê¤¤Æ¿Ì¾´Ø¿ô¤òºîÀ®¤Ç¤­¤ë¤¿¤á¡¢°ìÅÙ¤·¤«»ÈÍѤ·¤Ê¤¤½èÍý¤òµ­½Ò¤¹¤ëºÝ¤ËÊØÍø¡£
¡¡¡¦¹â³¬´Ø¿ô¤äLINQ¤ÈÏ¢·È¤·¤Æ¡¢¥Ç¡¼¥¿¤ÎÁàºî¤ò¸úΨŪ¤Ëµ­½Ò¤Ç¤­¤ë¡£


£²¡¥Ãí°ÕÅÀ


¡¡¡¦¥é¥à¥À¼°¤¬Ê£»¨¤Ë¤Ê¤ê¤¹¤®¤ë¤È¡¢¥³¡¼¥É¤Î²ÄÆÉÀ­¤¬Äã²¼¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
¡¡¡¦¥é¥à¥À¼°Æâ¤Ç³°ÉôÊÑ¿ô¤ò¥­¥ã¥×¥Á¥ã¤¹¤ë¾ì¹ç¡¢ÉûºîÍѤä¥ê¥½¡¼¥¹¥ê¡¼¥¯¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡£


¤Þ¤È¤á


¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Ï¡¢C#¥×¥í¥°¥é¥à¤Ç¥á¥½¥Ã¥É¤ò°·¤¦ºÝ¤Î¶¯ÎϤʥġ¼¥ë¤Ç¤¹¡£
¤³¤ì¤é¤ò»È¤Ã¤Æ¥³¡¼¥É¤ò¥·¥ó¥×¥ë¤Ë¤·¡¢Æɤߤ䤹¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¤Î´Ø·¸¤òÍý²ò¤·¡¢´ðËÜŪ¤Ê½èÍý¤ÎÆɤ߲ò¤­Êý¤òÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢
¤è¤ê¸úΨŪ¤Ç½ÀÆð¤Ê¥×¥í¥°¥é¥ß¥ó¥°¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡ºÇ¸å¤ËLINQ¤È¹â³¬´Ø¿ô¤òÍøÍѤ·¤¿¥Õ¥£¥ë¥¿¥ê¥ó¥°½èÍý¤Î¼ÂÁõÎã¤òÄ󼨤·¤Þ¤¹¡£


using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class FilterExample : MonoBehaviour
{
    [Serializable]
    public class Item
    {
        public string Name;
        public int Value;
    }

    public delegate bool ItemCondition(Item item);

    [SerializeField]
    private List<Item> items;

    private List<Item> FilterItems(ItemCondition condition)
    {
        return items.Where(condition).ToList();
    }

    private void ShowItems(string message, List<Item> filteredItems)
    {
        Debug.Log(message);
        foreach (var item in filteredItems)
        {
            Debug.Log($"¥¢¥¤¥Æ¥à̾: {item.Name}, ÃÍ: {item.Value}");
        }
    }

    private void Start()
    {
        // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë
        List<Item> expensiveItems = FilterItems(item => item.Value >= 10);
        ShowItems("Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à:", expensiveItems);

        // ¥é¥à¥À¼°¤ò»È¤Ã¤Æ¡¢Ì¾Á°¤¬ "A" ¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë
        List<Item> itemsStartingWithA = FilterItems(item => item.Name.StartsWith("A"));
        ShowItems("̾Á°¤¬A¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à:", itemsStartingWithA);
    }
}

¡¡¤³¤Î¥³¡¼¥ÉÎã¤Ç¤Ï¡¢ItemCondition¥Ç¥ê¥²¡¼¥È¤ÈFilterItems¹â³¬´Ø¿ô¤ò»ÈÍѤ·¤Æ¡¢
Start¥á¥½¥Ã¥ÉÆâ¤Ç¡¢FilterItems¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ°Û¤Ê¤ë¾ò·ï¤Ç¥¢¥¤¥Æ¥à¤ò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¡¢¤½¤Î·ë²Ì¤òɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤º¡¢Ãͤ¬10°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤·¡¢¼¡¤Ë̾Á°¤¬ "A" ¤Ç»Ï¤Þ¤ë¥¢¥¤¥Æ¥à¤ò¸¡º÷¤·¤Æ¤¤¤Þ¤¹¡£



¡¡¤Þ¤º¡¢Item¥¯¥é¥¹¤ËÂФ¹¤ë¾ò·ï¤òɽ¤¹¥Ç¥ê¥²¡¼¥ÈItemCondition¤òÄêµÁ¤·¤Þ¤¹¡£

public delegate bool ItemCondition(Item item);

¡¡¼¡¤Ë¡¢ItemCondition¥Ç¥ê¥²¡¼¥È¤ò°ú¿ô¤Ë¤È¤ë¹â³¬´Ø¿ôFilterItems¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¾ò·ï¤òËþ¤¿¤¹¥¢¥¤¥Æ¥à¤ò´Þ¤à¿·¤·¤¤¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£

private List<Item> FilterItems(ItemCondition condition)
{
    return items.Where(condition).ToList();
}

¡¡¤³¤Î condition °ú¿ô¤Ë¤Ï¥é¥à¥À¼°¤ÇºîÀ®¤µ¤ì¤¿Æ¿Ì¾¥á¥½¥Ã¥É¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢Start ¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë²¼µ­¤Î¥é¥à¥À¼°¤Ï¡¢¥Ç¥ê¥²¡¼¥È ItemCondition ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£

List<Item> expensiveItems = FilterItems(item => item.Value >= 10); 

¡¡¥é¥à¥À¼°¤Ï¡¢FilterItems ¥á¥½¥Ã¥É¤Î°ú¿ô¤Î item => item.Value >= 10 ¤ÎÉôʬ¤Ç¤¹¡£
Item ·¿¤Î item ¤ò°ú¿ô¤Ë¤È¤ê¡¢item.Value >= 10 ¤òɾ²Á¤·¤Æ¿¿µ¶ÃͤòÊÖ¤¹¥á¥½¥Ã¥É¤òɽ¸½¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¤³¤Îƿ̾¥á¥½¥Ã¥É¤Ë¤è¤ëÆâÍƤ¬¡¢FilterItems ¹â³¬´Ø¿ô¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¥Ç¥ê¥²¡¼¥È ItemCondition ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡FilterItems ¥á¥½¥Ã¥ÉÆâ¤Ç items.Where(condition).ToList(); ¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢
¤³¤Î¥é¥à¥À¼°(º£²ó¤Ç¤¢¤ì¤Ð item => item.Value >= 10)¤¬ÂåÆþ¤µ¤ì¤¿ ItemCondition ¥Ç¥ê¥²¡¼¥È condition ¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£

private List<Item> FilterItems(ItemCondition condition)  //¡¡condition ¤ÎÃÍ¤Ï item => item.Value >= 10 
{
    return items.Where(condition).ToList();¡¡¡¡// Where(condition) ¥á¥½¥Ã¥É¤Ï¡¢Where(item => item.Value >= 10) ¤ò¹Ô¤Ã¤Æ¤¤¤ë
}

¡¡¤Ä¤Þ¤ê¡¢¥Õ¥£¥ë¥¿¡¼½èÍý¤ò¹Ô¤¦ºÝ¤Î¾ò·ïÉôʬ¤Ë¡Ö¥Ç¥ê¥²¡¼¥È¤È¥é¥à¥À¼°¡×¤ò³èÍѤ¹¤ë¤³¤È¤Ç¡¢
¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë¾ò·ï¤¬¤½¤ÎÅÔÅÙÊѲ½¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°ÍѤΥ᥽¥Ã¥É¤òÊ£¿ôÍÑ°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£

¡¡¤½¤Î¤¿¤á¡¢¤è¤êÃê¾Ý²½¤·¤¿½èÍý¤òºîÀ®¤·¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£



¡¡¤³¤Î¤è¤¦¤Ë¹â³¬´Ø¿ô¤ò»È¤Ã¤Æ¼ÂÁõ¤ò¹Ô¤¦¤³¤È¤Ç¡¢ÆÃÄê¤Î¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë¡¢¤È¤¤¤¦½èÍý¤ò¸úΨŪ¡¦Ãê¾ÝŪ¤Ê·Á¤Ç¼ÂÁõ¤·¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¥³¡¼¥É¤¬¤è¤ê½ÀÆð¤ÇºÆÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¤·¡¢°Û¤Ê¤ë¾ò·ï¤ò´Êñ¤ËÄɲá¦Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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