i-school - ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¡¡¼ÂÁõÎ㣲

if ʸ¤ÎÍøÍÑÊýË¡¤Ë¤è¤ë½èÍý¤Îºî¤êÊѤ¨Êý


¡¡if ʸ¤Ë¤è¤ë½èÍý¤Î¾ò·ï¼°¤òºîÀ®¤¹¤ëºÝ¡¢­¡¡Ö¡Á¤Ê¤é¤Ð¡¢{ } Æâ¤Î½èÍý¤ò¹Ô¤¦¡×¤È¤¤¤¦½ñ¼°¤Çµ­½Ò¤·¤Æ¤¤¤¯ÊýË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢
µÕ¤Î´ÑÅÀ¤«¤é­¢¡Ö¡Á¤Ê¤é¤Ð¡¢{ } Æâ¤Î½èÍý¤ò¹Ô¤ï¤Ê¤¤¡×¤È¤¤¤¦½ñ¼°¤Ë¤è¤Ã¤Æµ­½Ò¤â½ÐÍè¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢¾ï¤ËξÊý¤Î½èÍý¤Î¥¤¥á¡¼¥¸¤òºî¤ì¤ë¤è¤¦¤Ë¿´¤¬¤±¤ë¤³¤È¤¬½ÅÍפǤ¹¡£
Æä˥ͥ¹¥È¤¬¿¼¤¯¤Ê¤ê¤½¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢­¢¤Î½èÍý¤È return ¥­¡¼¥ï¡¼¥É¤òÁȤ߹礻¤ë¼êË¡¤¬½èÍý¤ò¸«¤ä¤¹¤¯ºî¤Ã¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


¡ãif ʸ¤ò­¡¤Î¼êË¡¤Çµ­½Ò¤·¤¿¥±¡¼¥¹¡£¥Í¥¹¥È¤¬¿¼¤¯¤Ê¤ê¤ä¤¹¤¤¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sample_if_0 : MonoBehaviour {

    private bool isAttack;
    private Rigidbody rb;


    private void Update() {

        // ­¡¤Î¾ì¹ç¡¢­¡¤Î¾ò·ï¤òËþ¤¿¤·¤¿¾å¤Ç¡¢¼¡¤Î¾ò·ï¤òËþ¤¿¤¹¡¢¤È¤¤¤¦¥±¡¼¥¹¤Ç¤Îµ­½Ò¤¬Áý¤¨¤ë¤¿¤á¡¢¥Í¥¹¥È¤¬¿¼¤¯¤Ê¤ê¤ä¤¹¤¤
        if (isAttack) {
            if (rb != null) {
                rb.AddForce(transform.forward * 10, ForceMode.Acceleration);
            }
        }
    }
}

¡¡¡¡¢­

¡ãif ʸ¤ò­¢¤Î¼êË¡¤Çµ­½Ò¤·¤Æ return ¤òÍøÍѤ·¤¿¥±¡¼¥¹¡²¤½¤Î£±¡£¥Í¥¹¥È¤òÀõ¤¯¤Ç¤­¤ë¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sample_if_1 : MonoBehaviour {

    private bool isAttack;
    private Rigidbody rb;


    private void Update() {

        // ¥Í¥¹¥È¤òÀõ¤¯¤¹¤ëÊýË¡¤Ï¡¢¡Ö¡Á¤Ê¤é¤Ð¡Á¤¹¤ë¡×¤È¤¤¤¦½èÍý¤Î¡ÖµÕ¤Î¥Ñ¥¿¡¼¥ó¤Î if ʸ¤ò¹Í¤¨¤ë¡×¤³¤È¤Ç¤¹
        // isAttack ¤Ê¤é¤Ð¡¢¤Ç¤Ï¤Ê¤¯¡¢isAttack ¤Ç¤Ê¤¤¤Ê¤é¡¢¤È¹Í¤¨¤ë¤³¤È¤Ç return ¤ò³èÍѤ·¡¢¥Í¥¹¥È¤òÀõ¤¯¤Ç¤­¤Þ¤¹
        if (!isAttack) {
            return;
        }

        if (rb != null) {
            rb.AddForce(transform.forward * 10, ForceMode.Acceleration);
        }
    }
}


