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

¡¡º£²ó¤ÎÀ߷פǤϡ¢¥¯¥é¥¹¤Î·Ñ¾µ¤È¿ÂÖÀ­¤È¤¤¤¦¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë½ÅÍפʳµÇ°(¸¶Â§)¤òÍøÍѤ·¤¿À߷פγؽ¬¤ò¹Ô¤¤¤Þ¤¹¡£
¥¢¥¤¥Æ¥à¤È¤¤¤¦¼ïÎà¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ì¤Ð¡¢¤¹¤Ù¤Æ¶¦Ä̤¹¤ë½èÍý¤Ë¤è¤Ã¤ÆÆ°¤¯¤è¤¦¤ËÀ߷פ·¡¢¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢¥×¥ì¥¤¥ä¡¼¤¬¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤¹¤ë¡¢¼èÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤¬¾Ã¤¨¤ë¡¢¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï
¤¤¤º¤ì¤Î¥¢¥¤¥Æ¥à¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤âƱÍͤνèÍý¤òµ­½Ò¤¹¤ë¤³¤È¤¬ÁÛÄꤵ¤ì¤Þ¤¹¤Î¤Ç¡¢
¤³¤¦¤¤¤Ã¤¿¶¦Ä̤¹¤ë½èÍý¤ò¤Þ¤È¤á¤Æ£±¤Ä¤Î¥¯¥é¥¹¤Ëµ­½Ò¤·¡¢¤½¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë·Á¤Ç½èÍý¤ò¶¦Ä̲½¤·¤Æ¼ÂÁõ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤­¤Þ¤¹¡£



¼ê½ç


¡¡°Ê²¼¤Î¼ê½ç¤Ë±è¤Ã¤Æ¼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¡£

¡¡£±¡¥¥¢¥¤¥Æ¥àÍÑ¥¯¥é¥¹¤Î¿Æ¥¯¥é¥¹¤òÀ߷פ·¤Æ¼ÂÁõ¤¹¤ë
¡¡£²¡¥¿Æ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿²óÉü¥¢¥¤¥Æ¥àÍѤλҥ¯¥é¥¹¤òÀ߷פ·¤Æ¼ÂÁõ¤¹¤ë
¡¡£³¡¥¥×¥ì¥¤¥ä¡¼¤¬²óÉü¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤·¡¢HP¤¬²óÉü¤¹¤ë½èÍý¤Î½¤Àµ¤ò¹Ô¤¦
¡¡£´¡¥¥¢¥¤¥Æ¥à¤ÎÀ¸À®ÊýË¡¤ò½¤Àµ¤¹¤ë

¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£

