【问题标题】:Unity 3d Photon NetworkingUnity 3d 光子网络
【发布时间】:2015-06-12 10:02:26
【问题描述】:

我创建的游戏是 FPS 游戏,它与 Photon Networking 配合使用 游戏的工作原理是,当玩家在网络上射击另一个玩家并杀死他时,该玩家会生成一枚硬币,这样玩家就可以收集它并添加一个点得分,

但是!!!!

当玩家收集硬币时我遇到的问题会给网络上的所有人加一分

所以

我需要帮助的是让硬币给收集它的玩家一分,而不是给整个网络

我的代码: 这是为了销毁硬币

    public float hitPoints = 100f;
    float currentHitPoints;
    public GameObject coin;

    [RPC]
    public void CoinDie(float amt) {
        currentHitPoints -= amt;

        if(currentHitPoints <= 0) {

            CoinDied();
        }
    }

    void CoinDied() {
        bl_SaveInfo.coinCount++;
        gu.coinCount++;
        CoinDestroy CD = GameObject.FindObjectOfType<CoinDestroy>();
        CD.KillCoin ();
       }


    }

这是显示点的 GUI

using UnityEngine;
using System.Collections;

public class gu : MonoBehaviour {
    public static int coinCount = 0;
    float respawnTimer = 5;



    void OnGUI()
    {
        string coinText = "Total Coins: " + coinCount;

        GUI.Box (new Rect(Screen.width - 150, 40, 130, 30), coinText);

    }

    void Update(){
            respawnTimer -= Time.deltaTime;
    }
    public void Clear(){
        if (respawnTimer <= 0) {
            coinCount = 0;
            respawnTimer = 5;
        }
    }


    public void CoinCounter (){
            bl_SaveInfo.coinCount++;
            gu.coinCount++; 
        }



    void ClearScore(){
        coinCount = 0;
    }
}

【问题讨论】:

    标签: c# networking unity3d frame-rate photon


    【解决方案1】:

    您应该明确硬币计数的存储方式和存储位置。如果您将其存储在代表玩家的网络同步游戏对象上,则计数将在每次 RPC 调用时递增,此玩家对象的所有实例通过网络进行,而其他玩家实例保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多