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

¡¡¥×¥ì¥¤¥ä¡¼¤È¥¨¥Í¥ß¡¼¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹¡£
£±¤Ä¤Î¥¯¥é¥¹¤òξ¼Ô¤ËÍøÍѤ·¤Æ´ÉÍý¤·¤Þ¤¹¡£



OwnerStatus ¥¹¥¯¥ê¥×¥È


¡¡¥Ð¥È¥ë»þ¤Ë¤ª¤±¤ë¥«¡¼¥É¤òÇÛÃÖ¤¹¤ë°ÌÃ֤Υª¡¼¥Ê¡¼¤ä¡¢¥­¥ã¥é¥¯¥¿¡¼¤Î½êÍ­¼Ô¤òÀßÄꤹ¤ëºÝ¤ËÍøÍѤ·¤Þ¤¹¡£

¡¡¤³¤³¤Ç¤Ï£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤ÆºîÀ®¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼¡¤Î Character ¥¯¥é¥¹Æâ¤Ëµ­½Ò¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤½¤Î¾ì¹ç¡¢Æþ¤ì»Ò·¿¤Ë¤Ï¤»¤º¡¢£±¤Ä¤ÎÆÈΩ¤·¤¿ enum ¤È¤·¤ÆºîÀ®¤·¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£


OwnerStatus.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£



Character ¥¹¥¯¥ê¥×¥È


¡¡System.Serializable °À­¤ò¥¯¥é¥¹¤ËÉÕÍ¿¤¹¤ë¤³¤È¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¥¯¥é¥¹ÆâÉô¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤Þ¤¿ÊÑ¿ô¤ò UniRx ¤Îµ¡Ç½¤Ç¤¢¤ë ReactiveProperty ¤òÍøÍѤ·¤ÆÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£


Character.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£



¡ãMonoBehaviour ¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹¡ä


¡¡MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤Ç¡¢ ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ëɳ¤Å¤«¤Ê¤¤¡¢¥Ç¡¼¥¿´ÉÍý¤Î¤ß¤Î¥¯¥é¥¹¤È¤·¤ÆÀ©ºî¤·¤Æ¤ª¤­¤Þ¤¹¡£

¡¡MonoBehaviour¤Î·Ñ¾µ¤¬¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤Î¥¯¥é¥¹¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤·¡¢Instantiate ¥á¥½¥Ã¥É¤ÇÀ¸À®½ÐÍè¤Þ¤»¤ó¡£
Âå¤ï¤ê¤Ë¡¢¤¤¤º¤ì¤Î¥¹¥¯¥ê¥×¥È¤«¤é¤Ç¤â¥¤¥ó¥¹¥¿¥ó¥¹(new)¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¾ì¹ç¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¥á¥½¥Ã¥É¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç½é´üÃͤÎÂåÆþ½èÍý¤â²Äǽ¤Ç¤¹¡£


¡ãUniRx ¤Î³èÍÑ­¢¡ä


¡¡²¼µ­¤Î½èÍý¤Ë¤ª¤¤¤Æ¡¢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 ¥¹¥¯¥ê¥×¥È


¡¡¥²¡¼¥àÆâ¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¥¯¥é¥¹¤Ç¤¹¡£
¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤äŨ¤Î¾ðÊó¡¢¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤Ê¤É¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤òºîÀ®¤·¡¢°ì¸µ´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡
¡¡¤³¤Î¥¯¥é¥¹¤Ï¿¤¯¤Î¥¯¥é¥¹¤«¤é»²¾È¤µ¤ì¤ë¤³¤È¤¬Â¿¤¯¤Ê¤ëÁ°Äó¤Ç¤¹¤Î¤Ç¡¢¥·¥ó¥°¥ë¥È¥ó¡¦¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤¿À߷פò¹Ô¤¤¤Þ¤¹¡£

¡¡Æä˥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤Î¾ì¹ç¡¢¥·¡¼¥óÁ«°Ü»þ¤Ë¤âÇË´þ¤µ¤ì¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤¹¤ë¤³¤È¤Ç
¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤âÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¥¢¥¯¥»¥¹¤Ç¤­¡¢¥·¡¼¥óÁ«°Ü¸å¤âÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥¯¥é¥¹¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£


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 ¥á¥½¥Ã¥É¤Ç¤ÏÍøÍѤǤ­¤Þ¤»¤ó¡£


GameData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢GameData ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦


¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤ª¤¤¤Æ Create Empty ¤ò¹Ô¤¤¡¢GameData ¤Ë̾Á°¤òÊѹ¹¤·¤Æ¡¢GameData ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£

¡¡³ÆÊÑ¿ô¤ËɬÍפʥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ä¥×¥ì¥Ï¥Ö¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£





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


¡¡¤É¤Î¤è¤¦¤Ë½èÍý¤¬Æ°¤¤¤Æ¡¢¤É¤Î¤è¤¦¤Ë¤Ê¤ì¤Ð¤¤¤¤¤Î¤«¡¢¥¤¥á¡¼¥¸¤òºî¤Ã¤Æ¤«¤é³Îǧ¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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