¡ã³Ø½¬ÆâÍÆ¡ä
¡¡¡¦¥¯¥é¥¹¤Î·Ñ¾µ
¡¡¡¦protected(¥×¥í¥Æ¥¯¥Æ¥Ã¥É) ¥­¡¼¥ï¡¼¥É
¡¡¡¦virtual(¥Ð¡¼¥Á¥ã¥ë) ¥­¡¼¥ï¡¼¥É
¡¡¡¦override(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥­¡¼¥ï¡¼¥É
¡¡¡¦base(¥Ù¡¼¥¹) ¥­¡¼¥ï¡¼¥É
¡¡¡¦¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ­¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼
¡¡¡¦¿Æ¥¯¥é¥¹¤òÍøÍѤ·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®


£±¡¥¥¢¥¤¥Æ¥àÍÑ¥¯¥é¥¹¤Î¿Æ¥¯¥é¥¹¤òÀ߷פ·¤Æ¼ÂÁõ¤¹¤ë


¡¡¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤ÏMonobehaviour¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤Î¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¿Æ¥¯¥é¥¹¤ÏÄ̾ïÄ̤ꡢ¿·¤·¤¤C#¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¤¤¯¼ê½ç¤Çºî¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡¡»Ò¥¯¥é¥¹¤Ç¤Î¤ß¼ÂÁõ¤¬É¬ÍפʾðÊó¤È¡¢¿Æ¥¯¥é¥¹¤Ë¼ÂÁõ¤·¤Æ»Ò¥¯¥é¥¹¤Ç¶¦Ä̲½¤·¤ÆÍøÍѤ·¤¿¤¤¾ðÊó¤È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç
¤Þ¤º¤Ï¤½¤ÎÀÚ¤êʬ¤±¤ò¹Ô¤Ã¤Æ¡¢¶¦Ä̲½¤Ç¤­¤ë¤â¤Î¤Î¤ß¤ò¿Æ¥¯¥é¥¹¤ËÍÑ°Õ¤·¤Þ¤¹¡£

¡¡¡¦¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤¹¤ë¡¡=>¡¡½ÅÊ£¤·¤Æ¼èÆÀ¤¹¤ë¤³¤È¤òËɤ°
¡¡¡¦¼èÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤¬Ç˲õ¤µ¤ì¤ë
¡¡¡¦¥¢¥¤¥Æ¥à¤Î¸ú²Ì¤òŬÍѤ¹¤ë
¡¡¡¦¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë

¡¡¤³¤ÎÊÕ¤ê¤Ï¡¢¶¦Ä̲½¤Ç¤­¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤Ç¤¹¤¬¡¢

¡¡¡¦¥¢¥¤¥Æ¥à¤Î¸ú²Ì¤òŬÍѤ¹¤ë
¡¡¡¦¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë

¡¡¤³¤Î£²¤Ä¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¢¥¤¥Æ¥à¤Ë¤è¤Ã¤ÆÆâÍƤ¬°Û¤Ê¤ë¤¿¤á¡¢
¿Æ¥¯¥é¥¹¤Ë¶¦Ä̲½¤·¤Æ½èÍý¤òºî¤Ã¤¿¾å¤Ç¡¢»Ò¥¯¥é¥¹¤Ç¤½¤ì¤¾¤ì¤Î¥¢¥¤¥Æ¥à¤ÎÆâÍƤ˱褦ÆâÍƤ˽¤Àµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤ò¼ÂÁõ¤Ç¤­¤Þ¤¹¡£
¤Ê¤ª¡¢¥¨¥Õ¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡°Ê¹ß¤Î¼ê½ç¤Ç¼è¤ê°·¤¤¤Þ¤¹¡£



¡¡¿Æ¥¯¥é¥¹¤Ëµ­½Ò¤¹¤ëÆâÍƤϡ¢Ä̾ï¤Î¥¯¥é¥¹¤ÈƱ¤¸¤è¤¦¤ËÊÑ¿ô¤ÎÀë¸À¤È¥á¥½¥Ã¥É¤ÎºîÀ®¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢µ­½Ò¤¹¤ë½ñ¼°¤¬¤¤¤¯¤Ä¤«ÊѤï¤ê¤Þ¤¹¡£

¡¡ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ÎÀë¸À¤Ë¤ª¤¤¤Æ private ½¤¾þ»Ò¤òÍøÍѤ¹¤ëÉôʬ¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë protected ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤ì¤Ï·Ñ¾µ¤·¤¿¥¯¥é¥¹´Ö¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¤³¤È¤òµö²Ä¤¹¤ë½¤¾þ»Ò¤Ç¤¹¡£
³°Éô¤ÇÍøÍѤ·¤¿¤¤ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Ä̾ïÄ̤ê public ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£

¡¡¤Þ¤¿¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Àë¸À»þ¤Ë virtual ¥­¡¼¥ï¡¼¥É¤òµ­½Ò¤·¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç»Ò¥¯¥é¥¹¤¬¾å½ñ¤­²Äǽ¤Ê¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤ÇÀßÄꤵ¤ì¤¿¥¢¥¯¥»¥¹½¤¾þ»Ò¤Î¾ðÊó¤Ï»Ò¥¯¥é¥¹¤Ç¤â°ú¤­·Ñ¤¬¤ì¤Þ¤¹¡£
Î㤨¤Ð¿Æ¥¯¥é¥¹¤Ç public float x ¤òºîÀ®¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤Ï»Ò¥¯¥é¥¹¤Ç¤â public float x ¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¥á¥½¥Ã¥É¤âƱÍͤǤ¹¡£


ItemBase.cs

<= ¡Ü¥Ü¥¿¥ó¤ò²¡¤¹¤È³«¤­¤Þ¤¹¡£¿Æ¥¯¥é¥¹¤È¤·¤Æ¶¦Í­²½¤¹¤ë¾ðÊó¤Ï¥×¥í¥¸¥§¥¯¥È¤Ë¤è¤ê°Û¤Ê¤ê¤Þ¤¹¡£¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Ë¹ç¤Ã¤¿¤â¤Î¤Ë¥¢¥ì¥ó¥¸¤·¤Þ¤·¤ç¤¦¡£



¡ãprotected(¥×¥í¥Æ¥¯¥Æ¥Ã¥É) ¥­¡¼¥ï¡¼¥É¡ä


¡¡protected ¥­¡¼¥ï¡¼¥É¤Ï¥¢¥¯¥»¥¹½¤¾þ»Ò¤Î£±¤Ä¤Ç¤¹¡£private ¤ä public ¤ÎÃç´Ö¤Ç¤¹¡£

¡¡protected ¥­¡¼¥ï¡¼¥É¤òÀë¸À¤·¤¿ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ï¡¢¥¯¥é¥¹ÆâÉô¡¢¤¢¤ë¤¤¤ÏÇÉÀ¸(»Ò)¥¯¥é¥¹¤«¤é¤Î¤ß¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢¿Æ¥¯¥é¥¹¤È¤Ê¤ë¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢¿Æ»Ò´Ö¤ÇÍøÍѤ·¤¿¤¤ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¤Ï protected ½¤¾þ»Ò¤òÀë¸À¤·¤Þ¤¹¡£
¤³¤ì¤Ï¿Æ¥¯¥é¥¹¤Ë¤ª¤¤¤Æ private ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤ë¾ì¹ç¡¢¿Æ¥¯¥é¥¹ÆâÉô¤Ç¤ÏÍøÍѤǤ­¤Þ¤¹¤¬¡¢ÇÉÀ¸¥¯¥é¥¹¤Ç¤ÏÍøÍѤǤ­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¹¡£


¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë protected ½¤¾þ»Ò¤ò»ý¤ÄÊÑ¿ô¤ä¥á¥½¥Ã¥É¡ä

¡¡¡¡// ÊÑ¿ô¤Ç¤ÎÍøÍÑ
    protected int itemNo;


¡¡¡¡// ¥á¥½¥Ã¥É¤Ç¤ÎÍøÍÑ
¡¡¡¡protected virtual void EndItem(float duration = 1.5f) {

        Destroy(gameObject, duration);
    }



¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
protected (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
MicroSoft
¥¢¥¯¥»¥¹½¤¾þ»Ò
https://docs.microsoft.com/ja-jp/dotnet/csharp/pro...


¡ãvirtual(¥Ð¡¼¥Á¥ã¥ë) ¥­¡¼¥ï¡¼¥É¡ä


¡¡¿Æ¥¯¥é¥¹¤Ë¤ª¤¤¤ÆÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤Ï¡¢virtual (²¾ÁÛ) ¥­¡¼¥ï¡¼¥É¤ò°ì½ï¤ËÀë¸À¤¹¤ë¤³¤È¤Ç¡¢ÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤ò¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤òÍ­¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤ò²¾Áۥ᥽¥Ã¥É¤È¤¤¤¤¤Þ¤¹¡£²¾Áۥ᥽¥Ã¥É¤Ë¤è¤ê¡¢¥á¥½¥Ã¥É¤Ë¤Ï¿ÂÖÀ­¤¬À¸¤Þ¤ì¤Þ¤¹¡£


¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¡ä
    public virtual void TriggerItem() {
        // ³Æ¥¢¥¤¥Æ¥à¤Î¸ú²Ì¤òµ­½Ò¤¹¤ë

    }


¡¡virtual ¥­¡¼¥ï¡¼¥É¤Î¤Ê¤¤¥á¥½¥Ã¥É(Ä̾ï¤Î¥á¥½¥Ã¥É)¤Ï²¾Áۥ᥽¥Ã¥É¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢½èÍý¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£


¡ã³Æ¥­¡¼¥ï¡¼¥É¤Î´Ø·¸À­¡ä
¡¡virtual => override ¤Ç¤­¤ë

  abstract => override ¤Ç¤­¤ë

MicroSoft
virtual (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...


£²¡¥¿Æ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿²óÉü¥¢¥¤¥Æ¥àÍѤλҥ¯¥é¥¹¤òÀ߷פ·¤Æ¼ÂÁõ¤¹¤ë


¡¡Á°²óºîÀ®¤·¤¿ Item_RecoveryLife ¥¯¥é¥¹¤Ë¡¢MonoBehaviour ¤ÎÂå¤ï¤ê¤Ë ItemBase ¤ò·Ñ¾µ¤µ¤»¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤Ã¤Æ¿Æ¥¯¥é¥¹ ItemBase¡¢»Ò¥¯¥é¥¹ Item_RecoveryLife ¤È¤¤¤¦´ØÏ¢À­¤¬À¸¤Þ¤ì¤Þ¤¹¡£

¡¡¤Ê¤ª¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤Î¤Ï»Ò¥¯¥é¥¹¡Ê¤³¤³¤Ç¤Ï Item_RecoveryLife¡Ë¤Î¤ß¤ÇÂç¾æÉפǤ¹¡£
·Ñ¾µ¸µ¤Ç¤¢¤ë¥¯¥é¥¹¤òÊÌÅÓ¥¢¥¿¥Ã¥Á¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

¡¡Unity ¤Ë¤ª¤¤¤ÆÍøÍѤ¹¤ëµ¡²ñ¤Î¿¤¤ MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È(¿·¤·¤¯¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¤È¼«Æ°Åª¤Ë·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹)¤â¡¢
MonoBehaviour ¤È¤¤¤¦¥¯¥é¥¹¼«ÂΤϥ¢¥¿¥Ã¥Á¤·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢MonoBehaviour ¥¯¥é¥¹¤Î»ý¤Ä Start ¥á¥½¥Ã¥É¤Ê¤É¤¬Í­¸ú¤ËÆ°¤¯¤Î¤Ï¡¢¤³¤Î¥¯¥é¥¹¤Î·Ñ¾µ¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£
¡¡


¡¡¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¾ì¹ç¡¢·Ñ¾µ¤·¤Æ¤¤¤ë¿Æ¥¯¥é¥¹(º£²ó¤Ç¤¢¤ì¤Ð ItemBase ¥¯¥é¥¹)¤Î·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤â°ú¤­Â³¤­¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¤³¤ì¤«¤é½¤Àµ¤¹¤ë Item_RecoveryLife ¥¯¥é¥¹¤Ï MonoBehaivour ¥¯¥é¥¹¤È ItemBase ¥¯¥é¥¹¤Î£²¤Ä¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡MonoBehaivour ¥¯¥é¥¹¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Start ¥á¥½¥Ã¥É¤ä OnTrigger ¡Á ¥á¥½¥Ã¥É¤âÍøÍѤǤ­¤Þ¤¹¤·¡¢
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£

¡¡°Ê²¼¤Ï Item_RecoveryLife ¤ò½¤Àµ¤·¤¿¥¹¥¯¥ê¥×¥È¤Ë¤Ê¤ê¤Þ¤¹¡£


Item_RecoveryLife.cs

<= ¡Ü¥Ü¥¿¥ó¤ò²¡¤¹¤È³«¤­¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ê¤ê¤Î¼ÂÁõ¤ò¹Ô¤Ã¤¿¾å¤Ç³Îǧ¤ò¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£


¡¡»Ò¥¯¥é¥¹¤Î½èÍý¤Ï°Ê¾å¤Ç¤¹¡£Â¾¤ÎɬÍפʽèÍý¤Ï¤¹¤Ù¤Æ¿Æ¥¯¥é¥¹¤Ç¤¢¤ë ItemBase ¦¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤Ç½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á»Ò¥¯¥é¥¹¤Ë¤Ï¡¢¿Æ¥¯¥é¥¹¤Ë­¤ê¤Ê¤¤¾ðÊó¤ä¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥ÉÆâÍƤËÂФ·¤Æ½¤Àµ¤·¤¿¤¤½èÍý¤À¤±¤òµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤â´Þ¤á¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

¡¡»Ò¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤ËÊѹ¹¤ò²Ã¤¨¤¿¾ì¹ç¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤³¤ì¤ò¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤¤¤¤¤Þ¤¹¡£
¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤ë¥á¥½¥Ã¥É¤Ï¡¢¿Æ¥¯¥é¥¹¤Ç virtual ¥­¡¼¥ï¡¼¥É¤òÉÕ¤±¤ÆÀë¸À¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É(²¾Áۥ᥽¥Ã¥É)¤Î¤ß¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤¦¤È¡¢¿Æ¥¯¥é¥¹¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤Ï¤¹¤Ù¤Æ¾å½ñ¤­¤µ¤ì¤Æ̵»ë¤µ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢»Ò¥¯¥é¥¹¤Î½èÍý¤òÄɲä·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥ÉÆâ¤Ë base.¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥É̾(); ¤òµ­½Ò¤·¤Þ¤¹¡£
¾Ü¤·¤¤»È¤¤Êý¤Ë¤Ä¤¤¤Æ¤ÏŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤áÊ̤Υڡ¼¥¸¤Ç¹Ô¤¤¤Þ¤¹¤¬¡¢¤Þ¤º¤Ï¤´¼«Ê¬¤Ç·Ñ¾µ¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡°Ê¾å¤Î¤³¤È¤è¤ê¡¢¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤ï¤Ê¤¤¥á¥½¥Ã¥É¤Ï¡¢»Ò¥¯¥é¥¹¤Ç¿Æ¥¯¥é¥¹¤Î½èÍý¤ò¾å½ñ¤­¤¹¤ëɬÍפ¬¤Ê¤¤¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢»Ò¥¯¥é¥¹¤Ç¤Îµ­½Ò¤ÏÉÔÍפˤʤê¤Þ¤¹¡£
Item_RecoveryLife ¥¯¥é¥¹¤Ë¤Ï¿Æ¥¯¥é¥¹¤Ë¤¢¤ë EndItem ¥á¥½¥Ã¥É¤Îµ­½Ò¤¬¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤³¤Î EndItem ¥á¥½¥Ã¥É¤Ï¡¢Item_RecoveryLife ¥¯¥é¥¹¤Ç¤Ï¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤ò¤½¤Î¤Þ¤ÞÍøÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¡¢¥×¥ì¥Õ¥¡¥Ö¤Ë¤Ê¤Ã¤Æ¤¤¤ë²óÉüÍÑ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È Item_RecoveryLife ¤Î¥×¥ì¥Õ¥¡¥Ö¤ò¸«¤Æ¡¢½¤Àµ¤·¤¿ Item_RecoveryLife ¥¯¥é¥¹¤ò³Îǧ¤·¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ë¤Ï·Ñ¾µ¤·¤Æ¤¤¤ë¿Æ¤Î¾ðÊó¤âɽ¼¨¤µ¤ì¤Þ¤¹¡£Ëº¤ì¤º¤ËÀßÄê¤ò¹Ô¤¤¤Þ¤·¤ç¤¦¡£




¡ãoverride(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥­¡¼¥ï¡¼¥É¡ä


¡¡abstract ¥­¡¼¥ï¡¼¥É¤Ë¤è¤ëÃê¾Ý¼ÂÁõ¤ä¡¢virtual ¥­¡¼¥ï¡¼¥É¤Ë¤è¤ë²¾ÁÛ¼ÂÁõ¤ËÂФ·¤Æ¼Â¹Ô¤Ç¤­¤ëµ¡Ç½¤Ç¤¹¡£
¾åµ­¤Î£²¤Ä¤Î¥­¡¼¥ï¡¼¥É¤ò»ý¤Ä¥á¥½¥Ã¥É¤ËÂФ·¤Æ¡¢¾åµ­Éôʬ¤ò override ¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢½èÍý¤ò³ÈÄ¥¤·¤¿¤ê¡¢½ñ¤­´¹¤¨¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤Î¤È¤­¡¢¥á¥½¥Ã¥É¤Î¥¢¥¯¥»¥¹½¤¾þ»Ò¤òÊѹ¹¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
Î㤨¤Ð¡¢protected virtual ¥á¥½¥Ã¥É¤Ç¤¢¤ì¤Ð¡¢protected override ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¡¢¤¢¤¯¤Þ¤Ç¤âƱ¤¸¥¢¥¯¥»¥¹½¤¾þ»Ò¤Ç¤Î¼ÂÁõ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¡ä
    public virtual void TriggerItem() {

        // ³Æ¥¢¥¤¥Æ¥à¤Î¸ú²Ì¤òµ­½Ò¤¹¤ë

    }

¡¡¢­¡¡

¡ãÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ç¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¼ÂÁõ¡ä
    public override void TriggerItem(CharaController player) {

        // ¿Æ¥¯¥é¥¹¤Î TriggerItem ¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥³¥é¥¤¥À¡¼¤ò¥ª¥Õ¤Ë¤¹¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë
        base.TriggerItem(charaController);

        // HP ²óÉü
        RecoverLife(player);

¡¡¡¡¡¡¡¡// TODO ²óÉü¥¨¥Õ¥§¥¯¥ÈÀ¸À®¤ÈÇË´þ


        // ¿Æ¥¯¥é¥¹¤Î EndItem¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥¢¥¤¥Æ¥à¤ÎÇË´þ¤ò¼Â¹Ô¤¹¤ë
        base.EndItem();
    } 

¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤¤¤¦Ã±¸ì¤Î»ý¤Ä°ÕÌ£¤ÎÄ̤ê¤Ç¡¢¤³¤Î½èÍý¤ò¹Ô¤Ã¤¿¿Æ¥¯¥é¥¹Â¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤¿²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤Ï¾å½ñ¤­¤Þ¤¹¡£
¤â¤·¤â¿Æ¥¯¥é¥¹¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤âÍøÍѤ·¤¿¾å¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¤¤¾ì¹ç¡¢base ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Þ¤¹¡£¤³¤Á¤é¤Ï¼¡¤ËÀâÌÀ¤·¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤Ë¤¢¤ë virtual ¥­¡¼¥ï¡¼¥É¡¢¤¢¤ë¤¤¤Ï abstract ¥­¡¼¥ï¡¼¥É¤È override ¥­¡¼¥ï¡¼¥É¤È¤Ï¡¢£±ÂУ±¤Ç¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¥¤¥á¡¼¥¸¤Ç¤¹¡£


¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
override (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...


¡ãbase(¥Ù¡¼¥¹) ¥­¡¼¥ï¡¼¥É¡ä


¡¡override ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Æ²¾Áۥ᥽¥Ã¥É¤òÊѹ¹¤¹¤ë¾ì¹ç¡¢¿Æ¥¯¥é¥¹¤Ç¤Î¼ÂÁõÆâÍƤòÍøÍѤ·¤Æ³ÈÄ¥¤·¤¿¤¤¾ì¹ç¤È¡¢¤Þ¤ë¤´¤È½ñ¤­´¹¤¨¤¿¤¤¾ì¹ç¤È¤¬¤¢¤ê¤Þ¤¹¡£
¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤Ï´ðËÜŪ¤Ë¾å½ñ¤­¤Ç¤¹¤Î¤Ç¡¢´Ý¤´¤È½ñ¤­´¹¤ï¤ê¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¤Î½èÍý¤ò»Ä¤·¤¿¾å¤Ç¡¢³ÈÄ¥¤¹¤ë·Á¤Ç¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢base ¥­¡¼¥ï¡¼¥É¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤Þ¤¹¡£

¡¡µ­½Ò¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢base. ¤Ë³¤±¤Æ¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¤Î¥á¥½¥Ã¥É̾¤È°ú¿ô¤òÀë¸À¤·¤Þ¤¹¡£
½èÍý¤ò½ñ¤¯½çÈ֤ˤâÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¥×¥í¥°¥é¥à¤Ï¾å¤«¤é½çÈ֤˼¹Ԥµ¤ì¤Þ¤¹¤Î¤Ç¡¢³ÈÄ¥¤·¤¿½èÍý¤ËÂФ·¤Æ¤É¤Î¥¿¥¤¥ß¥ó¥°¤Ç¿Æ¥¯¥é¥¹¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤«¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

    public override void TriggerItem(CharaController player) {

        // ¿Æ¥¯¥é¥¹¤Î TriggerItem ¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥³¥é¥¤¥À¡¼¤ò¥ª¥Õ¤Ë¤¹¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë
        base.TriggerItem(charaController);

        // HP ²óÉü
        RecoverLife(player);

¡¡¡¡¡¡¡¡// TODO ²óÉü¥¨¥Õ¥§¥¯¥ÈÀ¸À®¤ÈÇË´þ


        // ¿Æ¥¯¥é¥¹¤Î EndItem¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥¢¥¤¥Æ¥à¤ÎÇË´þ¤ò¼Â¹Ô¤¹¤ë
        base.EndItem();
    } 

¡¡¾åµ­¤Î¼ÂÁõ¤Î¾ì¹ç¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢»Ò¥¯¥é¥¹¤Î½èÍý¤¬¼ÂÁõ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¼¡¤Î¤è¤¦¤ÊÆâÍƤˤʤê¤Þ¤¹¡£

¡ãbase ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤¿¾ì¹ç¤Î½èÍý¡ä
    public override void TriggerItem(CharaController player) {


////*  base.TriggerItem ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý  *////


        // ¿Æ¥¯¥é¥¹¤Î TriggerItem ¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥³¥é¥¤¥À¡¼¤ò¥ª¥Õ¤Ë¤¹¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë
        base.TriggerItem(charaController);

¡¡¡¡¡¡¡¡¡¡¡¡=>¡¡¤³¤ì¤Ï¤Ä¤Þ¤ê¡¢

        // ½ÅÊ£³ÍÆÀ¤òËÉ»ß
        col.enabled = false;


////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë  *////


        // HP ²óÉü
        RecoverLife(player);

¡¡¡¡¡¡¡¡// TODO ²óÉü¥¨¥Õ¥§¥¯¥ÈÀ¸À®¤ÈÇË´þ



////*  base.EndItem ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý  *////


        // ¿Æ¥¯¥é¥¹¤Î EndItem ¥á¥½¥Ã¥É¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë½èÍý¤ò¤¹¤Ù¤Æ¼Â¹Ô¤¹¤ë
        // º£²ó¤Î¼ÂÁõ¤Ç¤¢¤ì¤Ð¡¢¥¢¥¤¥Æ¥à¤ÎÇË´þ¤ò¼Â¹Ô¤¹¤ë
        base.EndItem();

¡¡¡¡¡¡¡¡¡¡¡¡=>¡¡¤³¤ì¤Ï¤Ä¤Þ¤ê¡¢

        Destroy(gameObject, duration);


////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë  *////


    } 

¡¡base ¤òµ­½Ò¤¹¤ì¤Ð¡¢¤½¤Î½èÍý¤ÎÆâÍƤȤ·¤Æ¤Ï¿Æ¥¯¥é¥¹¤Î½èÍý¤¬¤½¤Î¤Þ¤ÞŬÍѤµ¤ì¤Þ¤¹¤Î¤Ç¡¢Èó¾ï¤ËÊØÍø¤Ç¤¹¡£
Æä˿ƥ¯¥é¥¹¤Ç¤Î²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤¬Â¿¤¤¤Û¤É¡¢1¹Ô¤Î base ¥­¡¼¥ï¡¼¥É¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤ë½èÍý¤â¿¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢²¸·Ã¤ÏÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£

¡¡µÕ¤Ë¹Í¤¨¤ë¤È¡¢¿Æ¥¯¥é¥¹¤Ë¤ª¤±¤ë¥á¥½¥Ã¥É¤ÎµóÆ°¤ò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤¤¤Ê¤¤¤È¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤òÍøÍѤ·¤¿¥×¥í¥°¥é¥à¤òÁȤ߹þ¤á¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥É¤Ç¤Ï¡¢base ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¸Â¤ê¡¢¿Æ¥¯¥é¥¹¤Ç¤Î½èÍý¤ÎÆâÍƤÏÈ¿±Ç¤µ¤ì¤Ê¤¤(¾å½ñ¤­¤µ¤ì¤ë)¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë base ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢»Ò¥¯¥é¥¹¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤µ¤ì¤¿½èÍý¤Î¤ß¤¬¼ÂÁõ¤µ¤ì¤Þ¤¹¡£


¡ãbase ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¾ì¹ç¤Î½èÍý¡ä
    public override void TriggerItem(CharaController player) {


////*  base.TriggerItem ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý¤¬¤Ê¤¤¤Î¤Ç  *////


¡¡¡¡¡¡¡¡//¡¡¥³¥é¥¤¥À¡¼¤ò¥ª¥Õ¤Ë¤¹¤ë½èÍý


////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¤  *////


        // HP ²óÉü
        RecoverLife(player);

¡¡¡¡¡¡¡¡// TODO ²óÉü¥¨¥Õ¥§¥¯¥ÈÀ¸À®¤ÈÇË´þ



////*  base.EndItem ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý¤¬¤Ê¤¤¤È  *////


¡¡¡¡¡¡// ¥¢¥¤¥Æ¥à¤òÇ˲õ¤¹¤ë½èÍý
 

////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¤  *////


    } 


¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
base (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
++C++ // ̤³ÎǧÈô¹Ô C ÍÍ
·Ñ¾µ
https://ufcpp.net/study/csharp/oo_inherit.html


£³¡¥¥×¥ì¥¤¥ä¡¼¤¬²óÉü¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤·¡¢HP¤¬²óÉü¤¹¤ë½èÍý¤Î½¤Àµ¤ò¹Ô¤¦


¡¡¥×¥ì¥¤¥ä¡¼Â¦¤Î OnTriggerEnter ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç¡¢²óÉü¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¥¿¥°¤Ë¤è¤ëɾ²Á¤òºï½ü¤·¡¢Âå¤ï¤ê¤Ë if ʸ¤È TryGetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Þ¤¹¡£
¤³¤Îʬ´ô½èÍý¤Ë¤è¤ê¡¢¿¯Æþ¤·¤¿¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤òɾ²Á¤·¤Æ¡¢
¥¢¥¤¥Æ¥à¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¡¢¤½¤¦¤Ç¤Ï¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ê¤Î¤«¤òȽÊ̤·¤Æ¤¤¤Þ¤¹¡£

¡¡²¼µ­¤Ë CharaController(PlayerControler) ¤òÊäµ­¤·¤¿¥¹¥¯¥ê¥×¥È¤òÄ󼨤·¤Þ¤¹¡£½¤Àµ¤·¤Æ¤¤¤ëÉôʬ¤Î¤ßµ­ºÜ¤·¤Æ¤¤¤Þ¤¹¡£


CharaController.cs

<= ¡Ü¥Ü¥¿¥ó¤ò²¡¤¹¤È³«¤­¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ê¤ê¤Î¼ÂÁõ¤ò¹Ô¤Ã¤¿¾å¤Ç³Îǧ¤ò¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£


¡¡¤µ¤Æ¡¢¤¤¤Þ¤Þ¤Ç¤Î½èÍý¤È¤Ï¡¢¤É¤ÎÉôʬ¤¬°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢¤É¤³¤¬¥Ý¥¤¥ó¥È¤«¤ï¤«¤ê¤Þ¤¹¤Ç¤·¤ç¤¦¤«¡£

¡¡¥¿¥°¤Î¾ì¹ç¤Ë¤Ï¡¢¥¿¥°¤Ë¤è¤ëʬ´ô¸å¡¢¤µ¤é¤Ë¥¢¥¤¥Æ¥à¤Î̾Á°¤òÆÃÄꤷ¤Æ¤¢¤²¤Ê¤¤¤È¡¢¤É¤Î¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤·¤¿¤Î¤«¤òȽÊ̤Ǥ­¤º¡¢½èÍý¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£

¡¡º£²ó¤Î¼ÂÁõ¤Î¾ì¹ç¡¢TryGetComponent ¥á¥½¥Ã¥É¤Ç¤Ï¡¢ItemBase ¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤É¤¦¤«¡¢¤òɾ²Á¤·¤Æ¤¤¤Þ¤¹¡£
ItemBase ¥¯¥é¥¹¤È¤Ï¡¢³Æ¥¢¥¤¥Æ¥à¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤Î¿Æ¥¯¥é¥¹¤Ç¤¹¡£

¡¡¤Ä¤Þ¤ê¡¢»Ò¥¯¥é¥¹¤Ç¸ÄÊ̤ËȽÄê¤ò¹Ô¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢¿Æ¥¯¥é¥¹¤Ç¤¢¤ë ItemBase ¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¡¢¤òȽÄꤹ¤ëɾ²Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢³Æ¥¢¥¤¥Æ¥à¤¬ ItemBase ¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë¤³¤È¤¬Á°Äó¤Ç¼ÂÁõ²Äǽ¤ÊÀ߷פˤʤê¤Þ¤¹¡£

¡¡Ê¬´ô¤Î½èÍý¤Ï¤³¤ì¤À¤±¤Ç¤¹¡£¸ÄÊ̤Ëʬ¤±¤ëɬÍפʤ¢¤ê¤Þ¤»¤ó¡£

¡¡¤¢¤È¤Ï¡¢ItemBase ¥¯¥é¥¹¤Î¼èÆÀ¤¬½ÐÍ褿¾ì¹ç¤Ë¤Ï¡¢Æ±»þ¤Ë¥¢¥¤¥Æ¥à¤Ç¤¢¤ë¤ÈȽÃǤµ¤ì¤ë¤Î¤Ç¡¢TriggerItem ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤â¿Æ¥¯¥é¥¹¤Ç¤¢¤ë ItemBase ¥¯¥é¥¹¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢»Ò¥¯¥é¥¹¤Ë¤âɬ¤ºÂ¸ºß¤¹¤ë¥á¥½¥Ã¥É¤È¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¥¢¥¤¥Æ¥à¤Î¼èÆÀ½èÍý¤Ï¡¢¤³¤Î½èÍý¤À¤±¤Ç¡¢¤¢¤È¤Ï¡¢³Æ»Ò¥¯¥é¥¹¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿ TriggerItem ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ­¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼¡ä


¡¡Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¤È¤Ï¡¢ Ʊ¤¸¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·Ì¿Îá¤ËÂФ·¤Æ¡¢°Û¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬°Û¤Ê¤ëÆ°ºî¤ò¤¹¤ë(¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë)¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë¡¢½ÅÍפʹͤ¨Êý¡¦³µÇ°¤Ë¤Ê¤ê¤Þ¤¹¡£
++C++; // ̤³ÎǧÈô¹Ô C ÍÍ
C# ¤Ë¤è¤ë¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç ¿ÂÖÀ­
https://ufcpp.net/study/csharp/oo_polymorphism.htm...



¡¡º£²ó¤Î¼ÂÁõ¤Î¥±¡¼¥¹¤Ç¤¢¤ì¤Ð¡¢ItemBase ¥¯¥é¥¹¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë TriggerItem ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢
²óÉü¥¢¥¤¥Æ¥à¤Ç¤¢¤ì¤Ð²óÉü¥¢¥¤¥Æ¥à¤È¤·¤Æ¤Î½èÍý¤ò¹Ô¤¤¡¢Â®ÅÙ¥¢¥Ã¥×¤Î¥¢¥¤¥Æ¥à¤Ç¤¢¤ì¤Ð®ÅÙ¥¢¥Ã¥×¤È¤·¤Æ¤Î½èÍý¤ò¹Ô¤¦¤è¤¦¤Ë¡¢
Ʊ¤¸¥á¥½¥Ã¥É¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¼Â¹Ô¤µ¤ì¤ë½èÍý¤¬°Û¤Ê¤ë¡¼¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¡¼¤³¤È¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£

¡¡²¾¤Ë¥¯¥é¥¹¤Î·Ñ¾µ¤¬¤Ê¤¯¡¢¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤â¤Ê¤¤¾ì¹ç¤È¡¢º£²ó¼ÂÁõ¤·¤Æ¤¤¤ë½èÍý¤È¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤¹¡£
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òȽÄꤹ¤ë¤Ë¤¢¤¿¤ê¡¢¥¿¥°¤òÍøÍѤ·¤¿¥±¡¼¥¹¤Ç¹Í¤¨¤Æ¤ß¤Þ¤¹¡£


¡ã¥¿¥°¤òÍøÍѤ·¤ÆÊ£¿ô¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òȽÄꤹ¤ë¾ì¹ç¡ä

  if(hit.collider.gameObject.tag == "Enemy_A" || hit.collider.gameObject.tag == "Enemy_B"){

     // Ũ¤Î¥¯¥é¥¹¤ò¼èÆÀ
     EnemyController enemy = hit.collider.gameObject.GetComponent<EnemyController>();

     // Ũ¤Î¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤ò¼Â¹Ô
     enemy.Damage();

  } 
  else if(hit.collider.gameObject.tag == "Enemy_C"){

     // Ũ¤Î¥¯¥é¥¹¤ò¼èÆÀ
     EnemyController_Boss boss = hit.collider.gameObject.GetComponent<EnemyController_Boss>();

     // Ũ¤Î¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤ò¼Â¹Ô
     boss.BossDamage();
  }
  else if(hit.collider.gameObject.tag == "PowerUpItem"){

     // ¥Ñ¥ï¡¼¥¢¥Ã¥×¥¢¥¤¥Æ¥à¤Î¥¯¥é¥¹¤ò¼èÆÀ
     PowerUpItem powerUpItem = hit.collider.gameObject.GetComponent<PowerUpItem>();

     // Ũ¤Î¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤ò¼Â¹Ô
     powerUpItem.PowerUp();
  }

¡¡¤³¤Î¤è¤¦¤Ë³Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬°Û¤Ê¤ë¥¯¥é¥¹¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢³Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤´¤È¤Ëʬ´ô¤òºî¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡¢£±¤Ä¤Î¿·¤·¤¤¾ðÊó¤¬Áý¤¨¤ë¤¿¤Ó¤Ëʬ´ô¤ä¥¿¥°¤òÁý¤ä¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
³Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤Î¾ðÊó¤â°Û¤Ê¤ë¤¿¤á¡¢GetComponent ¥á¥½¥Ã¥É¤Ç¼èÆÀ¤¹¤ë·¿¤Î»ØÄê¤ä¡¢¤½¤Î¸å¤Î¥á¥½¥Ã¥É¤â½ñ¤­Âؤ¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¿ô¤¬¾¯¤Ê¤¤¤¦¤Á¤Ï¤¤¤¤¤Ç¤¹¤¬¡¢½èÍý¤ÏÈÑ»¨¤Ë¤Ê¤ê¤¬¤Á¤Ç¤¹¤·¡¢´ÉÍý¤â½¤Àµ¤âÂçÊѤǤ¹¡£


¡¡¶¦Ä̤Υ¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Ê¬´ô¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£
Ʊ¤¸¥¯¥é¥¹¤ò¼èÆÀ¤·¡¢Æ±¤¸¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ì¤Ð¡¢¿Æ¥¯¥é¥¹¡¢¤¢¤ë¤¤¤Ï»Ò¥¯¥é¥¹Æâ¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤µ¤ì¤Æ¤¤¤ë½èÍý¤¬¿¶¤ëÉñ¤¤¤òÊѤ¨¤Æ¡¢¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¤¿¤á¤Ç¤¹¡£

¡¡¡¡¡¡  // ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¿Æ¥¯¥é¥¹¤ò¼èÆÀ¤Ç¤­¤ë¤«È½Äê
        if (other.TryGetComponent(out ItemBase item)) {

¡¡¡¡¡¡¡¡¡¡¡¡// ¼èÆÀ¤·¤¿¿Æ¥¯¥é¥¹¤Ë¤¢¤ëÃê¾Ý(²¾ÁÛ)¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡¡=>¡¡»Ò¥¯¥é¥¹¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î¿¶¤ëÉñ¤¤¤Ë¤Ê¤ë
            item.TriggerItem(this);
	}

¡¡Èó¾ï¤Ë´Ê·é¤Ë½èÍý¤òµ­½Ò¤Ç¤­¤ë¾å¤Ë¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¼ïÎबÁý¤¨¤Æ¥¯¥é¥¹¤¬Áý¤¨¤Æ¤â¡¢¤½¤Î¥¯¥é¥¹¤¬ ItemBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ì¤Ð¤³¤³¤Ë½èÍý¤ò½ñ¤­Â­¤¹É¬Íפ⤢¤ê¤Þ¤»¤ó¡£
¤³¤ì¤¬¥¯¥é¥¹¤Î·Ñ¾µ¤È¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤Ë¤è¤Ã¤Æ¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤³¤È¤Ç¼ÂÁõ¤Ç¤­¤ëÂ礭¤ÊÍøÅÀ¤Ç¤¹¡£

¡¡¤³¤Îµ­½Ò¤Ë¤è¤ê¡¢º£¸å¥¢¥¤¥Æ¥à¤Î¼ïÎबÁý¤¨¤Æ¤â¡¢CharaCotroller ¦¤Î¥¢¥¤¥Æ¥à¤Î¼èÆÀ½èÍý¤Ë¤ÏÄɲäε­½Ò¤ÏÉÔÍפˤʤê¤Þ¤·¤¿¡£

¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤òÍý²ò¤¹¤ë¤Î¤ÏÆñ¤·¤¤¤Ç¤¹¤¬¡¢¤½¤ì¤À¤±¤Îµ¡Ç½¤ä²¸·Ã¤¬¼õ¤±¤é¤ì¤ë¤³¤È¤ò¹Í¤¨¤ë¤È¡¢À§Èó½¬ÆÀ¤·¤Æ¤¤¤¿¤À¤­¤¿¤¤µ»½Ñ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢¤³¤¦¤¤¤Ã¤¿½èÍý¤òÍý²ò¤·¤Æ¤¤¤¯¤³¤È¤Ç¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤â´·¤ì¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢Æ±¤¸¥¯¥é¥¹¤Î·Ñ¾µ¤Ë¤è¤ëµ¡Ç½¤òŨ¦¤Ë¤âÍÑ°Õ¤¹¤ë¤³¤È¤Ç¡¢°Û¤Ê¤ëŨ¤«¤é¤Î¹¶·âȽÄê¤ò¡¢ÊÌ¡¹¤Î¹¶·â½èÍý¤È¤·¤Æ¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤³¤È¤Ç¼ÂÁõ¤¬²Äǽ¤Ç¤¹¡£

¡¡·«¤êÊÖ¤·½èÍý¤ò¹Í¤¨¤Æµ­½Ò¤·¡¢¼«Ê¬¤Ç¤â¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤ò¼«ºî¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡¥×¥ì¥Õ¥¡¥Ö¤Ë¤Ê¤Ã¤Æ¤¤¤ë²óÉü¥¢¥¤¥Æ¥à¤ò£±¤Ä¥Ò¥¨¥é¥ë¥­¡¼¤Ë¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤ò²óÉü¥¢¥¤¥Æ¥à¤Ë¿¯Æþ¤µ¤»¤Æ¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë²óÉü¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤ò³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£

¡¡ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¢Å¨¤¬À¸À®¤¹¤ë²óÉü¥¢¥¤¥Æ¥à¤Î½èÍý¤â½¤Àµ¤ò¹Ô¤¤¤Þ¤¹¡£


£´¡¥¥¢¥¤¥Æ¥à¤ÎÀ¸À®ÊýË¡¤ò½¤Àµ¤¹¤ë


¡¡EnemyController ¥¹¥¯¥ê¥×¥È¤Ë¤¢¤ë¡¢¥¢¥¤¥Æ¥à¤ÎÀ¸À®½èÍý¤Ë¤Ä¤¤¤Æ½¤Àµ¤ò²Ã¤¨¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤Þ¤º¡¢¤¤¤Þ¤Þ¤Ç²óÉü¥¢¥¤¥Æ¥àÍÑ¥×¥ì¥Õ¥¡¥Ö¤òÅÐÏ¿¤·¤Æ¤¤¤¿Àë¸À¤Î·¿¤ò ItemBase ¤Î·¿¤ËÊѹ¹¤·¤Þ¤¹¡£
¿Æ¥¯¥é¥¹¤ò·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢ItemBase ¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤Ç¤¢¤ì¤Ð¡¢¤É¤Î¥¢¥¤¥Æ¥à¤Ç¤¢¤Ã¤Æ¤âÅÐÏ¿¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Î¤è¤¦¤Ë¡¢Item_RecoveryLife ·¿¤ÇÀë¸À¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤Î·¿¤ÈƱ¤¸¥¢¥¤¥Æ¥à¤·¤«ÅÐÏ¿¤Ç¤­¤Þ¤»¤ó¤Î¤Ç¡¢
¤³¤ÎÉôʬ¤Ç¤â¥¯¥é¥¹¤Î·Ñ¾µ¤Ë¤è¤Ã¤Æ¡¢³ÈÄ¥À­¤ÈÈÆÍÑÀ­¤Î¹â¤¤½èÍý¤¬¼ÂÁõ²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤³¤Ë ItemBase ¤ò¿Æ¥¯¥é¥¹¤È¤·¤Æ»ý¤Ä³Æ¥¢¥¤¥Æ¥à¤Î¥×¥ì¥Õ¥¡¥Ö¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤ÇÅÐÏ¿¤·¤Æ¤ª¤­¤Þ¤¹¡£
º£¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë²óÉü¥¢¥¤¥Æ¥à¤Î¥×¥ì¥Õ¥¡¥Ö¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡²óÉü¥¢¥¤¥Æ¥à¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤ë¥¹¥¯¥ê¥×¥È¼«ÂΤ¬ Item_RecoveryLife ¥¯¥é¥¹¤Ç¤¢¤Ã¤Æ¤â¡¢
Item_RecoveryLife ¥¯¥é¥¹¤Î¿Æ¥¯¥é¥¹¤¬ ItemBase ¥¯¥é¥¹¤Ê¤Î¤Ç¡¢ÌäÂê¤Ê¤¯¥¢¥µ¥¤¥ó¤Ç¤­¤Þ¤¹¡£

¡¡¤Þ¤¿¡¢¥¢¥¤¥Æ¥à¤òÀ¸À®¤¹¤ë½èÍý¤ÎÉôʬ¤â½¤Àµ¤·¤Þ¤¹¡£

¡¡
EnemyController.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£Àë¸À¥Õ¥£¡¼¥ë¥É¤È½¤Àµ¤·¤¿¥á¥½¥Ã¥É¤Î¤ß¤òµ­ºÜ¤·¤Æ¤¢¤ê¤Þ¤¹¡£


¡¡À¸À®¤¹¤ëºÝ¤Ë¤â ItemBase ¥¯¥é¥¹¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¿Æ¥¯¥é¥¹¤ËÂФ·¤ÆÀ¸À®¤ò¹Ô¤¦½èÍý¤Ë¤Ê¤ê¤Þ¤¹¤¬
¼ÂÀª¤ËÀ¸À®¤µ¤ì¤ë¤Î¤Ï¡¢ItemBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë ItemRecoveryLife ¥¢¥¤¥Æ¥à¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤è¤Ã¤Æ¡¢¥×¥ì¥Õ¥¡¥Ö¤È¤·¤Æ¥¢¥µ¥¤¥ó¤¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬²óÉü¥¢¥¤¥Æ¥à°Ê³°¤Î¥¢¥¤¥Æ¥à¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ç¤â¡¢
¤³¤ÎÀ¸À®½èÍý¤â³Æ¥¢¥¤¥Æ¥à¤´¤È¤Ëʬ¤±¤Æºî¤ëɬÍפϤʤ¯¡¢ItemBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ì¤Ð¡¢¤³¤Î½èÍý¤À¤±¤Ç¡¢¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤òÀ¸À®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


¡ã¿Æ¥¯¥é¥¹¤òÍøÍѤ·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¡ä


¡¡¤Þ¤º¥¢¥¤¥Æ¥àÀ¸À®»þ¤Î¼ê½ç¤¬¾¯¤·ÊѤï¤ê¤Þ¤·¤¿¡£°ÊÁ°¤Ï²óÉü¥¢¥¤¥Æ¥àÍѤΥץì¥Õ¥¡¥Ö¡ÊItem_RecoveryLife ¥¯¥é¥¹¡Ë¤ò»ØÄꤷ¤Æ¡¢¤½¤Î¤Þ¤Þ²óÉü¥¢¥¤¥Æ¥à¤òÀ¸À®¤·¤Æ¤¤¤Þ¤·¤¿¡£
¤Ç¤¹¤¬¤³¤Î½èÍý¤Ç¤¹¤È¡¢Â¾¤Î¥¢¥¤¥Æ¥à¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥¢¥¤¥Æ¥à¤´¤È¤ËÀ¸À®½èÍý¤òÊѤ¨¤Ê¤¯¤Æ¤Ï¤Ê¤é¤º¡¢Æ±¤¸¤è¤¦¤ÊÀ¸À®½èÍý¤Ç¤¢¤ë¤Î¤Ë¾éĹŪ¤Ê½èÍý¤òÁý¤ä¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¡¡¤½¤³¤Çº£²ó¤Ï ItemBase ¥¯¥é¥¹¤ò»ØÄꤷ¤Æ¡¢¥¢¥¤¥Æ¥à¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡£
À¸À®¤µ¤ì¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï ItemBase ¥¯¥é¥¹·¿¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¡¢¤¢¤ë¤¤¤Ï ItemBase ¥¯¥é¥¹¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤¿¥×¥ì¥Õ¥¡¥Ö¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢ItemBase ¤ò»ØÄꤷ¤ÆÀ¸À®¤ò¹Ô¤¦¤Î¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¤½¤Î ItemBase ¤ò·Ñ¾µ¤·¤Æ¤¤¤ë»Ò¥¯¥é¥¹¤¬À¸À®¤µ¤ì¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤Ê¤ë¤¿¤á
°Û¤Ê¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë½èÍý¤Ë¤â¤«¤«¤ï¤ï¤º¡¢Æ±¤¸½èÍý¤ò½ñ¤¯É¬Íפ¬¤Ê¤¤¤¦¤¨¡¢À¸À®¤µ¤ì¤ë¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤ËÊѤ¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤ÎÉôʬ¤Ë¤â¡¢¥×¥í¥°¥é¥à¤Î»ý¤Ä¿ÂÖÀ­¡¦¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤È¤¤¤¦³µÇ°¤¬³è¤­¤Æ¤¤¤Þ¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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