Lewo Geschrieben 20. August 2022 Melden Share Geschrieben 20. August 2022 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 More sharing options...
Sascha Geschrieben 20. August 2022 Melden Share Geschrieben 20. August 2022 Moin! Die wird nirgendwo auf 0 gesetzt. Daher schätze ich, du hast dieses Script mehrere Male in deiner Szene. Bei dem einen rufst du SetShopNumber auf, bei dem anderen Message2. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Lewo Geschrieben 21. August 2022 Autor Melden Share Geschrieben 21. August 2022 Danke, das Problem lag tatsächlich nicht am Script, sondern an der Zuordnung der Methoden zu den Buttons. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.