Exemple #1
0
 // Update is called once per frame
 void Update()
 {
     partyMember = partySystem.GetPartyMember();     // パーティーメンバーを取得する
     if (partyMember != null)
     {
         ShowMember();
     }
     else
     {
         ShowEmptyMember();
     }
 }
Exemple #2
0
 public void AddExp(int exp)
 {
     // パーティーメンバーを格納する変数
     GameObject[] partyMembers = partySystem.GetPartyMember();
     // パーティーメンバーが2人以上のとき
     if (partyMembers != null && partyMembers.Length > 1)
     {
         // expを変更する(パーティーメンバーの数だけ経験値を少し減らす
         exp = (int)((float)exp * (1f - (float)partyMembers.Length / 10f));
         // パーティーメンバー分繰り返す
         foreach (GameObject partyMember in partyMembers)
         {
             // RPCを送信し、経験値を加算させる
             photonView.RPC("AddExpRpc", partyMember.GetPhotonView().owner, exp);
         }
     }
     // パーティーがいなければ
     else
     {
         // EXPをそのまま加算する
         AddExpRpc(exp);
     }
 }
Exemple #3
0
    /// <summary>
    /// パーティーメンバーのステータスを更新する
    /// </summary>
    void UpdatePartyStatus()
    {
        // パーティーメンバーのリストを取得する
        GameObject[] partyMember = partySystem.GetPartyMember();
        // 自分が発見されたら1を設定する
        int serachMeInParty = 0;

        // パーティーメンバーがいる場合処理を行う
        if (partyMember != null && partyMember.Length != 0)
        {
            // パーティーメンバーの数だけ繰り返す
            for (int i = 0; i < partyMember.Length; i++)
            {
                // 自分でなければ処理を行う
                if (partyMember[i].GetPhotonView().ownerId != PhotonNetwork.player.ID)
                {
                    // ノンアクティブだったら
                    if (!partyStatusWindow[i - serachMeInParty].gameObject.activeInHierarchy)
                    {
                        partyStatusWindow[i - serachMeInParty].gameObject.SetActive(true);
                    }
                    // プレイヤーキャラを設定する
                    partyPlayerChar[i - serachMeInParty] = partyMember[i].GetComponent <PlayerChar>();
                    // パーティーウィンドウのシステムにプレイヤーキャラを設定する
                    if (partyStatusWindow[i - serachMeInParty].playerChar != partyPlayerChar[i - serachMeInParty])
                    {
                        partyStatusWindow[i - serachMeInParty].SetPlayerChar(partyPlayerChar[i - serachMeInParty]);
                    }
                }
                // 自分が発見されたら配列の添え字をずらすためにフラグを立てる
                else
                {
                    serachMeInParty = 1;
                }
            }
            // パーティーメンバーがいない分だけ繰り返す
            for (int i = partyMember.Length - 1; i < partyStatusWindow.Length; i++)
            {
                // アクティブなら
                if (partyStatusWindow[i].gameObject.activeInHierarchy)
                {
                    // 非アクティブにする
                    partyStatusWindow[i].gameObject.SetActive(false);
                }
            }
        }
        // パーティーメンバーがいない場合
        else
        {
            // パーティーステータスウインドウの数だけ繰り返す
            for (int i = 0; i < partyStatusWindow.Length; i++)
            {
                // パーティーステータスウインドウがアクティブなら
                if (partyStatusWindow[i].gameObject.activeInHierarchy)
                {
                    // ノンアクティブにする
                    partyStatusWindow[i].gameObject.SetActive(false);
                }
                // 配列の要素をクリアしておく
                partyPlayerChar[i] = null;
            }
        }
    }