¡ãif ʸ¤ò­¢¤Î¼êË¡¤Çµ­½Ò¤·¤Æ return ¤òÍøÍѤ·¤¿¥±¡¼¥¹¡²¤½¤Î£²¡£¥Í¥¹¥È¤òÀõ¤¯¤·¤¿¾å¤Ç¡¢½èÍý¤ò´Ê·é¤Ëµ­½Ò¤Ç¤­¤ë¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sample_if_2 : MonoBehaviour {

    private bool isAttack;
    private Rigidbody rb;


    private void Update() {

        // if ʸ¤Î¾ò·ïÆâ¤Ë return ¤ÎÂоݤȤʤëÊÑ¿ô¤ò¹ç¤ï¤»¤Æµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢¤µ¤é¤Ë½èÍý¤ò¤¹¤Ã¤­¤ê¤Èµ­½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
        if (!isAttack || rb == null) {
            return;
        }

¡¡¡¡¡¡¡¡// ¤³¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¥¿¥¤¥ß¥ó¥°¤Ï¡¢¾åµ­¤Î¾ò·ï°Ê³°¤Î¤È¤­¤Ç¤¢¤ë¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢if ʸ¤Ç°Ï¤àɬÍפ¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
        rb.AddForce(transform.forward * 10, ForceMode.Acceleration);
    }
}


¡ãif ʸ¤ò­¢¤Î¼êË¡¤Çµ­½Ò¤·¤Æ return ¤òÍøÍѤ·¤¿¥±¡¼¥¹¡²¤½¤Î£³¡£¥Í¥¹¥È¤òÀõ¤¯¤·¤¿¾å¤Ç¡¢½èÍý¤ò´Ê·é¤Ëµ­½Ò¤Ç¤­¤ë¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sample_if_3 : MonoBehaviour {

    [SerializeField]
    private GameObject enemy;

    private void OnTriggerStay(Collider other)
    {
        if (enemy == null) {
            return;
        }

        if (other.gameObject == enemy)
        {
            Debug.Log("Ʊ¤¸ enemy");    
        }
    }
}


¡¡¥×¥í¥°¥é¥à¤ò¹Í¤¨¤Æ½ñ¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¤É¤¦¤·¤Æ¤âƱ¤¸¥Ñ¥¿¡¼¥ó¤ËÅö¤Æ¤Ï¤á¤Æ½èÍý¤ò¤Ä¤¯¤ê¤¬¤Á¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤¦¤Ç¤Ï¤Ê¤¯¤Æ¡¢ÍÍ¡¹¤Ê³ÑÅÙ¤«¤é½èÍý¤ÎÆâÍƤò¸¡Æ¤¤¹¤ë¤È¤¤¤¦»ëÅÀ¤ò»ý¤Ä¤³¤È¤Ç¡¢½èÍý¤ò½ñ¤­Ê¬¤±¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¡¢
·ë²ÌŪ¤Ë¡¢Æɤߤ䤹¤¤½èÍý¤ò¹½ÃÛ¤¹¤ëµ­½ÒÊýË¡¤ò³Ð¤¨¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡if ʸ¤òÍøÍѤ·¤Æ½èÍý¤ò¤Ä¤¯¤Ã¤Æ¤¤¤¯¾ìÌ̤Ï¿¤¤¤Î¤Ç¡¢°ìÅÙ½ñ¤¤¤Æ¤¦¤Þ¤¯Æ°ºî¤·¤¿½èÍý¤Ç¤¢¤Ã¤Æ¤â¡¢Â¾¤Ë½ñ¤­Êý¤Ï¤Ê¤¤¤Î¤«¡©¡¡¤È¤¤¤¦µ¿Ìä¤ò»ý¤Á¡¢
¤è¤ê¤è¤¤½èÍý¤Î½ñ¤­Êý¤òõµá¤¹¤ëµ¤»ý¤Á¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¡¢¤Ò¤¤¤Æ¤Ï¥¹¥­¥ë¥¢¥Ã¥×¤Ë¤Ä¤Ê¤¬¤ê¡¢¾åã¤Ø¤Î¶áÆ»¤Ë¤Ê¤ê¤Þ¤¹¡£


