ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2024ǯ01·î03Æü(¿å) 17:04:30ÍúÎò
£±¤Ä¤Î¥¯¥é¥¹¤òξ¼Ô¤ËÍøÍѤ·¤Æ´ÉÍý¤·¤Þ¤¹¡£
¡¡¥Ð¥È¥ë»þ¤Ë¤ª¤±¤ë¥«¡¼¥É¤òÇÛÃÖ¤¹¤ë°ÌÃ֤Υª¡¼¥Ê¡¼¤ä¡¢¥¥ã¥é¥¯¥¿¡¼¤Î½êͼԤòÀßÄꤹ¤ëºÝ¤ËÍøÍѤ·¤Þ¤¹¡£
¡¡¤³¤³¤Ç¤Ï£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤ÆºîÀ®¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼¡¤Î Character ¥¯¥é¥¹Æâ¤Ëµ½Ò¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤½¤Î¾ì¹ç¡¢Æþ¤ì»Ò·¿¤Ë¤Ï¤»¤º¡¢£±¤Ä¤ÎÆÈΩ¤·¤¿ enum ¤È¤·¤ÆºîÀ®¤·¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£
OwnerStatus.cs
¡¡MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤Ç¡¢ ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ëɳ¤Å¤«¤Ê¤¤¡¢¥Ç¡¼¥¿´ÉÍý¤Î¤ß¤Î¥¯¥é¥¹¤È¤·¤ÆÀ©ºî¤·¤Æ¤ª¤¤Þ¤¹¡£
¡¡MonoBehaviour¤Î·Ñ¾µ¤¬¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤Î¥¯¥é¥¹¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤·¡¢Instantiate ¥á¥½¥Ã¥É¤ÇÀ¸À®½ÐÍè¤Þ¤»¤ó¡£
Âå¤ï¤ê¤Ë¡¢¤¤¤º¤ì¤Î¥¹¥¯¥ê¥×¥È¤«¤é¤Ç¤â¥¤¥ó¥¹¥¿¥ó¥¹(new)¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¾ì¹ç¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¥á¥½¥Ã¥É¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç½é´üÃͤÎÂåÆþ½èÍý¤â²Äǽ¤Ç¤¹¡£
¡¡²¼µ¤Î½èÍý¤Ë¤ª¤¤¤Æ¡¢UniRx ¤Î ReactiveProperty ¤¬ÍøÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£
public ReactiveProperty<int> Hp = new(); public ReactiveProperty<int> Shield = new(); public ReactiveProperty<int> AttackPower = new(); /// <summary> /// Hp ¹¹¿· /// </summary> /// <param name="amount"></param> public virtual void UpdateHp(int amount) { hp = Mathf.Clamp(hp += amount, 0, maxHp); Debug.Log($" {status} : {GetHp}"); Hp.Value = Mathf.Clamp(Hp.Value += amount, 0, maxHp); Debug.Log($" {status} : {Hp.Value}"); } /// <summary> /// ¥·¡¼¥ë¥ÉÃ͹¹¿· /// </summary> /// <param name="amount"></param> public void UpdateShield(int amount) { Shield.Value += amount; Debug.Log($" {status} : {Shield.Value}"); }
¡¡ReactiveProperty ¤Ï¥×¥í¥Ñ¥Æ¥£¤Î°·¤¤¤È¤Ê¤ê¤Þ¤¹¤¬¡¢¥·¥ê¥¢¥é¥¤¥º¤Ç¤¤Þ¤¹¤Î¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼É½¼¨²Äǽ¤Ç¤¹¡£
Value ¤òÍøÍѤ·¤ÆÃͤ˥¢¥¯¥»¥¹¤·¤Þ¤¹¡£
¡¡Ãͤ¬¹¹¿·¤µ¤ì¤ë¤È¡¢Subscribe ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ÃͤËɳ¤Å¤¤¤Æ¾¤Î½èÍý¤òϢư¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¡Ê¤³¤Î»þÅÀ¤Ç¤Ï¤Þ¤À Subscribe ¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡Ë
¡¡¥²¡¼¥àÆâ¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¥¯¥é¥¹¤Ç¤¹¡£
¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤äŨ¤Î¾ðÊó¡¢¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤Ê¤É¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤òºîÀ®¤·¡¢°ì¸µ´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡
¡¡¤³¤Î¥¯¥é¥¹¤Ï¿¤¯¤Î¥¯¥é¥¹¤«¤é»²¾È¤µ¤ì¤ë¤³¤È¤¬Â¿¤¯¤Ê¤ëÁ°Äó¤Ç¤¹¤Î¤Ç¡¢¥·¥ó¥°¥ë¥È¥ó¡¦¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤¿À߷פò¹Ô¤¤¤Þ¤¹¡£
¡¡Æä˥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤Î¾ì¹ç¡¢¥·¡¼¥óÁ«°Ü»þ¤Ë¤âÇË´þ¤µ¤ì¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤¹¤ë¤³¤È¤Ç
¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤âÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¥¢¥¯¥»¥¹¤Ç¤¡¢¥·¡¼¥óÁ«°Ü¸å¤âÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¥¯¥é¥¹¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£
GameData.cs
¡¡Àè¤Û¤ÉºîÀ®¤·¤¿ Character ¥¯¥é¥¹¤òÍøÍѤ·¡¢¥×¥ì¥¤¥ä¡¼¤ÈŨ¤ÎξÊý¤òƱ̾¤Î¥¯¥é¥¹¤Ç´ÉÍý¤·¤Þ¤¹¡£
¤½¤ì¤¾¤ì¤¬°Û¤Ê¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤ò»ý¤Ä¤¿¤á¡¢Æ±¤¸¥¯¥é¥¹¤Ç¤¢¤Ã¤Æ¤â¡¢°Û¤Ê¤ë Hp ¤ò´ÉÍý¤Ç¤¤Þ¤¹¡£
¡¡Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤¬£±¹Ô¤À¤±¤Î¾ì¹ç¡¢¥é¥à¥À¼°¤òÍøÍѤ¹¤ë¤³¤È¤Ç¾ÊάµË¡¤Ë¤è¤êµ½Ò¤Ç¤¤Þ¤¹¡£
¡ãÄ̾ï¤ÎÌá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¡ä
/// <summary> /// ¥×¥ì¥¤¥ä¡¼¤Î¼èÆÀ /// </summary> /// <returns></returns> public Character GetPlayer() { return player; } /// <summary> /// ÂÐÀïÁê¼ê(¥¨¥Í¥ß¡¼)¤Î¼èÆÀ /// </summary> /// <returns></returns> public Character GetOpponent() { return opponent; }
¡¡¡¡¡¡¢
¡ã¥é¥à¥À¼°¤òÍøÍѤ·¤¿¡¢Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤Î¾ÊάµË¡¡ä
public Character GetPlayer() => player; public Character GetOpponent() => opponent;
¡¡¥é¥à¥À¼°¤Î½ñ¼°¤Ë§¤ê¡¢°ú¿ô => ½èÍý¤Î½ñ¼°¤Çµ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡Ìá¤êÃͤΤʤ¤ void ¥á¥½¥Ã¥É¤Ç¤ÏÍøÍѤǤ¤Þ¤»¤ó¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