Exemple #4
0
    // Update is called once per frame
    void Update()
    {
        // クリックされたら
        if (Input.GetMouseButtonDown(0))
        {
            for (int i = 0; i < System.Enum.GetValues(typeof(TypeOfChat)).Length; i++)
            {
                // ボタンの上にマウスカーソルがあるかどうか
                if (buttons[i].OverlapPoint(Input.mousePosition))
                {
                    switch (i)
                    {
                    // 全体チャットに切り替える処理
                    case (int)TypeOfChat.ALL:
                        // 全体チャットをオンにする
                        allRoomChat.gameObject.SetActive(true);
                        // 名前入力テキストをオフにする
                        nameInput.gameObject.SetActive(false);
                        // 他のチャットを非アクティブにする
                        partyChatText.gameObject.SetActive(false);
                        playerToPlayerChatText.gameObject.SetActive(false);
                        logWindowText.gameObject.SetActive(false);
                        // ボタンに全体送信のメソッドを登録
                        sendButton.onClick.RemoveAllListeners();
                        sendButton.onClick.AddListener(SendChatInputForAll);
                        // 切り替えボタンの色を変更する
                        setButtonsColor((int)TypeOfChat.ALL);
                        nowChatNumber = TypeOfChat.ALL;      // 現在チャット番号を切り替える
                        break;

                    // パーティーチャットに切り替える処理
                    case (int)TypeOfChat.PARTY:
                        // パーティーメンバーがいなければ
                        if (partySystem.GetPartyMember() == null)
                        {
                            // 現在のチャットが全体チャットなら
                            if (nowChatNumber == 0)
                            {
                                // 全体チャットにPTに加入してない旨を記述する
                                allRoomChat.text += CreateChatText("<color=yellow>パーティーに所属していません。</color>", allRoomChat.text);
                                break;
                            }
                            // 現在のチャットが個別チャットなら
                            else
                            {
                                // 個別チャットにPTに加入してない旨を記述する
                                playerToPlayerChatText.text += CreateChatText("<color=yellow>パーティーに所属していません。</color>", playerToPlayerChatText.text);
                                break;
                            }
                        }
                        // パーティーメンバーが存在する場合
                        // パーティーチャットをオンにする
                        partyChatText.gameObject.SetActive(true);
                        // 名前入力テキストをオフにする
                        nameInput.gameObject.SetActive(false);
                        // 他のチャットを非アクティブにする
                        allRoomChat.gameObject.SetActive(false);
                        playerToPlayerChatText.gameObject.SetActive(false);
                        logWindowText.gameObject.SetActive(false);
                        // ボタンにパーティー送信のメソッドを登録
                        sendButton.onClick.RemoveAllListeners();
                        sendButton.onClick.AddListener(SendChatInputForPartyMember);
                        // 切り替えボタンの色を変更する
                        setButtonsColor((int)TypeOfChat.PARTY);
                        nowChatNumber = TypeOfChat.PARTY;      // 現在チャット番号を切り替える
                        break;

                    // 個別チャットに切り替える処理
                    case (int)TypeOfChat.PTOP:
                        // 個別チャットをオンにする
                        playerToPlayerChatText.gameObject.SetActive(true);
                        // 名前入力テキストをオンにする
                        nameInput.gameObject.SetActive(true);
                        // 他のチャットを非アクティブにする
                        allRoomChat.gameObject.SetActive(false);
                        partyChatText.gameObject.SetActive(false);
                        logWindowText.gameObject.SetActive(false);
                        // ボタンに全体送信のメソッドを登録
                        sendButton.onClick.RemoveAllListeners();
                        sendButton.onClick.AddListener(SendChatInputForPlayer);
                        // 切り替えボタンの色を変更する
                        setButtonsColor((int)TypeOfChat.PTOP);
                        nowChatNumber = TypeOfChat.PTOP;      // 現在チャット番号を切り替える
                        break;

                    case (int)TypeOfChat.LOG:
                        // ログウインドウをオンにする
                        logWindowText.gameObject.SetActive(true);
                        // 名前入力テキストをオフにする
                        nameInput.gameObject.SetActive(false);
                        // 他のチャットを非アクティブにする
                        partyChatText.gameObject.SetActive(false);
                        playerToPlayerChatText.gameObject.SetActive(false);
                        allRoomChat.gameObject.SetActive(false);
                        // ボタンに全体送信のメソッドを登録
                        sendButton.onClick.RemoveAllListeners();
                        //sendButton.onClick.AddListener(SendChatInputForAll);
                        // 切り替えボタンの色を変更する
                        setButtonsColor((int)TypeOfChat.LOG);
                        nowChatNumber = TypeOfChat.LOG;      // 現在チャット番号を切り替える
                        break;
                    }
                    // 2つ以上のボタンが同時に押されることが無いため、処理が完了したらループから抜ける
                    break;
                }
            }
        }

        // パーティーチャットでかつパーティーメンバーがいない場合(脱退、解散が起こった場合)
        if (nowChatNumber == TypeOfChat.PARTY && partySystem.GetPartyMember() == null)
        {
            // 全体チャットをオンにする
            allRoomChat.gameObject.SetActive(true);
            // 他のチャットを非アクティブにする
            partyChatText.gameObject.SetActive(false);
            playerToPlayerChatText.gameObject.SetActive(false);
            logWindowText.gameObject.SetActive(false);
            // ボタンに全体送信のメソッドを登録
            sendButton.onClick.RemoveAllListeners();
            sendButton.onClick.AddListener(SendChatInputForAll);
            // 切り替えボタンの色を変更する
            setButtonsColor((int)TypeOfChat.ALL);
            nowChatNumber = TypeOfChat.ALL;  // 現在チャット番号を切り替える
        }
    }