2015-04-07 3 views
2

Игра, которую я создал, это игра FPS, и она работает с Photon Networking, как игра работает, когда игрок снимает другого игрока в сети и убивает его, что игрок порождает монету, чтобы игрок мог ее собрать и добавьте балл к оценке,Unity 3d Photon Networking

BUT !!!!

Проблемы я имею, когда игрок собирает монету он добавляет одну точки для всех людей в сети

SO

, что я нужна помощь, это получить монету, чтобы дать одной точки к игрок, который собрал его и не всей сети

МОЙ КОД: это уничтожить монету

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(); 
     } 


    } 

тыс is is 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; 
    } 
} 

ответ

0

Вы должны четко указать, как и где хранится счет монет. Если вы храните его в сетевом синхронизированном игровом объекте, представляющем игрока, тогда подсчет будет увеличиваться на каждом вызове RPC для всех экземпляров этого объекта игрока по сети, оставив неповрежденные экземпляры других игроков.

Смежные вопросы