ROBLOX Studio ScreenGui отображение результатов - PullRequest
0 голосов
/ 19 октября 2018

Как мне сделать текстовое обновление TextLabel для переменной?

screen shot 1

Я попытался установить текст "score: ", _G.score

но он не будет обновляться с помощью переменной, и да, я устанавливаю текст после обновления переменной.

Код:

script.Parent.mouseClick:connect(function()
   _G.score = _G.score + 1
   game.StarterGui.ScreenGui.TextLabel.Text = _G.score
end)

1 Ответ

0 голосов
/ 21 октября 2018

game.StarterGui на самом деле является шаблоном GUI, и каждый раз, когда игрок присоединяется к игре, копия создается и передается новому игроку.Таким образом, если вы попытаетесь изменить его, вы не будете изменять его копии, которые были предоставлены всем игрокам.

Существует два решения этой проблемы:

  1. Используйте только относительные пути - то есть, используйте только пути к объектам графического интерфейса, которые начинаются с "script.", как вы сказали script.Parent.mouseClick:connect(…).
  2. Итерируйте по всем копиямкоторые были выданы игрокам. Это можно найти под каждым Player объектом .PlayerGui.

Вы почти никогда не должны делать последнее.Вот как вы можете решить:

Если у вас есть код, который найден в StarterGui (а не в рабочей области или чем-то еще), то вам следует использовать первый.Это связано с тем, что когда StarterGui копируется в графический интерфейс нового игрока (называемый PlayerGui), этот сценарий копируется вместе с ним, поскольку он находился внутри StarterGui.Таким образом, относительный путь, такой как script.Parent.Something.SomethingElse.Text = "hi", будет действительным;это повлияет на , что PlayerGui.

Если у вас есть какой-то код , а не внутри StarterGui (например, если он находится в рабочей области), то выдолжен использовать последний.Это потому, что такой сценарий не будет скопирован в PlayerGui каждого игрока.В результате вы должны пройти через PlayerGui каждого игрока в цикле for или что-то подобное.Этот сценарий встречается очень редко, и если он когда-либо существовал, подумайте о том, чтобы попытаться исключить его, если это возможно, потому что это очень сложная ситуация, с которой приходится сталкиваться;Вы должны учитывать особые обстоятельства, такие как вероятность того, что игрок еще не получил копию StarterGui.

Пожалуйста, дайте мне знать, если это объяснение каким-либо образом сбивает с толку;Я сделаю все возможное, чтобы объяснить это лучше.

Вы можете найти некоторые наглядные пособия, сопровождающие это объяснение, а также дальнейшее чтение официального объяснения этой темы на ROBLOX Wiki: "Игрок противИнтерфейс пользователя стартера ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...