¥¿¥°¤òÍøÍѤ·¤Ê¤¤È½ÄêÊýË¡¤Î½èÍý¤Îºî¤êÊѤ¨Êý


¡¡°ìÈÌŪ¤Ê¥¿¥°¤òÍøÍѤ·¤¿½èÍý¤ÎȽÄêÊýË¡¤òµ­ºÜ¤·¤Þ¤¹¡£

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

public class CollisionSample : MonoBehaviour {

    private EnemyController enemy;


    private void OnCollisionEnter(Collision col) {

        // ¤Þ¤º¥¿¥°¤ÇȽÄê¤ò¹Ô¤¤
        if (col.gameObject.CompareTag("Enemy")) {

¡¡¡¡¡¡¡¡¡¡¡¡// ³¤¤¤Æ¥¯¥é¥¹¤Î¼èÆÀ¤ò¹Ô¤¤¡¢½èÍý¤ò¤Ä¤Ê¤²¤Æ¤¤¤¯
            enemy = col.gameObject.GetComponent<EnemyController>();
            enemy.Damage();
        }
    }
}

¡¡Tag ¤ÎȽÄê¤Ï¤Ê¤ë¤Ù¤¯»ß¤á¤Þ¤¹¡£Íýͳ¤Ï Tag ¤ÎȽÄê¸å¤Ë¡¢¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤Î¼èÆÀ¤ò¹Ô¤¦¥±¡¼¥¹¤¬Â¿¤¤¤Î¤Ç
¤½¤ì¤Ç¤¢¤ì¤ÐºÇ½é¤«¤é¡Ö¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¡×¤òȽÄꤷ¡¢¤«¤Ä¡¢¥¯¥é¥¹¤Î¾ðÊó¤òÍøÍѤǤ­¤ë¾õÂ֤ˤ¹¤ë TryGetComponent ¤òÍøÍѤ·¤¿Êý¤¬¤¤¤¤¤Ç¤¹¡£

¡¡¤½¤¦¤¹¤ì¤Ð½èÍý¤òȽÄꤹ¤ë if ʸ¤Ï£±¤Ä¤Ç¤è¤¤¤¿¤á¡¢¥Í¥¹¥È¤âÀõ¤¯¤Ç¤­¡¢¤«¤Ä¡¢¥á¥ó¥ÐÊÑ¿ô¤âÉÔÍפˤʤê¤Þ¤¹¡£


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

public class CollisionSample_Refact : MonoBehaviour {

    private void OnCollisionEnter(Collision col) {

        // TryGetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¡¢»ØÄꤷ¤¿¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¤«È½Äꤷ¤¿¾å¤Ç¡¢É¬Íפʥ¯¥é¥¹¤ò¼èÆÀ¤Ç¤­¤ë
        if (col.gameObject.TryGetComponent(out EnemyController enemy)) {

¡¡¡¡¡¡¡¡¡¡¡¡// ¥¯¥é¥¹¤Î¼èÆÀ¤¬ºÑ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢GetComponent ¥á¥½¥Ã¥É¤¬ÉÔÍפˤʤꡢ½èÍý¤ò¤Ä¤Ê¤²¤Æ¤¤¤¯¤³¤È¤¬¤Ç¤­¤ë
            enemy.Damage();
        }
    }
}


¥í¡¼¥«¥ë´Ø¿ô¤Î³èÍÑÊýË¡


