• Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

Vermentex

Members
  • Content count

    35
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Vermentex

  • Rank
    Advanced Member

Recent Profile Visitors

239 profile views
  1. Hallo Leute, ich habe gerade zum erstem mal das Treebrush-Tool des Unity-Terrains ausprobiert, da ich die Bäume in meinem Projekt ungern alle einzeln platzieren möchte. Leider funktioniert dieses Tool (bei mir) nicht wie erwartet. Die Bäume sehen qualitativ schlecht aus und schweben als Sprites in der Luft. Sie werden auch nicht vollständig angezeigt. Collider werden ebenfalls ignoriert. Um es besser begreiflich zu machen, habe ich hier ein Screenshot für euch. So sieht das jetzt in meinem Projekt aus. Ein von mir platzierter Baum in der Mitte und die mit dem Terrain-Tool erstellten außen. Könnt ihr mir sagen, wie ich das richtig hinbekomme? Habe mir auch schon ein paar Videos angeschaut, wo es richtig geklappt hat. Vielen Dank
  2. Hallo Leute, ich hoffe, dass mein Thema hier hinein passt. Ich habe ein Problem. In meinem UnityProjekt gibt es bisher 2 Szenen. Ich habe eine eigene Skybox erstellt (sehr simpel) und diese einfach in die Szene gezogen. In der Szene befinden sich 3D-Modelle im fbx-Format. Ein Directional Light habe ich auch, sowie ein paar ReflectionProbes. Nun zu meinem Problem. Beim start von Unity dauert es kurz, bis die Szenen richtig belichtet werden. Wenn ich dann die Szene starte, sieht alles so aus, wie es soll: Wenn ich jetzt aber über ein Script "LoadLevel" in die jeweils andere Szene wechsel, werden die Objekte falsch oder garnicht belichtet. Ich kann das nicht so gut beschreiben. Hier wie das aussieht: Weiß jemand woran das liegt? Wenn ich die Szene vom Editor aus starte ist alles normal. Nur wenn die Szenen von einer anderen Szene aus getartet werden, sieht es so aus wie in Bild 2. Vieleicht weiß da jemand mehr. Vielen Dank für die Hilfe
  3. Ok, vielen Dank. Ich habe tatsächlich gesucht. Nicht so wie beschrieben, daher wohl auch nicht entdeckt. Vielen Dank für den Tipp :). Einen schönen Nachmittag wünsche ich noch.
  4. Hallo Leute, ich habe in einer "static class" einen Wert, den ich in einem anderen Script (über if) abfragen muss. Kann mir dabei jemand helfen? Hier ist das Script, wo der Wert "weaponId" neu vergeben wird: Dieser Wert muss abgefragt werden. using UnityEngine; using System.Collections; static class WeaponID { private static int weaponId = 0; public static void ClearId() { weaponId = 0; } public static int GetId() { return weaponId; } public static void AddId(int id) { weaponId = id; } } Hier ist das Script, welches diesen Wert abfragen muss: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon_Activator : MonoBehaviour { public GameObject WeaponToActivate; public int ID; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (?????????) WeaponToActivate.SetActive(true); } } Wenn der Wert von "weaponId" (aus dem ersten Script), dem Wert von "ID" (aus dem 2. Script) entspricht, soll "WeaponToActivate.SetActive(true);" ausgeführt werden. Vielen Dank, für die Unterstützung
  5. Danke, hat geklappt. Ich habe zuerst übersehen, dass der Score im Scormanager zurückgesetzt wird, beim start. Jetzt klappt alles. Vielen Dank, hat mir sehr geholfen.
  6. Ich versuche es mal damit. Dankeschön
  7. Hallo Leute, ich habe ein kleines Score-Script. Mit diesem werden Punkte gesammelt, die später bei einem Händler eingelöst werden können. Diese Punkte müssen allerdings Scenenübergreifend sein, da eine Runde bei mir in mehrere Scenen aufgeteilt sind. Ich kenne mich nicht so gut mit den Player.Prefs aus, vieleicht könnt ihr mir helfen? Ich packe hier einmal das Script hinein: sing UnityEngine; using System.Collections; using UnityEngine.UI; public class ScoreManager : MonoBehaviour { public static int score; Text text; void Start() { text = GetComponent<Text> (); score = 0; } void Update() { if (score <0) score = 0; text.text = "" + score; } public static void Points (int addPoints) { score += Points; } public static void Reset() { score = 0; } } Die Variable Score muss nun in die Player.Prefs, damit die Punkte in den nächsten Scenen immernoch vorhanden sind und von dem Scoretext angezeigt werden. Könnt ihr mir dabei helfen? Vielen Dank für die nette Unterstützung
  8. Hallo Leute, ich habe ein paar Scripte für mein 3D-Game geschrieben. Das Problem ist, dass ich einige dieser Scripte nur dann benötige, wenn sich der Spieler in einer bestimmten Area aufhällt. Sind sie aktiv, wenn der Spieler sich nicht in dieser Area befindet, sind sie störend. Gibt es eine Möglichkeit, die Scripte zu deaktivieren und erst dann zu aktivieren, wenn der Spieler sich in einem TriggerObjekt befindet? Ich habe in meinem Spiel in jeder Area, ein Objekt, dass die gesammte Umgebung mit einem Boxcollider umgibt. Dieser ist ein Trigger. Ich bräuchte jetzt ein Script, welches das angegebene Script deaktiviert und erst dann wieder aktiviert, wenn sich der "Player" in diesem TriggerObjekt aufhällt. Ich weiß leider nicht, wie ich es ansprechen kann. Weiß dort jemand mehr? Bin eher noch Anfänger. Vielen Dank für die nette Unterstützung.
  9. Hallo Leute, ich habe ein paar Scripte für mein 3D-Game geschrieben. Das Problem ist, dass ich einige dieser Scripte nur dann benötige, wenn sich der Spieler in einer bestimmten Area aufhällt. Sind sie aktiv, wenn der Spieler sich nicht in dieser Area befindet, sind sie störend. Gibt es eine Möglichkeit, die Scripte zu deaktivieren und erst dann zu aktivieren, wenn der Spieler sich in einem TriggerObjekt befindet? Ich habe in meinem Spiel in jeder Area, ein Objekt, dass die gesammte Umgebung mit einem Boxcollider umgibt. Dieser ist ein Trigger. Ich bräuchte jetzt ein Script, welches das angegebene Script deaktiviert und erst dann wieder aktiviert, wenn sich der "Player" in diesem TriggerObjekt aufhällt. Ich weiß leider nicht, wie ich es ansprechen kann. Weiß dort jemand mehr? Bin eher noch Anfänger. Vielen Dank für die nette Unterstützung.
  10. Danke, für die schnelle und einfache Hilfe. Hat wunderbar geklappt. Für die Nachwelt: So sieht das Script jetzt aus. using System.Collections; using System.Collections.Generic; using UnityEngine; public class AddTime : MonoBehaviour { public Countdown countdown; public int timeToAdd; void OnTriggerEnter (Collider other) { if (other.GetComponent<PlayerController> () == null) return; countdown.timeLeft += timeToAdd; Destroy (gameObject); } } Schönen Abend, wünsche ich noch
  11. Hallo Leute, ich habe ein kleines Countdownscript. Die Zeit in einer Scene läuft von 300 bis 0 herunter. Ist 0 erreciht, wird eine Szene geladen. Dann habe ich noch ein zweites Script. Mit diesem soll beim Einsammeln eines Items, Zeit zum Countdown hinzugerechnet werden. Ich kann diese leider nicht ansprechen. Weiß jemand wie das geht? Hier meine beiden Scripts: using UnityEngine; using UnityEngine.UI; using System.Collections; public class Countdown : MonoBehaviour { public float timeLeft = 300.0f; public Text text; public void Update() { timeLeft -= Time.deltaTime; text.text = "GameOver in: " + Mathf.Round(timeLeft) + " sec"; if(timeLeft < 0) { Application.LoadLevel("GameOver"); } } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class AddTime : MonoBehaviour { public int timeToAdd; void OnTriggerEnter (Collider other) { if (other.GetComponent<PlayerController> () == null) return; //Hier muss die Zeit zu timeLeft hinzugerechnet werden. Destroy (gameObject); } } Vielen Dank, für die nette Unterstützung
  12. Hat sich erledigt. War relativ einfach. Musste nur die Position des Bildes verschieben. Wusste nicht, dass das geht.
  13. Hallo Leute, ich hätte da mal eine Frage bezüglich der Darstellung einer Kamera im Canvas. Ich bin gerade dabei ein kleines 3D-Game zu erstellen. Ich habe eine Startwelt, in der der Spieler bestimmte Orte aufsuchen muss. Damit er diese auch findet, habe ich eine 2. Kamera direkt über dem Spieler erstellt, die die gesammte Welt von Oben darstellt, mit der position des Spielers. Da klappt soweit auch ganz gut, doch muss dieses Bild noch irgendwie dargestellt werden. Der Spieler hat eine eigene Kamera, die die Hauptkamera darstellt. Die 2. Kamera, soll nun links unten im Canvas dargestellt werden. Ist das möglich? Ich habe nichts gefunden, wie ich das kleine Bild der 2. Kamera da hin bekomme. Danke für die Hilfe
  14. Hi Leute, ich habe damals einen Tipp bekommen, wie man Level durch Speicherpunkte speichern kann. Ich benötige das gleiche gerade für ein 3D-Projekt, in Unity. Ich habe ein Script, dass ich an ein Objekt in der Scene vergebe, wodurch ein "SavePoint" generiert, bzw. überschrieben wird. Diesen möchte ich nun über ein TriggerObjekt abrufen. Wenn etwas dieses TriggerObjekt berührt, wird entweder eine vorgegebene Szene geladen oder wenn die Szene einen geringeren Wert als "SavePoint" hat, der jeweilige höchste "SavePoint" geladen. Ich zeige das einmal anhand der Scripte: using UnityEngine; using System.Collections; public class Load_Savepoint : MonoBehaviour{ [SerializeField] private int level; void Start() { var lastSavedLevel = PlayerPrefs.GetInt("savepoint"); if(level > lastSavedLevel) { PlayerPrefs.SetInt("savepoint", level); } } } Dieses Script erstellt einen "SavePoint" oder überschreibt den vorherigen. Er bekommt einen Wert, den ich gleichsetze, mit der Reihenfolge der Scenen im Build. Also Scene 1, bekommt den Wert 1. using UnityEngine; using System.Collections; public class LoadSavepointOrLevel : MonoBehaviour { public string levelSelect; void OnTriggerEnter(Collider other) { Application.LoadLevel(PlayerPrefs.GetInt("savepoint")); } [SerializeField] private int level; void Start() { var lastSavedLevel = PlayerPrefs.GetInt("savepoint"); if(level > lastSavedLevel) { Application.LoadLevel(levelSelect); } } } Dieses Script, ist an das TriggerObjekt gebunden. Wird OnTriggerEnter ausgelöst, läd die vorgegebene Szene (levelSelect) oder halt der SavePoint, sollte dieser einen höheren Wert haben. Das Problem, es funktioniert nicht richtig. Es wird immer die 4. Scene im Build geladen, obwohl diese nichtmal einen "SavePoint" hat. Sieht jemand den Fehler? Bin noch ein ziemlicher Anfänger Danke für die Hilfe
  15. Dankeschön, dass kannte ich nicht nicht so. Jetzt hat das mit dem Sprinten einwandfrei geklappt. Ich habe das jetzt genau wie beschreiben gemacht: if(Input.GetButton ("Sprint")) //nicht GetButtonDown { sprinting = true; } else { sprinting = false; } Das Ducken habe ich jetzt schon alleine herausgefunden. War eigentlich sogar ziemlich unkompliziert. if(Input.GetButton ("Sneak")) { controller = GetComponent<CharacterController>(); controller.height = 0.5F; } Für die Nachwelt Vielen Dank für die Hilfe