Jump to content
Unity Insider Forum

Dami1302

Members
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Dami1302

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ich habe ein Prefab. Das Prefab ist ein Würfel. Das Skrip erstellt aus diesen Würfel eine Mauer (die Würfel werden nebeneinander als Mauer platziert). Und nun möchte ich z. B. in der Mitte dieser erstellten Mauer einen instanziierten Würfel löschen. Damit man durchlaufen kann. Ich hab nämich ein Labyrinth. Und das Labyrinth braucht einen Ein- und Ausgang und da muss ich in der Außenmauer eine Instanz löschen. (ich hoffe man kann es verstehen )
  2. Ich lasse die Mauer per Skript erstellen und möchte aus den einzelnen Instanzen, die die Mauer erstellen eine Instanz löschen, damit ein Durchgang entsteht. Ich weiß aber nicht wie ich darauf zugreife.
  3. Hi, Ich brauche Hilfe. Ich habe ein Prefab aus dem ich eine Mauer erstelle. Nun möchte ich aus der Mauer eine Instanz des Prefabs zerstören sozusagen als Durchgang durch die Mauer. Kann mir jemand helfen ?
  4. Hallo. Ich soll ein dynamisches Array serialisieren und in eine binäre Datei schreiben. Dabei sollen die Daten zum Test wieder zurückgelesen und die deserialisierten Werte als Liste ausgegeben werden. Ich habe auch schon ein Skript, aber leider funktioniert es nicht: #pragma strict //für den Typ List import System.Collections.Generic; //für den Namensraum System.IO import System.IO; //für den BinaryReader import System.Runtime.Serialization.Formatters.Binary; //für das Prefab var prefabOutput : UI.Text; public class ScoreItem implements System.IComparable { private var points : int; private var name : String; public function ScoreItem (poi : int, nam : String) { points = poi; name = nam; } public function GetName() : String { return name; } public function GetPoints() : int { return points; } } //die Liste private var highscore : List.<ScoreItem> = new List.<ScoreItem>(); var Name : Array = new Array(); var Punkte : Array = new Array(); function Start () { for (var index : int = 0; index < 10; index++) { Name.Push ("Test"); } for (var inde : int = 0; inde < 10; inde++) { Punkte.Push (10); } //die Liste erstellen highscore = new List.<ScoreItem>(); //einige Einträge erzeugen highscore.Add(new ScoreItem(10, "Test")); highscore.Add(new ScoreItem(20, "Test 1")); //für die neuen Instanzen var outputName : UI.Text; var outputPoints : UI.Text; //die Liste laden bzw. neu erzeugen LoadList(); //Canvas beschaffen var myCanvas = GameObject.Find("Canvas"); //und ausgeben for (var temp : ScoreItem in highscore) { outputName = Instantiate(prefabOutput); //das übergeordnete Element setzen outputName.transform.SetParent(myCanvas.transform, false); //den Text setzen outputName.GetComponentInChildren.<UI.Text>().text = temp.GetName(); //und noch einmal für die Punkte outputPoints = Instantiate(prefabOutput); outputPoints.transform.SetParent(myCanvas.transform, false); outputPoints.GetComponentInChildren.<UI.Text>().text = temp.GetPoints().ToString(); } } function LoadList() { //für den Dateinamen var filename : String; //für den FileStream var myFileStream : FileStream; filename = Path.Combine(Application.persistentDataPath, "highserial.bin"); //gibt es die Datei? if (File.Exists(filename)) { //eine neue Instanz von FileStream erzeugen //die Datei wird zum Lesen geöffnet myFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read); //eine Instanz von BinaryFormatter erzeugen var binaryformat : BinaryFormatter = new BinaryFormatter(); //die Daten deserialisieren und in highscore ablegen highscore = binaryformat.Deserialize(myFileStream) as List.<ScoreItem>; myFileStream.Close(); } //sonst 10 leere Einträge erzeugen else { for (var count : int = 0; count < 10; count++) highscore.Add(new ScoreItem(0, "leer")); } } function SaveList() { //für den Dateinamen var filename : String; //für den FileStream var myFileStream : FileStream; filename = Path.Combine(Application.persistentDataPath, "highserial.bin"); //eine neue Instanz von FileStream erzeugen //der Inhalt wird überschrieben myFileStream = new FileStream(filename, FileMode.Create); //eine Instanz von BinaryFormatter erzeugen var binaryformat : BinaryFormatter = new BinaryFormatter(); //die List sortieren highscore.Sort(); //die Daten speichern, dazu wird einfach die Liste serialisiert binaryformat.Serialize(myFileStream, highscore); myFileStream.Close(); } function OnApplicationQuit() { SaveList(); } Kann mir jemand dabei helfen ?
  5. Vielen Dank. Ich werde mal versuchen ob es funktioniert. Leider wird mir bei meinem Kurs JavaScript vorgegeben.
  6. Ok trotzdem danke. Vielleicht kann ja noch jemand anders Helfen
  7. So sieht mein Script aus: #pragma strict //für die Kugel var bullet : GameObject; //die Geschwindigkeit der Kugel var bulletSpeed : int = 1000; //für die Ausgabe var ammoLabel : UI.Text; public var munition : int; function Fire() { //eine neue Kugel abhängig vom Objekt erzeugen var myBullet:GameObject = Instantiate(bullet, transform.position, transform.rotation); //Kraft anwenden in die Aufwärtsrichtung, dadurch bewegt sich die Kugel myBullet.GetComponent.<Rigidbody>().AddForce(this.transform.up * bulletSpeed); //eine Kugel weniger munition--; //die Kugel nach 1 Sekunde zerstören Destroy(myBullet, 1); } function Update () { //beim Loslassen abfeuern if(Input.GetButtonUp("Fire1") && munition > 0) Fire(); ammoLabel.text = "Munition: " + munition; } Benutzt habe ich dann die Funktion Fire () Ich arbeite mit Javascript.
  8. Leider funktioniert es immer noch nicht
  9. Hallo, ich habe ein Problem bei einem Slider also einem Schieberegler. Ich habe ein Mini Game wo ich Munition benötige. Über den Schieberegler möchte ich die Anzahl der Munition bestimmen. Leider weiß ich nicht wie ich den Wert des Schiebereglers benutzen kann um ihn in einen anderen Skript als Munition einsetzen zu können. Ich hoffe jemand kann mir helfen.
  10. Hallo, Ich brauche Hilfe bei einem Skript. Ich möchte gerne eine Kugel zwischen zwei Wänden 20-mal hin und her laufen lassen. Kann mir jemand helfen? Das habe ich bis jetzt aber irgendwie funktioniert es nicht richtig. #pragma strict var Hit : int = 0; var speed : float; var target : Transform; function Start () { } function Update () { transform.Translate (speed * Time.deltaTime, 0, 0); } function OnCollisionEnter (collision : Collision) { if (collision.gameObject.name == "Wand 1") { Hit++; transform.position = Vector3.MoveTowards (transform.position, target.position, -speed * Time.deltaTime); } if (collision.gameObject.name == "Wand 2") { Hit++; transform.position = Vector3.MoveTowards (transform.position, target.position, speed * Time.deltaTime); } if (Hit == 20) UnityEditor.EditorApplication.isPlaying = false; }
  11. Ich mache gerade meinen eigenen Sidescroller mit einem RollerBall Controller. Im Moment arbeite ich an einer Anzeige für Leben. Es soll so funktionieren: Wenn die Kugel die Spielbahn verlässt soll ein Leben abgezogen werden. Außerdem soll die Anzahl der Abstürze und die noch verbleibenden Leben angezeigt werden. Könnt ihr mir da helfen ?
  12. Ok es funktioniert. Vielen Dank für die Hilfe
  13. Leider funktioniert es immer noch nicht richtig. Wo ist der Fehler ? #pragma strict enum MouseButtons { linke, rechte, mittlere}; enum Speed { aus, langsam, mittel, schnell }; var objectSpeed : Speed = Speed.langsam; private var numberOfSpeed : int = System.Enum.GetValues (Speed).length - 1; function Start () { } function Update () { var mySpeed : int = parseInt (objectSpeed) * 100; transform.Rotate (mySpeed * Time.deltaTime, 0, 0); if (Input.GetMouseButtonDown (MouseButtons.linke)) { if (objectSpeed < numberOfSpeed) objectSpeed = objectSpeed + 1; } else { if (objectSpeed > numberOfSpeed) objectSpeed = 0; } if (Input.GetMouseButtonDown (MouseButtons.rechte)) { if (objectSpeed > 0) objectSpeed = objectSpeed - 1; } else { if (objectSpeed == 0) objectSpeed = numberOfSpeed; } Debug.Log (mySpeed + " " + objectSpeed); } Das Skript wird einem Objekt zugeordnet ( in meinem Fall einem Würfel) was sich dann um die eigene Achse dreht. Dabei kann man die Drehgeschwindigkeiten ( aus, langsam, mittel und schnell) auswählen.
  14. Hallo, Ich habe eine Aufgabe bekommen wo ich folgendes Skript verändern soll: #pragma strict enum MouseButtons { linke, rechte, mittlere}; enum Speed { aus, langsam, mittel, schnell}; var objectSpeed : Speed = Speed.langsam; private var numberOfSpeed : int = System.Enum.GetValues (Speed).length - 1; function Start () { } function Update () { var mySpeed : int = parseInt (objectSpeed) * 100; transform.Rotate (mySpeed * Time.deltaTime, 0, 0); if (Input.GetMouseButtonDown (MouseButtons.linke)) { if (objectSpeed < numberOfSpeed) objectSpeed = objectSpeed + 1; } else { if (Input.GetMouseButtonDown (MouseButtons.rechte)) { if (objectSpeed > 0) objectSpeed = objectSpeed - 1; } } Debug.Log (mySpeed + " " + objectSpeed); } Ich soll es so ändern, dass es beim Klicken mit der Maus keine untere und obere Grenze mehr für die Werte gibt. Wenn der letzte Wert erreicht ist, soll beim Klicken mit der linken Maustaste wieder der erste verwendet werden. Wird der erste Wert erreicht, soll beim Klicken mit der rechten Maustaste wieder der letzte verwendet werden. Ich hoffe ihr könnt mir helfen
×
×
  • Create New...