¡¡ÆÃÄê¤Î¥á¥½¥Ã¥ÉÆ⤫¤é¤·¤«¼Â¹ÔÌ¿Îá¤Î¤Ê¤¤¥á¥½¥Ã¥É¤Ï¡¢Ä̾ï¤Î¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯¡¢¼Â¹ÔÌ¿Îá¤Î½ñ¤¤¤Æ¤¢¤ë¥á¥½¥Ã¥ÉÆâ¤Ë
¥í¡¼¥«¥ë´Ø¿ô¤È¤·¤ÆÄêµÁ¤·¤¿Êý¤¬½èÍý¤òÆɤ߲ò¤­¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤â¥í¡¼¥«¥ë´Ø¿ô¤¬ÍøÍѤǤ­¤Þ¤¹¡£

¡¡¥í¡¼¥«¥ë´Ø¿ô¤Ï¼«Æ°Åª¤Ë private °·¤¤¤Ë¤Ê¤ë¤¿¤á¡¢¥¢¥¯¥»¥¹½¤¾þ»Ò¤Ïµ­½Ò¤Ç¤­¤Þ¤»¤ó¡£


¡ã¥í¡¼¥«¥ë´Ø¿ô¤ò³èÍѤ·¤Ê¤¤¥±¡¼¥¹¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NormalMethodSample : MonoBehaviour {

    public void SetUp() {
        StartCoroutine(DelayAttack());
    }

¡¡¡¡private IEnumerator DelayAttack() {

        yield return new WaitForSecounds(1.0f);
        Debug.Log("Attack");
    }
}


¡ã¥í¡¼¥«¥ë´Ø¿ô¤ò³èÍѤ¹¤ë¥±¡¼¥¹¡ä
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LocalMethodSample_Refact : MonoBehaviour {

    public void SetUp() {
        StartCoroutine(DelayAttack());


        /// <summary>
        /// SetUp ¥á¥½¥Ã¥ÉÆâ¤Ç¤Î¤ß»ÈÍѤ¹¤ë¥í¡¼¥«¥ë´Ø¿ô
        /// ¸Æ¤Ó½Ð¤·¸µ¤¬£±¤Ä¤Î¥á¥½¥Ã¥É¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢¤½¤Î¥á¥½¥Ã¥ÉÆâ¤Ë¥í¡¼¥«¥ë´Ø¿ô¤òÍÑ°Õ¤·¤¿Êý¤¬½èÍý¤¬Æɤߤ䤹¤¯¤Ê¤ê¤Þ¤¹
        /// </summary>
        /// <returns></returns>
        IEnumerator DelayAttack() {¡¡¡¡//¡¡½¤¾þ»Ò¤Ïºï½ü

            yield return new WaitForSecounds(1.0f);
            Debug.Log("Attack");
        }
    }
}

¡¡¥á¥½¥Ã¥ÉÆâ¤Ç¤¢¤ì¤Ð¥í¡¼¥«¥ë´Ø¿ô¤ÎÀë¸À¤Ï¤É¤³¤Ç¤â²Äǽ¤Ç¤¹¡£
Î㤨¤Ð²¼µ­¤Î¤è¤¦¤Ëµ­½Ò¤·¤Æ¤¢¤Ã¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£


¡ã¥í¡¼¥«¥ë´Ø¿ô¤ÎÀë¸À­¡¡ä
    public void SetUp() {
        
        /// <summary>
        /// SetUp ¥á¥½¥Ã¥ÉÆâ¤Ç¤Î¤ß»ÈÍѤ¹¤ë¥í¡¼¥«¥ë´Ø¿ô
        /// ¸Æ¤Ó½Ð¤·¸µ¤¬£±¤Ä¤Î¥á¥½¥Ã¥É¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢¤½¤Î¥á¥½¥Ã¥ÉÆâ¤Ë¥í¡¼¥«¥ë´Ø¿ô¤òÍÑ°Õ¤·¤¿Êý¤¬½èÍý¤¬Æɤߤ䤹¤¯¤Ê¤ê¤Þ¤¹
        /// </summary>
        /// <returns></returns>
        IEnumerator DelayAttack() {¡¡¡¡//¡¡½¤¾þ»Ò¤Ïºï½ü

            yield return new WaitForSecounds(1.0f);
            Debug.Log("Attack");
        }

        StartCoroutine(DelayAttack());
    }



