Slayer Geschrieben 10. Januar 2014 Melden Share Geschrieben 10. Januar 2014 Ich komme leider einfach nicht weiter. Ich habe jetzt zu letzt mit dem Script versucht aufn Punkt zu kommen. leider klapt es nicht. Folgendes soll Passieren. Fahrzeug steht dort. Ich gehe in. Dort ist ein Trigger. Drücke E. Steige ins Fahrzeug ein. Nun Macht sich der Player Unsichtbar oder löscht sich, Wird Inaktiv, was auch immer. Dafür kann ich aber nun das Fahrzeug steuern. Wenn ich nun Wider E Drücke, wird die Fahrzeug Steuerrung soweit Deaktiviert das ich ganz normal den Player wider Spielen kann der dann bei einem Spawnpoint wider Inizialisiert werden soll. Kleiner Anfang den ich ausprobiert habe: var Raumschiff : Transform; var player : Transform; var exitPunkt : Transform; var einstiegTrigger : Transform; var PlayerCamera : Camera; var RaumschiffCamera : Camera; var isPlayerVisable : boolean; function update (){ if (Input.GetButtonDown("E")&& isPlayerVisable){ //Macht Spieler Inaktiv und legt den lehrlauf ein player.gameObject.SetActiveRecursively(false); player.gameObject.active = false; // Spieler spawnt beim player.parent = exitPunkt.transform; player.transform.localPosition = Vector3(-1.5,2,0); //Parent playerParent zum Raumschiff exitPunkt.parent = Raumschiff.transform; exitPunkt.transform.localPosition = Vector3(-0.5,2,0); // Raumschiff als kontrollierbar angeben GameObject.Find("Raumschiff").GetComponent("ControllScript").enabled = true; PlayerCamera.enabled = false; RaumschiffCamera.enabled = true; } else { if (Input.GetButtonDown("E")){ // Macht Charakter wider Spielbar player.gameObject.SetActiveRecursively(true); player.gameObject.active = true; player.transform.parent = null; // Spawnt Spieler beim Exit Punkt exitPunkt.parent = einstiegTrigger.transform; // Raumschiff wird nicht mehr kontrolliert GameObject.Find("Raumschiff").GetComponent("ControllScript").enabled = false; PlayerCamera.enabled = true; RaumschiffCamera.enabled = false; } } } function OnTriggerEnter(Player : Collider) { isPlayerVisable = true; } function OnTriggerExit(Player : Collider) { isPlayerVisable = false; } Ich kenne mich mit JS weniger aus. Vll hätte da wer ne c# lösung. Das eben nur ein etwas umgebautes Script jetzt gewesen. Danke vielmals Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 10. Januar 2014 Melden Share Geschrieben 10. Januar 2014 Da du ja c# kennst, weisst du ja wie man dort Variablen deklariert und wie manche andere Dinge geschrieben werden sollten. Du willst ja mit dem Raumschiff oder was auch immer interagieren, wenn du nah dran bist. Klug wäre es, wenn du dem Raumschiff einen Spherecollider geben würdest, der auf trigger geschaltet ist und die Reichweite für das Triggern gibt. Also einges größer ist als das Raumschiff. Triggern geht immer in beide Richtungen. Somit würde das Raumschiff wissen wenn was im Trigger ist und das dann auch der Player ist, und der Player würde wissen, dass er im Raumschifftrigger steht. Ich würde da übrigens OnTriggerStay auswerten, sag dir auch gleich warum. So, Raumschiff und Player triggern jetzt gegenseitig. Beide Objekte habe ja ein Steurungsscript und über das Stay wird einfach in beiden Scripts zusätzlich abgefragt, ob die Taste E gedruckt wird. Wenn dem so ist, beschreibst du einfach eine Variable. Die könnte eingestiegen heissen. Im Playerscript fragst du die Variable in der Update ab. Und wenn die jetzt auf true ist und der Meshrenderer und der/die Collider noch aktiv sind, dann schaltest du diese einfach ab. Der Player wird nicht mehr gesehen und seine Collider gehen auch nicht mehr, stören also in der Szene nicht. Außerdem nutzt du diese Variable damit du dem Player nicht mehr steurn kannst. Im Raumschiffscript fragst du auch diese eine Variable ab und nur wenn sie true ist, kann gesteuert werden. Im Raumschiff-Script wird auch immer noch die Taste E abgefragt, denn du willst ja auch wieder aussteigen können. Wird E gedrückt und darf das auch ( wenn das Raumschiff gelandet ist), dann stellst du die Steuervariable im Raumschiff wieder auf false und Springst ins Playerscript in eine Funktion und übergibst dem Player die neuen Koordinaten, wo er jetzt entstehen soll. In dieser Player-Funktion wir der übergebene Vector3 genutzt um die Position des Players da hin zu setzen und gleichzeitig wird der Meshrenderer und Collider wieder eingeschaltet. Das OnTriggerStay sollte jetzt wieder feuern, auch wenn der Player nicht in den trigger rein bewegt wurde, sondern da hin gebeamt wurde. Du könntest jetzt also sofort wieder E drücken und wieder einsteigen. 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.