Ich habe mich gerade in Roblox gefragt, ob irgendjemand jemals auf eine Situation gestoßen ist, in der Skripte von einem anderen Skript ausgeführt werden mussten. Meine Situation ist, dass ich ein Kontrollpunktsystem für ein Spiel mache. Ich muss in der Lage sein zu wissen, ob die anderen Punkte erfasst werden, um die nächsten zu erfassen, also versuche ich, einen Controller darüber zu schreiben, aber ich bin mir nicht sicher, wie ich genau auf die Funktionen innerhalb des Kontrollpunkt-Skripts zugreifen soll.Laufendes Skript für eine Gruppe, um auf Funktionen innerhalb von Gruppenteilen zuzugreifen
Antwort
Ja! ROBLOX bietet eine sehr nützliche Funktion namens ModuleScripts für den Zweck, Skripte von anderen Skripten aus aufzurufen. The icon for ModuleScripts looks the same as the icon for regular Scripts except with a little brick in the bottom-right.
Die Art, wie es funktioniert, ist, dass reguläre Skripts ModuleScripts im Spiel mit der speziellen Funktion require()
aufrufen können. Der einfachste Weg, dies zu erklären, ist ein Beispiel.
Stellen Sie sich vor, wir haben ein Script und ein ModuleScript. Das Skript befindet sich unter game.Workspace.normalScript
und das ModuleScript befindet sich in einem Baustein namens part
unter game.Workspace.part.moduleScript
.
moduleScript
enthält den folgenden Code:
script.Parent.Transparency = .5 --"Parent" is the part since this ModuleScript is located inside the part
Nun normalScript
den folgenden Code enthalten:
require(game.Workspace.part.moduleScript)
Wenn Sie das Spiel laufen, normalScript
wird moduleScript
ausführen, die Änderung der Transparenz der part
zu .5. Wenn man in einem ModuleScript require()
aufruft, verhält es sich so, als würde eine normale Funktion aufgerufen. moduleScript
hat sich so verhalten, als wäre es eine Funktion, und ModuleScripts verhalten sich im Allgemeinen genauso wie Funktionen zum größten Teil.
Dies bedeutet auch, dass ModuleScripts Werte wie Funktionen zurückgeben können. Zum Beispiel, wenn wir den folgenden Code in moduleScript
haben:
return 3+3
Nun wird unser Skript den folgenden Code enthalten:
local number = require(game.Workspace.moduleScript)
print(number) --> 6
Dieser Code wird "6" auf der Konsole aus, da moduleScript
6 zurück Wie Sie sich vorstellen können, bedeutet dies, dass ModuleScripts viel mehr Nutzen haben als einfach Code remote auszuführen.
Hier sind zwei weitere Beispiele für Verwendungen von ModuleScripts:
1) wiederkehrende Funktionen:
moduleScript
:
return function()
print("hey")
end
normalScript
:
local func = require(game.Workspace.moduleScript)
func() --> hey
2) zurückkehrend Module wie als apple
unten:
moduleScript
:
local apple = {}
apple.flavor = "sweet"
return apple
normalScript
:
local fruit = require(game.Workspace.moduleScript)
print(fruit.flavor) --> sweet
Dies sind eher albern Beispiele für ModuleScript verwendet, aber ModuleScripts kann tatsächlich sehr mächtige Werkzeuge sein. Für einige coole Beispiele, besuchen Sie die ROBLOX Wiki page on ModuleScripts und scrollen Sie auf halber Strecke.
Vielen Dank! Ich schätze es sehr. Ich habe gerade eine andere Frage und du scheinst ziemlich erfahren zu sein. – Tykota
@Tykota Ja, natürlich! Ich hoffe es hat geholfen. Und ja, ich habe es gesehen, aber ehrlich gesagt war ich nicht wirklich sicher, wie ich es beantworten sollte, weil es nicht viel zu arbeiten gab. Hast du einen Link zu deinem Spiel? – NetherGranite
@Tykota Okay, ich habe mir diese Frage genauer angesehen. Könnten Sie zeigen, wo Sie den Variablen diese Schaltflächen zugewiesen haben? Ich hätte diesen Posten selbst kommentiert, aber ich habe nicht genug Ansehen, haha. (Ich würde es schätzen, wenn Sie meine Antwort als akzeptiert markieren c :) – NetherGranite
- 1. Laufendes Shell-Skript von Jenkins
- 2. Laufendes Skript von Heroku CLI
- 3. php lange laufendes Skript
- 4. Laufendes Federprogramm innerhalb des Anwendungsservers
- 5. Laufendes Matlab-Skript viele Male
- 6. Funktionen innerhalb von Funktionen
- 7. PHP: Laufendes Skript mit POST/AJAX abbrechen?
- 8. Anwenden von Funktionen auf Spalten nach Gruppe
- 9. Pandas: Verschieben von Werten um eine Zeile innerhalb einer Gruppe
- 10. Ich kann kein laufendes Python-Skript beenden
- 11. Um von einem Sharepoint-Ordner auf eine Excel-Datei zuzugreifen
- 12. Lang laufendes Skript in Google Cloud
- 13. Ist es möglich, auf Eigenschaften und Funktionen von userdata zuzugreifen?
- 14. laufendes Skript durch alle offenen Arbeitsblätter
- 15. jQuery führen eine Gruppe von Funktionen nach dem anderen
- 16. CPU-Auslastung für ein bestimmtes laufendes PHP-Skript abrufen
- 17. Umfang von Javascript-Variablen innerhalb von Funktionen innerhalb der Funktion
- 18. Wie verwende ich eine Variable, um auf ein bestimmtes Element innerhalb eines mehrdimensionalen Arrays zuzugreifen?
- 19. Java: Laufendes Shell-Skript im Hintergrund
- 20. Python-Skript mit relativen Pfaden nicht innerhalb von Funktionen
- 21. Gnus innerhalb von Emacs verwenden, um auf Mail von Microsoft Exchange (2010) zuzugreifen
- 22. Zugriff auf Redox-Speicher innerhalb von Funktionen
- 23. Pandas: Verwenden von Gruppe durch, kombinieren mehrere Spaltenwerte als eine eigenständige Gruppe innerhalb der Gruppe von
- 24. Python-Skript-Zugriff auf os-Funktionen beschränken
- 25. TwiML Bin - Anyway, um auf Parameter zuzugreifen?
- 26. "NotImplementedError: Verwenden Sie label(), um auf eine Knotenbezeichnung zuzugreifen"
- 27. Verwenden Sie eine foreach-Schleife, um auf das Array innerhalb dieses Abfrageergebnisobjekts zuzugreifen?
- 28. Zählen innerhalb von Funktionen
- 29. Versuche, auf JavaScript-Elemente innerhalb einer Seite zuzugreifen
- 30. Powershell-Skript, wie Variable zuzugreifen
Können Sie uns einen Beispielcode und auch einige Links zu dem Code geben, den Sie einfügen möchten? Wir müssen mehr über Ihre spezifische Situation wissen, um Ihnen eine gute Antwort zu geben. (Siehe auch [Wie stelle ich eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask).) –
Im Wesentlichen muss folgendermaßen vorgegangen werden: Das Kontrollgruppenskript greift auf das Teilscript zu , dieser Teil ist der Teil in der Kontrollgruppe. – Tykota
Es sollten keine Codebeispiele benötigt werden. – Tykota