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

³Ø½¬¤¹¤ë¤³¤È

<Ìá¤êÃÍ>¤Î»È¤¤Êý
<´Ø¿ô¤Î°ú¿ô>¤Î»È¤¤Êý¡¡­¡Ê£¿ô¤Î°ú¿ô¡¡­¢¼«ºî¥¯¥é¥¹¤Î°ú¿ô
¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤Î<Add Component>¤Î»È¤¤Êý
¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îºï½ü¤Î¤ä¤êÊý

¡¡¸½ºß¤Ï¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤Î¥¢¥¤¥Æ¥à¤ËÀÜ¿¨¤¹¤ë¤ÈPlayer¤Î°Üư®ÅÙ¤¬ÊѲ½¤·¤Þ¤¹¡£
¤¿¤À¤·¡¢»þ´ÖÀÚ¤ì¤Ê¤É¤ÎÀ©¸Â¤¬¤Ê¤¤¤¿¤á¡¢°ìÅÙ¼è¤ë¤È¤º¤Ã¤È°Üư®ÅÙ¤¬ÊѲ½¤·¤¿¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¤³¤Á¤é¤ò½¤Àµ¤·¡¢»þ´ÖÀ©¸ÂÉÕ¤­¤Ç¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¿§¡¹¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤¢¤Þ¤ê¥µ¥¤¥È¤Îµ­»ö¤Ë¤Ê¤¤ÊýË¡¤Ç¼ÂÁõ¤ò¤·¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£

¡¡¥¤¥á¡¼¥¸¤È¤·¤Æ¤Ï

£±¡¥¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤Î¥¢¥¤¥Æ¥à¤ËÀÜ¿¨¤¹¤ë
£²¡¥Player¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡Ö¥¹¥Ô¡¼¥É¥¢¥Ã¥×¡×¤È¤¤¤¦¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¡¢
¡¡¡¡°Üư®ÅÙ¤òÊѲ½¤µ¤»¤ë¤È¤È¤â¤Ë¡¢¥¹¥Ô¡¼¥É¥¢¥Ã¥×¾õÂÖ¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é»ëǧ¤Ç¤­¤ë·Á¤ÇÉÕÍ¿¤¹¤ë¡£
£³¡¥°ìÄê»þ´Ö¸å¤Ë¡Ö¥¹¥Ô¡¼¥É¥¢¥Ã¥×¡×¤Î¥¯¥é¥¹¤òÇË´þ¤¹¤ë¤ÈƱ»þ¤Ë¡¢°Üư®ÅÙ¤ò¸µ¤ËÌ᤹¡£

¡¡Player¤Î°Üư®ÅÙ¤òÊѲ½¤µ¤»¤ë¡Ê¾å¤²¤ë¡¢²¼¤²¤ë¡¢Ì᤹¡Ë¤È¤¤¤Ã¤¿½èÍý¤Ï¤¹¤Ù¤Æ
Player¥¯¥é¥¹¤ÎChangeMoveSpeed´Ø¿ô¤Ë¤Æ¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£


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


public class PlayerController : MonoBehaviour
{
    private float moveSpeed;

    // Start is called before the first frame update
    void Start()
    {
        moveSpeed = 0.05f;
    }

    // Update is called once per frame
    void Update()
    {    
        // º¸Ìð°õ¤¬²¡¤µ¤ì¤¿»þ
        if(Input.GetKey(KeyCode.LeftArrow))
        {
                // º¸¤Ë¡Ö3¡×Æ°¤«¤¹
                transform.Translate(-moveSpeed, 0, 0);                          
        }
        // ±¦Ìð°õ¤¬²¡¤µ¤ì¤¿»þ
        if(Input.GetKey(KeyCode.RightArrow))
        {
                // ±¦¤Ë¡Ö£³¡×Æ°¤«¤¹
                transform.Translate(moveSpeed, 0, 0);                     
        }
    }

    /// <summary>
    /// °Üư®ÅÙ¤òÊѹ¹¤¹¤ë
    /// ItemSpeed¥¯¥é¥¹¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë
    /// </summary>
    public void ChangeMoveSpeed(float newMoveSpeed) {
        moveSpeed = newMoveSpeed;
        Debug.Log(moveSpeed);
    }

    /* ¤³¤³¤«¤éÄɲà */

    /// <summary>
    /// ËÜÍè¤Î°Üư®ÅÙ¤ÎÌá¤êÃͤò»È¤Ã¤ÆÊÖ¤·¤ÆÅϤ¹
    /// </summary>
    public float GetMoveSpeed() {
        return moveSpeed;
    }

    /* ¤³¤³¤Þ¤Ç */
}


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

public class Condition_ChangeSpeed : MonoBehaviour
{
    [Header("¤³¤Î¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤¿»þ¤ÎPlayer¤Î°Üư®ÅÙ")]
    public float changedSpeed;

    [Header("¤³¤Î¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¤Æ¤ª¤¯»þ´Ö = ¸ú²Ì»þ´Ö")]
    public float conditionTime;

    private PlayerController playerController;

    private float normalMoveSpeed;  // ËÜÍè¤Î°Üư®ÅÙ
    private float timer;            // ¸ú²Ì»þ´Ö·×¬ÍÑ

