Jump to content
Unity Insider Forum
  • 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

Rokks

Members
  • Content count

    152
  • Joined

  • Last visited

  • Days Won

    3

Rokks last won the day on February 15 2015

Rokks had the most liked content!

Community Reputation

5 Neutral

About Rokks

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    Kiel
  • Interests
    Lesen und schreiben (Fantasy)
  1. Volumenberechung / Inhaltsberechnung

    Hätt ich mir denken könne aber wer weiss ... bastelt man sich über Umwegen etwas steht irgendwo geschrieben ... gibt es doch schon ^^ Dann werd ich mir wie beim modularen Zusammenbau von Objekten halt eine weitere Kollisionserkennung hinzubasteln. Etwas vereinfacht als eine allumfassende Volumenberechnung aber das was ich eben brauchen kann. Danke dennoch
  2. Moinsen, wie man den Inhalt eines Raumes in Kubik errechnet ist bekannt. Mich würde jedoch interessieren, ob Unity auch eine modulare Lösung bereithält. In Laufzeit bastle ich mir aus verschiedenen Objekten einen Raum zusammen und möchte bei "fertigstellung" eines geschlossenen Raumes errechnet haben, wieviel Inhalt dieser Raum fassen würde. Bodenplatte mit Größe X + 4 Wände und Decke = was an Inhalt in Kubik Da Unity weiß wie groß meine Objekte von der Fläche her sind, wäre es ein einfaches. Was Unity jedoch nicht weiß ist, wann ist der Raum geschlossen. Es sollen mehrere Räume erzeugt werden können, sodass im Vorfelde nicht ersichtlich sein wird, um wieviele Räume es sich schlussendlich handeln wird. Demach könnte ich mir vorstellen, dass Unity eine Art automatische Inhaltsberechnung mitbringt. Hat jemand einen guten Tip oder hat ähnliches schon gebastelt? LG Rokks
  3. Triggerzone

    Hm, Schade. Danke für die schnelle Info Habe es nun recht Schmal realisiert ... vermute ich mal ^^ Beim eintreffen in den Trigger fülle ich eine Abfragevariable mit dem stehendem Wert des Triggerradius. Da es sich um ein fest zu platzierendes Objekt handelt, arbeite ich mit OnTriggerStay(). Begründung ... der Radius des Triggers ist variabel und kann sich erhöhen wie verringern. Mit Vector3.Distance erhalte ich die tatsächliche Differenzentfernung, dividiere den Triggerradius und setze den erhaltenen Wert *100, um den prozentualen Wert des Körperanteiles zu erhalten, der sich im Bereich des Triggers aufhällt.
  4. Triggerzone

    Moinsen zusammen, ich bendiene mich eines Triggers, welcher mir als "Zone" dienen soll. Mit einem zweiten "Fremd"-Objekt betrete ich diese Zone und löse ein Event aus, so weit so gut. Auf dem Zweitobjekt jedoch möchte ich eine Anzeige "im Inspektor" schaffen, die mir verrät, mit wieviel Prozent dessen Fläche ich die Zone berühre. Standartmässig würde ich beim Entry mittels eines Rays die Mittelposition des Trigges auslesen, die Position des Fremdobjektes dagegensetzen und dessen Fläche hinzuziehen. Ich könnte mir jedoch gut vorstellen, dass es hierfür bereits einen vorgefertigten Ansatz gibt. Kann und mag mir jemand den richtigen Weg weisen? LG Rokks
  5. Kollision beim snappen

    Probiere ich aus, danke
  6. Kollision beim snappen

    Moin Zwr0Cool, inwiefern die Boxcollider der Cubes ein wenig Kleiner machen? In der Physic habe ich die eigentlichen Objekte einander ignorieren lassen, lediglich die "kleinen" Würfel, die als Trigger fungieren sind/sollen für das snapping zuständig sein. Ebenso möchte ich gern dass beide Triggerwürfel einander unabhängig bleiben, denn wenn OBJ1 "zerstört" wird, soll OBJ2 hingegen aktiv bleiben und aufen neuen Gegenpart warten.
  7. Kollision beim snappen

    Moinsen, irgendwo habe ich einen Gedankenfehler. An einem OBJ habe ich 4 Trigger angeheftet, die bei Berührung eines Gegenparts die Position des Parents verschieben (snapping beim positiven event). In der Physic habe ich den entsprechenden Layer deaktiviert, sodass sich die OBJ nicht gegenseitig abstoßen. 50:50 das die OBJ sich wie gewünscht snappen oder das zu snappende OBJ abdampft. Ich habe das Kurzprojekt angehftet. Vielleicht ist jemand von Euch so Lieb und bringt mich auf den richtigen Weg. LG Rokks test_snapping.unitypackage
  8. Altes Thema jedoch sehr Gut Eines Frage habe ich jedoch hierzu ... Wenn ich "runtime" die Sprache von "en" auf "de" umstelle, muss die StringTable ja angewiesen werden die richtige Datei neu zu laden. Gibt es dazu auch eine Lösung? LG Rokks
  9. xmlSerialization Problem

    Hui, das war Einfacher als gedacht Habe lediglich in die Class ein Building () {} hinzugefügt und nu rennt er Danke Allen.
  10. xmlSerialization Problem

    Moin moin zusammen. ich wusle mich gerade ein wenig in xml speichern/laden Funktionen ein und komme über eine möglicherweise ganz banale Hürde nicht hinweg. Mein Skript sucht alle "speicherbaren" Objekte in der Scene und hinterlegt entsprechende Werte in eine list<>. Die dort abgelegten Einträge sollen dann als xml gespeichert werden. Sobald das Skript jedoch an den Punkt des speicherns ankommt gibts den berühmten Finger. Public? Hm, Brille auf und nachgesehen ... hm ... meines Erachtens als Public deklariert. Hat jemand von Euch nen goldenen Tip für mich, kann berichten was ich verkehrt gar vergessen habe? Gruß Rokks using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Xml.Serialization; using System.IO; public class xmlSaveLoad : MonoBehaviour { public string saveName; public YourBase ListObjects; //Liste aller speicherbaren Objekte //Helferlein public GameObject[] bO; //buildingObject void Start() { //nur zu Testzwecken bleibt der Speichername fest deklariert saveName = "save_1"; } void Update () { //Spielstand speichern if(Input.GetKeyDown(GameState.Instance.GetComponent<GameStateKey>().sceneSave)){ //Suche alle speicherbaren Gebäudedaten ... SearchSaveObjcts(); //Speicheraufruf SaveGame(); } } void SearchSaveObjcts() { //Sucht alle Objekte die als "speicherbar" notiert sind und legt diese ab bO = GameObject.FindGameObjectsWithTag("saveableBuilding"); foreach(GameObject obj in bO) { ListObjects.buildingList.Add (new Building(obj.transform.GetComponent<BuildingFacts>().buildingID, obj.transform.position, obj.transform.eulerAngles, obj.transform.GetComponent<BuildingFacts>().buildingActive, obj.transform.GetComponent<BuildingFacts>().buildingBreath, obj.transform.GetComponent<BuildingFacts>().buildingEnergy, obj.transform.GetComponent<BuildingFacts>().buildingConstruction ) ); } } public void SaveGame() { XmlSerializer serializer = new XmlSerializer(typeof(YourBase)); FileStream stream = new FileStream (Application.dataPath + "/Game/Saves/" + saveName + ".xml", FileMode.Create); serializer.Serialize (stream, ListObjects); stream.Close (); } } /* * Einträge für Basenbau */ [system.Serializable] public class Building { public string buildID; public Vector3 position; public Vector3 rotate; public bool active; public int breath; public int energy; public int construct; public Building (string id, Vector3 pos, Vector3 rota, bool on, int air, int ener, int constru) { buildID = id; position = pos; rotate = rota; active = on; breath = air; energy = ener; construct = constru; } } [system.Serializable] public class YourBase { [XmlArray("BuildBuildings")] public List<Building> buildingList = new List<Building>(); }
  11. Trigger / Collider C#

    Super, lieben Dank. Nu hab ich auch den Zusammenhang verstanden
  12. Trigger / Collider C#

    Awake() wird noch vor Start() ausgeführt,soweit habe ich das verstanden. Ist der Unterschied der Variablenzuweisung so drastisch spürbar/messbar? Bei vielen Objekten mit vielen Zugehörigkeiten und Anforderungen könnt ich mir das zumindest schon vorstellen, dass hier mal eine ms dort mal eine ms am ende zu Sekunden führen können.
  13. Trigger / Collider C#

    Bei näherer Überlegen ist da was wahres dran Dank Hrungdak's Anregung, Get-Variablen bereits im Start() zu setzen, spare ich mir nicht nur viel getickere sondern auch einiges an Performance. Hatte mich bereits gewundert, wieso ab und an meine Gizmos und Drawlines verrückt gespielt haben Ich danke.
  14. Trigger / Collider C#

    Okay, das mit dem vorherigen setzen der Variable im Start() leuchtet ein. Sagt OnTriggerStay aber nicht auch aus, dass ein Object im Trigger solange erkannt bleibt,wie er sich in diesem befindet? Wäre OnTriggerExit somit nicht überflüssig?
  15. Trigger / Collider C#

    Moinsen, ich habe ein Testfeld mit 3 x 3 einfachen Cubes. Jedes Cube hat ein separates Triggerfeld an den Seiten "A" bis "D". Ausgenommen der Ober- und Unterseite. Berührungen werden in den Variablen SideA bis SideD mit true/false gesetzt. Um zu überprüfen, an welchen Seiten eine Berührung vorliegt, löst "OnTriggerStay" aus. Angedacht ist, dass ich aus dem Testfeld einfache Cubes entferne und die dadurch nun unberührten Seiten auf "false" gesetzt werden. Lohnt es, an dieser Stelle zusätzlich "OnTriggerExit" anzuführen, oder reicht "OnTriggerStay" vollkommen aus? Es sollen bisweilen keinerlei Cubes neu gesetzt werden können, nur entfernen. public string wallSide; //Welche Triggerseite meldet Kontakt void OnTriggerStay(Collider col) { //Wenn Collider-Layer == 10 (Trigger) if (col.gameObject.layer == 10) { if (wallSide == "A") { //Seite-A -> Seite-C if (!transform.GetComponentInParent<WallState>().WallSiteA && col.gameObject.tag == "WallChild3") { transform.GetComponentInParent<WallState>().WallSiteA = true; } else if (transform.GetComponentInParent<WallState>().WallSiteA && col.gameObject.tag != "WallChild3") { transform.GetComponentInParent<WallState>().WallSiteA = false; } } if (wallSide == "B") { //Seite-B -> Seite-D if (!transform.GetComponentInParent<WallState>().WallSiteB && col.gameObject.tag == "WallChild4") { transform.GetComponentInParent<WallState>().WallSiteB = true; } else if (transform.GetComponentInParent<WallState>().WallSiteB && col.gameObject.tag != "WallChild4") { transform.GetComponentInParent<WallState>().WallSiteB = false; } } if (wallSide == "C") { //Seite-C -> Seite-A if (!transform.GetComponentInParent<WallState>().WallSiteC && col.gameObject.tag == "WallChild1") { transform.GetComponentInParent<WallState>().WallSiteC = true; } else if (transform.GetComponentInParent<WallState>().WallSiteC && col.gameObject.tag != "WallChild1") { transform.GetComponentInParent<WallState>().WallSiteC = false; } } if (wallSide == "D") { //Seite-D -> Seite-B if (!transform.GetComponentInParent<WallState>().WallSiteD && col.gameObject.tag == "WallChild2") { transform.GetComponentInParent<WallState>().WallSiteD = true; } else if (transform.GetComponentInParent<WallState>().WallSiteD && col.gameObject.tag != "WallChild2") { transform.GetComponentInParent<WallState>().WallSiteD = false; } } } } }
×