我创建的游戏是一款 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;
}
}
您应该明确硬币数量的存储方式和存储位置。如果您将它存储在代表玩家的网络同步游戏对象上,那么计数将在每次 RPC 调用时增加,通过网络对该玩家对象的所有实例进行计数,而其他玩家实例则保持不变。
我是一名优秀的程序员,十分优秀!