¡ã¥í¡¼¥«¥ë´Ø¿ô¤ÎÀë¸À­¢¡ä
    public void SetUp() {
        StartCoroutine(DelayAttack());


        /// <summary>
        /// SetUp ¥á¥½¥Ã¥ÉÆâ¤Ç¤Î¤ß»ÈÍѤ¹¤ë¥í¡¼¥«¥ë´Ø¿ô
        /// ¸Æ¤Ó½Ð¤·¸µ¤¬£±¤Ä¤Î¥á¥½¥Ã¥É¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢¤½¤Î¥á¥½¥Ã¥ÉÆâ¤Ë¥í¡¼¥«¥ë´Ø¿ô¤òÍÑ°Õ¤·¤¿Êý¤¬½èÍý¤¬Æɤߤ䤹¤¯¤Ê¤ê¤Þ¤¹
        /// </summary>
        /// <returns></returns>
        IEnumerator DelayAttack() {¡¡¡¡//¡¡½¤¾þ»Ò¤Ïºï½ü

            yield return new WaitForSecounds(1.0f);
            Debug.Log("Attack");
        }

        // ½èÍý¤ÎÁ°¸å¤Ë¥í¡¼¥«¥ë´Ø¿ô¤¬Àë¸À¤·¤Æ¤¢¤Ã¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡¡¡¡¡¡¡Debug.Log("End Attack");        
    }

¡¡¥á¥½¥Ã¥ÉÆâ¤ËÄêµÁ¤Ç¤­¤ë¥í¡¼¥«¥ë´Ø¿ô¤Î¿ô¤Ë¤âÀ©¸Â¤Ï¤Ê¤¤¤¿¤á¡¢Ê£¿ô¤Î¥í¡¼¥«¥ë´Ø¿ô¤ò£±¤Ä¤Î¥á¥½¥Ã¥ÉÆâ¤ËÄêµÁ¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£

¡¡¥×¥í¥°¥é¥à¤Ï¡¢·è¤á¤é¤ì¤¿µ¬Â§¤ÎÃæ¤Ç¤¢¤ì¤Ð¡¢¥¨¥ó¥¸¥Ë¥¢¤¬¼«Ê¬¤Ç¹Í¤¨¤¿Æȼ«¤Î½èÍý¤òµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥¤¥á¡¼¥¸¤·¤¿½èÍý¤ò¤Þ¤º¤Ï½ñ¤¤¤Æ¤ß¤Æ¡¢Æ°ºî¤¹¤ë¤«¤ò³Îǧ¤·¤Æ¤ß¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦¡£
¾¡¼ê¤Ë½ÐÍè¤Ê¤¤¤â¤Î¤È»×¤¤¹þ¤Þ¤º¤Ë¡¢¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¡¢¤È¤¤¤¦´ÑÅÀ¤«¤é¹Í¤¨¤Æ¤¤¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬ÂçÀڤǤ¹¡£

¡¡¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤¤¤¯¤³¤È¤ÏÂçÊѤǤϤ¢¤ê¤Þ¤¹¤¬¡¢¤³¤ì¤Ï¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ½èÍý¤òÆ°¤«¤¹Âé¸ïÌ£¤Ç¤¢¤ê¡¢Â¾¤Ç¤ÏÆÀÆñ¤¤Âθ³¤Ë¤â·Ò¤¬¤ê¤Þ¤¹¡£
¡¡


¡¡°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£