¡¡Ãê¾Ý²½¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Îɬ»¦µ»¤Î½èÍý¤Îºî¤êÊý¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ¤Î¤è¤¦¤Ê½èÍý¤¬°ìÈÌŪ¤Ç¤¹¡£
£±¡¥enum ¤Çɬ»¦µ»¤Î¼ïÎà¤ò»öÁ°¤ËÎóµó»Ò¤È¤·¤ÆÅÐÏ¿¤·¤Æ¤ª¤¯(ʸ»úÎó¤Ç»ØÄꤹ¤ë¤è¤ê¤â°ÂÁ´)
£²¡¥É¬»¦µ»¤ò»È¤¦¥¿¥¤¥ß¥ó¥°¤Ç¡¢switch ʸ(if ʸ)¤ÈÎóµó»Ò¤ò»È¤Ã¤Æ¡¢¤É¤Îɬ»¦µ»¤Ç¤¢¤ë¤«¤òÆÃÄꤹ¤ë
£³¡¥ÆÃÄꤷ¤¿É¬»¦µ»ÍѤΥ᥽¥Ã¥É¤òÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡£
¡¡¾åµ¤Î½èÍý¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤È¤·¤Æ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£
using UnityEngine;
/// <summary>
/// ɬ»¦µ»¤Î¼ïÎà
/// </summary>
public enum SpecialSkillType
{
Fireball,
LightningStrike,
Tornado,
// ¾¤Îɬ»¦µ»¤òÄɲäÇÎóµó»Ò¤È¤·¤ÆÄêµÁ¤¹¤ë
}
public class Player : MonoBehaviour
{
// ¥×¥ì¥¤¥ä¡¼¤Î¥¹¥Æ¡¼¥¿¥¹¤ä¤½¤Î¾¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ê¤É...
// ɬ»¦µ»¤ò»È¤¦¥á¥½¥Ã¥É
public void UseSpecialSkill(SpecialSkillType skillType)
{
switch (skillType)
{
case SpecialSkillType.Fireball:
PerformFireball();
break;
case SpecialSkillType.LightningStrike:
PerformLightningStrike();
break;
case SpecialSkillType.Tornado:
PerformTornado();
break;
// ¾¤Îɬ»¦µ»¤ËÂбþ¤¹¤ë½èÍý¤òÄɲ乤ë
default:
Debug.LogError("Unsupported Special Skill Type: " + SkillType);
break;
}
}
// ³Æɬ»¦µ»ÍѤΥ᥽¥Ã¥É¤òÄêµÁ
private void PerformFireball()
{
// Fireball¤Î½èÍý
Debug.Log("Fireball!");
}
private void PerformLightningStrike()
{
// Lightning Strike¤Î½èÍý
Debug.Log("Lightning Strike!");
}
private void PerformTornado()
{
// Tornado¤Î½èÍý
Debug.Log("Tornado!");
}
}
¡¡¤³¤Î½èÍý¤ÏÌäÂê¤Ê¤¯Æ°ºî¤·¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬¡¢É¬»¦µ»¤Î¿ô¤¬Áý¸º¤¹¤ë¤¿¤Ó¡¢¾ï¤Ë¥½¡¼¥¹¥³¡¼¥É¤Î½¤Àµ¤¬É¬Íפˤʤê¤Þ¤¹¡£
ɬ»¦µ»¤¬Áý¸º¤¹¤ë¤¿¤Ó¤Ë¡¢
ʬ´ô½èÍý¤Ç¤¢¤ë switch ʸ¤äÎóµó»Ò¤Ø¤Î½¤Àµ¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡¤¿¤¯¤µ¤ó¤Îɬ»¦µ»¤¬½Ð¤Æ¤¯¤ë¥²¡¼¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¤³¤Î¤è¤¦¤ÊÀ߷פǤÏɬ»¦µ»¤ÎÄɲä佤Àµ¤¬¤ä¤ê¤Ë¤¯¤¤¤Ç¤¹¤Í¡£
¤Þ¤¿½¤Àµ¤¬Â¿¤¤¤È¤¤¤¦¤³¤È¤Ï¡¢½ñ¤´Ö°ã¤¨¤¬Áý¤¨¤ëÍ×°ø¤È¤Ê¤ê¡¢³Îǧºî¶È¤âÁý¤¨¤Æ¤·¤Þ¤¦¤³¤È¤«¤é¡¢Á´ÂÎŪ¤Êºî¶È¸úΨ¤â°¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¤½¤³¤Çº£²ó¼ÂÁõ¤·¤Æ¤¤¤ë½èÍý¤ÎÃê¾Ý²½¤Î¹Í¤¨Êý¤ÈÀß·×ÊýË¡¤¬²ò·èºö¤Î£±¤Ä¤È¤Ê¤ê¤Þ¤¹¡£
¡¡Ãê¾Ý²½¤ÎºÇ¤âÂ礤ʰ㤤¤Ï¡¢
ʬ´ô½èÍý¤¬°ìÀڤʤ¯¤Ê¤ëÅÀ¤Ç¤¹¡£
¡¡¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤¿¿Æ¥¯¥é¥¹¤Ç¤¢¤ë SpecialSkillBase ¥¯¥é¥¹¤òÍøÍѤ·¡¢
»Ò¥¯¥é¥¹¤ÎÆÃÄê¤Ï¹Ô¤ï¤º¡¢
¿Æ¥¯¥é¥¹¤Î¤ß¤òȽÃǤ·¡¢½èÍý¤ò¿Ê¤á¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ê·Á¼°¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï
»Ò¥¯¥é¥¹¤¬¤É¤Î¤è¤¦¤Ê¥¯¥é¥¹¤Ç¤¢¤ë¤«¤ÏÃΤé¤Ê¤¤¾õÂ֤ǡ¢»Ò¥¯¥é¥¹¤Î½èÍý¤òÆ°¤«¤·¤Þ¤¹¡£
¡¡¥Ý¥¤¥ó¥È¤Ï¤³¤ÎÉôʬ¤Ç¤¹¡£
¿Æ¥¯¥é¥¹¤Î¤ß¤òȽÃǤδð½à¤È¤·¤Ä¤Ä¡¢¼ÂºÝ¤ËÆ°¤¤¤Æ¤ë¤Î¤Ï»Ò¥¯¥é¥¹¤Ç¤¢¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¡¡
¡¡¤½¤·¤Æ¿Æ¥¯¥é¥¹¤ËÍÑ°Õ¤·¤Æ¤¢¤ë²¾Áۥ᥽¥Ã¥É¤Ï
»Ò¥¯¥é¥¹¤Ë¤è¤Ã¤Æ¾å½ñ¤¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¼ÂºÝ¤Ë¤Ï¡¢³Æ»Ò¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤½¤³¤Ë¤Ï¡¢¤½¤ì¤¾¤ì¤Îɬ»¦µ»¤Î½èÍý¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
²¾Áۥ᥽¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢Æ±¤¸¿Æ¥¯¥é¥¹¤ò»ý¤Ä»Ò¥¯¥é¥¹¤Ç¤Ï½èÍý¤¬ÊѤï¤ë»ÅÁȤߤǤ¹¡£
¡¡¤³¤Î¤è¤¦¤Êµ¡Ç½¤ò
¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤È¤¤¤¤¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë
¿ÂÖÀ¤Î³µÇ°¤ËÅö¤¿¤ê¤Þ¤¹¡£
¡¦SpecialSkillHandler ¡¡¡¡¢ª¡¡Î㤨¤ë¤Ê¤é¡¢¥²¡¼¥àµ¡ËÜÂΤÎÌò³ä¡£º£²ó¤Îɬ»¦µ»(¥²¡¼¥à¥½¥Õ¥È)¤òÅÐÏ¿¤·¡¢ÅŸ»¤òÆþ¤ì¡¢ÅŸ»¤òÍî¤È¤¹¡£É¬»¦µ»¤ÎÃæ¿È(¥½¥Õ¥È¤ÎÃæ¿È)¤Þ¤Ç¤Ï´ÉÍý¤·¤Ê¤¤¡£
¡¦UIManager¡¡ ¡¡¢ª¡¡É¬»¦µ»ÀìÍѤΠUI À©¸æ¥¯¥é¥¹¡¡
¡¦SpecialSkillManager ¡¡¢ª¡¡¾åµ¤Î£²¤Ä¤ÎÀ©¸æ¤ò¹Ô¤¦¡¢É¬»¦µ»¤Î´ÉÍý¼Ô
¡¡¾åµ¤Î¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¤Ï¡¢Handler ¥¯¥é¥¹¤¬Ãê¾Ý²½¤Ë¤ª¤±¤ë½ÅÍפÊÌò³ä¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£