Problem w skrypcie do zmiany broni

0

Witam, wie ktoś może dlaczego w tym skrypcie bronie się nie zmieniają po naciśnięciu klawisza 1 i 2 ?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MenadzerBroni : MonoBehaviour
{

    public BronWgrze aktywnaBron;
    public BronWgrze dostepnaBronGlowna;
    public BronWgrze dostepnaBronDodatkowa;


    Strzelanie strzelanie;

    private void Start()
    {
        strzelanie = GetComponent<Strzelanie>();
        //dostepnaBronGlowna = Bron.dostepneBronie[DostepnaBron.Barretm_M82]
        //dostepnaBronDodatkowa = Bron.dostepneBronie[DostepnaBron.glock_18]
        //GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronGlowna.bron.Enum);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            //Chcemy zmieniac na bron glowna 
            if (dostepnaBronGlowna != null && aktywnaBron.bron != dostepnaBronGlowna.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronGlowna.bron.Enum, dostepnaBronGlowna.id);
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            //Chcemy zmieniac na bron dodatkowa
            if (dostepnaBronDodatkowa != null && aktywnaBron.bron != dostepnaBronDodatkowa.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronDodatkowa.bron.Enum, dostepnaBronDodatkowa.id);
            }
        }
    }

    [PunRPC]
    void ZmienBronRPC(int enumBronId, int bronWgrzeID, PhotonMessageInfo pmi)
    {
        Bron nowaBron = Bron.dostepneBronie[(DostepnaBron)enumBronId];
        Bron staraBron = null;
        if (aktywnaBron != null)
            staraBron = aktywnaBron.bron;
        /*if (PhotonNetwork.isMasterClient)
        {
            if ((dostepnaBronGlowna == nowaBron || dostepnaBronDodatkowa == nowaBron) == false)          
                PhotonNetwork.CloseConnection(pmi.sender);
            
        }*/
        if (PhotonNetwork.isMasterClient || pmi.sender == PhotonNetwork.player)
        {
            // Jezeli jestesmy serwerm lub graczem ktore zmienia bron to chemy wiedziec jak to bron w grze
            aktywnaBron = Bron.ZnajdzBronWgrze(bronWgrzeID);
        }
        else
            aktywnaBron.bron = nowaBron;

        if (pmi.sender == PhotonNetwork.player)
            GetComponent<Strzelanie>().cooldown = nowaBron.czasBraniaDoReki;
        Debug.Log(gameObject.name + " zmienil bron na: " + aktywnaBron.bron.przyjaznaNazwa);

        if (PhotonNetwork.player == pmi.sender)
        {
            Transform bronie = transform.Find("TrzymaczKamery/Kamera/Bronie");
            // Wlaczamy model lokalny 
            if (staraBron != null)
            {
                Debug.Log(staraBron.nazwa);
                Debug.Log(bronie.Find(staraBron.nazwa).gameObject);
                bronie.Find(staraBron.nazwa).gameObject.SetActive(false);
            }
            bronie.gameObject.SetActive(true);
        }
        else
        {
            //TODO: Wlaczac model globalny 
        }
    }

}

1

Między 22 a 41 postaw breakpoints i sprawdź jakie dane przechowują zmienne i gdzie to wpada albo sobie loguj to do konsoli.

0

Dodałem breakpoints na else if (Input.GetKeyDown(KeyCode.Alpha2)) i zrobiłem debuga jak widać na ss.
(Breakpoint robiłem wedle tej instrukcji = https://docs.microsoft.com/pl-pl/visualstudio/debugger/using-breakpoints?view=vs-2019
Przechwyaddsdsdtywanie.PNG
I niby klawisze działają tylko że Klawisz 2 żyje sam sobą bo klikną się sam 4300 a jak nacisnąłem klawisz 1 i 2 123 razy a i nawet jak się nic nie wciska to dalej lecą liczby do góry
Przechwytywdadadaanie.PNG

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            //Chcemy zmieniac na bron glowna 
            if (dostepnaBronGlowna != null && aktywnaBron.bron != dostepnaBronGlowna.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronGlowna.bron.Enum, dostepnaBronGlowna.id);
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
            Debug.Log("Debug klawisza 1: " + (Input.GetKeyDown(KeyCode.Alpha1)));
            Debug.Log("Debug klawisza 2: " + (Input.GetKeyDown(KeyCode.Alpha2))); 
        {
            //Chcemy zmieniac na bron dodatkowa
            if (dostepnaBronDodatkowa != null && aktywnaBron.bron != dostepnaBronDodatkowa.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronDodatkowa.bron.Enum, dostepnaBronDodatkowa.id);
            }
        }
    }
1

Musisz rozdzielić if'y nie rób else.. if... jak robisz sterowanie przyciskami.

void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
Debug.Log("Debug klawisza 1: " + (Input.GetKeyDown(KeyCode.Alpha1)));
            //Chcemy zmieniac na bron glowna 
            if (dostepnaBronGlowna != null && aktywnaBron.bron != dostepnaBronGlowna.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronGlowna.bron.Enum, dostepnaBronGlowna.id);
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha2))
       {

            Debug.Log("Debug klawisza 2: " + (Input.GetKeyDown(KeyCode.Alpha2))); 
            //Chcemy zmieniac na bron dodatkowa
            if (dostepnaBronDodatkowa != null && aktywnaBron.bron != dostepnaBronDodatkowa.bron)
            {

                GetComponent<PhotonView>().RPC("ZmienBronRPC", PhotonTargets.All, (int)dostepnaBronDodatkowa.bron.Enum, dostepnaBronDodatkowa.id);
            }
        }
    }

Wtedy powinno działać...

Pozdrawiam @Mondonno

:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1