    /// <summary>
    /// SpeedItem¥¯¥é¥¹¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë
    /// </summary>
    public void Setup(float speed, float time)
    {
        // ¼õ¤±¼è¤Ã¤¿°ú¿ô¤òÍÑ°Õ¤·¤¿ÊÑ¿ô¤ØÂåÆþ¤¹¤ë¡Ê°ú¿ô¤ÎÊÑ¿ô¤Î¥¹¥³¡¼¥×ÈϰϤϡ¢¤½¤Î´Ø¿ôÆâ¤Ç¤·¤«»È¤¨¤Ê¤¤¡Ë
        changedSpeed = speed;
        conditionTime = time;

        // ¤³¤Î¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËPlayerController¥¯¥é¥¹¤¬¤¢¤ë¤«³Îǧ¤·¤Æ¼èÆÀ¤¹¤ë
        if (TryGetComponent(out playerController)) {
            // ¼èÆÀ¤Ç¤­¤¿¤Ê¤é¡¢¸µ¤ËÌ᤹ºÝ¤Î°Üư®ÅÙ¤òµ­Ï¿¤·¤Æ¤ª¤¯
            // º¸ÊÕ = ±¦ÊÕ ¤Î½èÍý¤Ë¤è¤ê¡¢Ìá¤êÃͤò»ý¤ÄGetMoveSpeed´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢Ãͤ¬ÂåÆþ¤µ¤ì¤ë
            normalMoveSpeed = playerController.GetMoveSpeed();

            // °Üư®ÅÙ¤òÊѹ¹¤¹¤ë
            playerController.ChangeMoveSpeed(changedSpeed);
        } else {
            // ¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¤é¡¢¤³¤Î¥¯¥é¥¹¤òÇË´þ¤¹¤ë
            Destroy(GetComponent<Condition_ChangeSpeed>());
        }
    }

    void Update() {
        // PlayerController¥¯¥é¥¹¤¬ÂåÆþ¤µ¤ì¤ë¤Þ¤Ç¤Ï¡¢Update½èÍý¤ò¤·¤Ê¤¤
        if (playerController == null) {
            return;
        }

        // ¥¿¥¤¥Þ¡¼¤ò¼Â¹Ô
        timer += Time.deltaTime;

        // ¥¿¥¤¥Þ¡¼¤ÎÃͤ¬¸ú²Ì»þ´Ö¤òĶ¤¨¤¿¤é
        if (timer > conditionTime) {
            // °Üư®ÅÙ¤ò¸µ¤ÎÃͤËÌ᤹
            playerController.ChangeMoveSpeed(normalMoveSpeed);

            // ¤³¤Î¥¯¥é¥¹¤òÇ˲õ¤¹¤ë
            Destroy(this);
        }
    }
}



using UnityEngine;

/// <summary>
/// Player¤Î°Üư®ÅÙ¤òÊѹ¹¤¹¤ë¥¯¥é¥¹
/// ¥¢¥¤¥Æ¥à¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ»ÈÍѤ¹¤ë
/// </summary>
public class SpeedItem : MonoBehaviour
{
    [Header("Player¤Î°Üư®ÅÙ¤ÎÊѹ¹ÃÍ")]
    public float speed;

    [Header("Player¤Î°Üư®ÅÙ¤ÎÊѹ¹ÃÍ")]    // ÄɲÃ
    public float conditionTime;             // ÄɲÃ

    void Update() {
        if (transform.position.y < -5.0f) {
            // ²èÌ̳°¤Ë¥¢¥¤¥Æ¥à¤¬½Ð¤¿¤éÇ˲õ¤¹¤ë
            Destroy(gameObject);
        }    
    }

    private void OnTriggerEnter2D(Collider2D col) {
        // ÀÜ¿¨¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¥°¤¬¡ÉPlayer¡É¤«³Îǧ¤¹¤ë
        if (col.gameObject.tag == "Player") {

            /* ¤¤¤Þ¤Þ¤Ç¤Î½èÍý¤ò¥³¥á¥ó¥È¥¢¥¦¥È*/            

            // ¡ÉPlayer¡É¤Ç¤¢¤Ã¤¿¤Ê¤é¡¢¤½¤ÎPlayer¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬½ê»ý¤·¤Æ¤¤¤ëPlayerController¥¯¥é¥¹¤ò¼èÆÀ¤ò»î¤ß¤ë
            //if (col.gameObject.TryGetComponent(out PlayerController playerController)) {
            //    // PlayerController¥¯¥é¥¹¤ò¼èÆÀ¤Ç¤­¤¿¤Ê¤é¡¢PlayerController¥¯¥é¥¹¤ÎChangeMoveSpeed´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¡¢°ú¿ô¤È¤·¤ÆspeedÊÑ¿ô¤òÅϤ¹
            //    playerController.ChangeMoveSpeed(speed);
            //}
            //Debug.Log(playerController);

            /* ¤³¤³¤Þ¤Ç¥³¥á¥ó¥È¥¢¥¦¥È °Ê²¼¤òÄɲÃ*/

            // ¤¹¤Ç¤Ë¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤·¤Æ¤¤¤ë¾õÂ֤ʤ顢¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤Ï½èÍý¤·¤Ê¤¤
            if (col.gameObject.GetComponent<Condition_ChangeSpeed>()) {
                return;
            }

            // ¥¹¥Ô¡¼¥É¥¢¥Ã¥×¾õÂ֤Ǥʤ¤¤Ê¤é¡¢¥¹¥Ô¡¼¥É¥¢¥Ã¥×ÍÑ¥¯¥é¥¹¤ò¿·¤¿¤Ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤·¤Æ¥¢¥¿¥Ã¥Á¤¹¤ë
            col.gameObject.AddComponent<Condition_ChangeSpeed>().Setup(speed, conditionTime);

            // ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤¿¤á¤ÎDebug
            Debug.Log(col.gameObject.GetComponent<Condition_ChangeSpeed>());

            // ¤³¤Î¥¢¥¤¥Æ¥à¤òÇ˲õ¤¹¤ë
            Destroy(gameObject);
        }
    }
}

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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