0

オブジェクトのトリガー ゾーンに入ると、メッセージがプレイヤーに表示されます (タグによって検出されます)。プレイヤーがピックアップ ボタンを押すと、アイテムがインベントリに追加されます。シングルプレイヤーゲームでは問題なく動作します。

PUN (Photon Networking) を使用すると、すべてのプレイヤーに表示され (すべてのプレイヤーのスクリプトがイベントを検出するため)、すべてのプレイヤーがアイテムを拾うことができます。この問題を解決するにはどうすればよいですか?

この部分を修正すると、他のすべてを修正する方法を理解できるようになると思います。

void OnTriggerEnter(Collider col)
{
    if (col.gameObject.tag == "Player")
    {
        displayMessage = true;
    }
}
void OnTriggerExit(Collider col)
{
    if (col.gameObject.tag == "Player")
    {
        displayMessage = false;
    }
}
bool stop = false;

void OnGUI()
{
    if (displayMessage)
    {

        if (GameObject.FindGameObjectWithTag("UInventory").GetComponent<UInventory>().inventoryMode == "Weight")
        {
            GUI.Label(new Rect((Screen.width/2)-200, (Screen.height/2)-30, 200, 45), "Press " + pickUpItem.ToString() + " To Take " + itemName + "(" + itemWeight + "kg)");
        }
        else
        {
            GUI.Label(new Rect((Screen.width/2)-200, (Screen.height/2)-30, 200, 45), "Press " + pickUpItem.ToString() + " To Take " + itemName);
        }
    }
}
4

1 に答える 1