gpt4 book ai didi

c# - Unity 3d 光子网络

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:53 25 4
gpt4 key购买 nike

我创建的游戏是一款 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 调用时增加,通过网络对该玩家对象的所有实例进行计数,而其他玩家实例则保持不变。

关于c# - Unity 3d 光子网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com