¡¡ÀÅŪ¤ÊÊÑ¿ô¤Ï¡¢ÀÅŪ¥¯¥é¥¹¡¢¤¢¤ë¤¤¤ÏÉáÃʻȤäƤ¤¤ëÈóÀÅŪ¥¯¥é¥¹¤Î¤É¤Á¤é¤Ç¤âºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡²¼µ¤Ï¡¢ÈóÀÅŪ¥¯¥é¥¹¤ËÀë¸À¤·¤¿¾ì¹ç¤ÎÎã¤Ç¤¹¡£
public class DynamicClass {¡¡¡¡//¡¡ÈóÀÅŪ¥¯¥é¥¹
public static int staticValue = 20; // ÀÅŪÊÑ¿ô
}
¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢ÀÅŪ¤Ç¤Ï¤Ê¤¤¥¯¥é¥¹¤Ï new ¥¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤Ç¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤·¤Æ»È¤¦¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Unity ¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢À߷׿ÞÍÑ¤Ë C# ¥¹¥¯¥ê¥×¥È¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢¤½¤ÎÃæ¤Ç¥¯¥é¥¹¤ò½ñ¤¤¤Æ¡¢¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤ÇÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤Î¤È¤¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤¹¤ë¿ô¤ËÀ©¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤¤¤¯¤Ä¤Ç¤â new ¤Ç¤¤Þ¤¹¤·¡¢Unity ¤Ç¤¢¤ì¤Ð¡¢¥¹¥¯¥ê¥×¥È¤Î¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤Î°Û¤Ê¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤â¥¢¥¿¥Ã¥Á¤Ç¤¤Þ¤¹¡£
¡¡ÀÅŪ¤Ç¤Ï¤Ê¤¤¥¯¥é¥¹¤Ë½ñ¤¤¤¿Ä̾ï¤ÎÊÑ¿ô(ÀÅŪ¤Ç¤Ï¤Ê¤¤ÊÑ¿ô)¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¡¢¤½¤ì¤¾¤ì¤¬Ê̤ξðÊó¤È¤·¤Æ´ÉÍý¤µ¤ì¤Þ¤¹¡£
Î㤨¤Ð¡¢
public class Enemy {¡¡¡¡//¡¡ÈóÀÅŪ¥¯¥é¥¹
public int life = 20; // ÈóÀÅŪÊÑ¿ô
}
¡¡¤³¤Î¤è¤¦¤Ê¥¯¥é¥¹¤òºî¤Ã¤Æ¡¢£´¤Ä¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¾ì¹ç¡¢
¤½¤ì¤¾¤ì¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë Enemy ¤Ï°Û¤Ê¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ê¤ë¤¿¤á¡¢
life ÊÑ¿ô¤â¡¢¤½¤ì¤¾¤ì¤¬°Û¤Ê¤ëÃͤò´ÉÍý¤·¤Þ¤¹¡£Enemy 1 ¤Î life ¤Ï20¤Ç¤â¡¢Enemy 2 ¤Î life ¤Ï10 ¤Î¤è¤¦¤Ëɽ¸½¤¬½ÐÍè¤Þ¤¹¡£
¡¡¥×¥í¥°¥é¥à¤Î»ÅÍͤΣ±¤Ä¤È¤·¤Æ¡¢¥¯¥é¥¹¤Ï¤¿¤¯¤µ¤óºî¤é¤ì¤ëÁ°Äó¤Ç½èÍý¤¬Æ°¤¯¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥¯¥é¥¹Æâ¤Ë¤¢¤ëÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Ë¤Ï¡¢¤½¤Î¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¥¢¥¯¥»¥¹¤ò¤·¤Ê¤¤¤È»È¤¨¤Þ¤»¤ó¤Í¡£
¤Ä¤Þ¤ê¡¢Æ±Ì¾¤Î¥¯¥é¥¹¤¬¤¿¤¯¤µ¤ó¸ºß¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¡¢Unity ¤Ç¤¢¤ì¤Ð¡¢
¡Ö¤É¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È¡×¤È¤¤¤¦É÷¤ËÆÃÄê¤ò¤·¤Æ¤¢¤²¤Ê¤¤¤È¡¢
¥×¥í¥°¥é¥à¤ÏÌ¿Îá¤ò½Ð¤¹¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
¡¡¤½¤Î¤¿¤á¡¢³Æ¥¯¥é¥¹Æâ¤ÎÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢²¼µ¤Î¤è¤¦¤Ë¥¯¥é¥¹¤òÆÃÄꤹ¤ëºî¶È¤¬É¬Íפˤʤê¤Þ¤¹¡£
Enemy enemy = GetComponent<Enemy>();
enemy.life = 5;
¡¡¤¢¤ë¤¤¤Ï¡¢SerializeField°À ¤Ê¤É¤ò»È¤Ã¤Æ¡¢»öÁ°¤Ë¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é¡¢¤É¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤«¤ò»ØÄꤷ¤Æ¤ª¤¤Þ¤¹¡£
[SerializeField] Enemy enemy;
enemy.life = 5;
¡¡¤³¤Î¤è¤¦¤Ë¡¢ÈóÀÅŪ¥¯¥é¥¹(Ä̾ï¤Î¥¯¥é¥¹)¤Ï¡¢Æ±Ì¾¤Î¥¯¥é¥¹¤¬¤¿¤¯¤µ¤ó¸ºß¤¹¤ëÁ°Äó¤Ç¥×¥í¥°¥é¥à¤¬Æ°¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢
¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¡¢¡Ö¤É¤Î Enemy ¥¯¥é¥¹¤Ç¤¢¤ë¤«¡×¤Þ¤ÇÆÃÄꤷ¤Æ¤¢¤²¤ë¤³¤È¤Ç¡¢Ê£¿ô¤¢¤ëƱ̾¤Î¥¯¥é¥¹¤«¤é£±¤Ä¤òÁªÂò¤·¤Æ¥¢¥¯¥»¥¹¤¬½ÐÍè¤Þ¤¹¡£
¡¡º£²ó¤ÎÀÅŪÊÑ¿ô¤Ï¡¢°Û¤Ê¤ë¥¤¥ó¥¹¥¿¥ó¥¹´Ö¤Ç¤¢¤Ã¤Æ¤â¡¢¶¦Ä̤Σ±¤Ä¤Î¾ðÊó¤È¤·¤Æ°·¤ï¤ì¤ë¤È¤¤¤¦ÆÃħ¤ò»ý¤Á¤Þ¤¹¡£
¡¡ÀèÄø¤Î Enemy ¥¯¥é¥¹¤Îlife ÊÑ¿ô¤òÀÅŪ¤ÊÊÑ¿ô¤Ë¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
public class Enemy {¡¡¡¡//¡¡ÈóÀÅŪ¥¯¥é¥¹
public static int life = 20; // ¢«¡¡ÀÅŪÊÑ¿ô¤ËÊѹ¹
}
¡¡¤³¤Î¥¯¥é¥¹¤òƱ¤¸¤è¤¦¤Ë£´¤Ä¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤¿¤È¤¡¢
¤½¤ì¤¾¤ì¤¬°Û¤Ê¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤Î Enemy ¥¯¥é¥¹¤È¤·¤ÆÀ¸À®¤µ¤ì¤Þ¤¹¤¬¡¢static ¤Ç¤¢¤ë life ÊÑ¿ô¤À¤±¤Ï¡¢¤¹¤Ù¤Æ¶¦Ä̲½¤µ¤ì¤Æ¡¢
£±¤Ä¤Î¾ðÊó¤È¤·¤Æ´ÉÍý¤µ¤ì¤ë¤è¤¦¤ËÊѤï¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Enemy 1 ¤Î life ¤¬ 15 ¤Ê¤é¡¢Â¾¤Î£³¤Ä¤Î Enemy ¤Î life ¤â 15 ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¡¡¤³¤ì¤Ï¥×¥í¥°¥é¥àŪ¤ÊÀâÌÀ¤ËÃÖ¤´¹¤¨¤ë¤È¡¢ÀÅŪÊÑ¿ô¤È¤Ï¡¢
¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë°Í¸¤·¤Ê¤¤(¸ÄÊ̤ξðÊó¤Ë¤Ê¤é¤Ê¤¤)ÊÑ¿ô¤Ç¤¢¤ê¡¢
¥¯¥é¥¹Á´ÂÎ(º£²ó¤Ê¤é Enemy ¥¯¥é¥¹Á´ÂÎ)¤Ç¶¦Í¤µ¤ì¤¿£±¤Ä¤Î¾ðÊó¤Ë¤Ê¤ê¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤»¤º¤Ë¥¢¥¯¥»¥¹¤Ç¤¤ëÊÑ¿ô¤Ç¤¹¡£
¡¡¤è¤Ã¤Æ¡¢¥¯¥é¥¹¼«ÂΤÏÊ£¿ô¤¢¤Ã¤Æ¤â¡¢¤½¤ÎÃæ¤Ë¤¢¤ëÊÑ¿ô¤Ï£±¤Ä¤Î¸Ç;ðÊó¤È¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¡Ö¤É¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¡×¤È¤¤¤¦É÷¤ËÆÃÄꤷ¤Ê¤¯¤Æ¤â»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¡Ö¥¯¥é¥¹Ì¾.ÀÅŪÊÑ¿ô̾¡×¤È½ñ¤±¤Ð¡¢GetComponent ¤ä SerializeField ¤Ê¤É¤Ç¥¯¥é¥¹¤òÆÃÄꤷ¤Ê¤¯¤Æ¤â»È¤¨¤Þ¤¹¡£
Enemy.life = 10;
¡¡¤³¤Î¤è¤¦¤Ë¡¢static ¤ÎÊÑ¿ô¤Ï¡¢
°·¤ï¤ìÊý(¶¦ÄÌ´ÉÍý¤µ¤ì¤ë)¤È¡¢°·¤¤Êý(Ì¿Îá¤Î½ñ¤Êý)¤¬¡¢Ä̾ï¤ÎÊÑ¿ô¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢ÀÅŪÊÑ¿ô¤Ï
public ¤Ç¤¢¤Ã¤Æ¤â¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤È¤¤¤¦ÆÃħ¤â»ý¤Á¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥°¤¬¤·¤Ë¤¯¤¤¤¿¤á¡¢Debug.Log ¥á¥½¥Ã¥É¤òÊ»ÍѤ¹¤ë¤³¤È¤Ç¡¢¸½ºß¤ÎÃͤò³Îǧ¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡²¼µ¤Î¤è¤¦¤Ê¥Æ¥¹¥È¥¯¥é¥¹¤ò£²¤ÄºîÀ®¤·¤Æ¤¤¤¿¤À¤¡¢Ä̾ï¤ÎÊÑ¿ô¤È¡¢ÀÅŪ¤ÊÊÑ¿ô¤Î°ã¤¤¤ò³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
Enemy.cs(Ê£¿ô¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë)
public class Enemy : MonoBehaviour {¡¡¡¡//¡¡ÈóÀÅŪ¥¯¥é¥¹
public static int life = 10; // ¢«¡¡ÀÅŪÊÑ¿ô
void Update() {
if(life <= 0) {
Destroy(gameObject);
}
}
}
StaticValueTest.cs (Enemy °Ê³°¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á(Create Empty¤·¤¿¤â¤Î¤Ç¤âÂç¾æÉפǤ¹))
public class StaticValueTest : MonoBehaviour{
[SerializeField] private int testValue;
void Start () {
Enemy.life = testValue;
Debug.Log("ÀÅŪÊÑ¿ô¤ÎÃÍ Enemy ¤Î life :" + Enemy.life);
}
}
¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç¡¢testValue ¤ÎÃͤòÊѤ¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
Ê£¿ô¤Î Enemy ¤ÎÃͤ¬¶¦Ä̤ÇÊѲ½¤·¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢testValue ¤ò0 ¤Ë¤·¤Æ¤ß¤ë¤È¡¢¤¹¤Ù¤Æ¤Î Enemy ¤Î¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ç˲õ¤µ¤ì¤Þ¤¹¤Î¤Ç
ÀÅŪÊÑ¿ô¤¬¶¦Ä̤ǴÉÍý¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¥²¡¼¥à²èÌÌÆâ¤Ç¤âʬ¤«¤ê¤Þ¤¹¡£
¡¡¤³¤ì¤Ï¥²¡¼¥àÀ©ºî¤Ë¤ª¤¤¤Æ¤Ï¥Ç¥á¥ê¥Ã¥È¤Ë¤Ê¤ë¥±¡¼¥¹¤¬Â¿¤¤¤¿¤á¡¢¤³¤¦¤¤¤Ã¤¿¡¢Å¨¤´¤È¤ËƱ̾¤ÎÊ̤ÎÃͤò´ÉÍý¤¹¤ëºÝ¤Ë¤ÏŬ¤·¤Æ¤¤¤Þ¤»¤ó¡£
Âå¤ï¤ê¤Ë¡¢¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤òºî¤ëºÝ¤Ë¤Ï¡¢ÊØÍø¤Êµ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹¡£