Jump to content
Unity Insider Forum

Problem mit Script


Lewo

Recommended Posts

public class MessageScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public Text buttonText;
    public Text shopOwnerMessage;
    public Color32 messageOff;
    public Color32 messageOn;
    public GameObject[] shopUI;
    private int shopNumber; 

    public void OnPointerEnter(PointerEventData eventData)
    {
        buttonText.color = messageOn;
        PlayerMovement.canMove = false; // wenn jetzt Mausklick erfolgt, bewegt sich der Player nicht
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        buttonText.color = messageOff;
        PlayerMovement.canMove = true;
    }

    // Start is called before the first frame update
    void Start()
    {
        shopOwnerMessage.text = "Hallo " + SaveScript.charName + " - wie kann ich Dir helfen?";
    }

    public void Message1()
    {
        shopOwnerMessage.text = "Hier ist nicht viel los";
    }

    public void Message2()
    {
        shopOwnerMessage.text = "Das haben wir anzubieten";
        Debug.Log("Shop Nr " + shopNumber);
        shopUI[shopNumber].SetActive(true);
        shopUI[shopNumber].GetComponent<BuyScript>().UpdateGold();
    }

    private void Update()
    {
        if (PlayerMovement.canMove == true && PlayerMovement.isMoving == true)
        {
            if (shopUI != null)
            {
                shopUI[shopNumber].SetActive(false);
            }
        }
    }

    public void SetShopNumber(int s)
    {
        Debug.Log("Ändere Shopnr. auf " + s);
        shopNumber = s;
    }
}

Dieses Script ist aus einem Tutorial und gehört zu einem Shopsysthem

Die Variable shopNumber habe ich als privat declariert. Sie sollte daher nur über den Set'er (SetShopNumber) geändert werden können.

 

nun passiert folgendes:

Von einem anderen Script wird SetShopNumber mit dem Parameter 1 aufgerufen, Das wird auch durch die entsprechende Debug Anzeige bestätigt

Bei public void Message2() ist shopNumber aber immer auf 0 und die Debuganzeige wird auch entsprechend ausgegeben.

Wenn ich irgendwie SetShopNumber nochmal aufrufen würde, müsste ja auch eine Debuganzeige erfolgen, was nich tder Fall ist.

 

Wieso wird also die Variable aud 0 gesezt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...