2017-05-22 4 views
-1

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

+0

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).) –

+0

Im Wesentlichen muss folgendermaßen vorgegangen werden: Das Kontrollgruppenskript greift auf das Teilscript zu , dieser Teil ist der Teil in der Kontrollgruppe. – Tykota

+0

Es sollten keine Codebeispiele benötigt werden. – Tykota

Antwort

0

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.

+0

Vielen Dank! Ich schätze es sehr. Ich habe gerade eine andere Frage und du scheinst ziemlich erfahren zu sein. – Tykota

+0

@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

+0

@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

Verwandte Themen