Jump to content
Unity Insider Forum

Cxyda83

Members
  • Content Count

    12
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Cxyda83

  • Rank
    Member
  • Birthday 09/24/1983

Profile Information

  • Gender
    Male
  • Location
    Hamburg
  • Interests
    GameDev, Coding, Sport, lesen

Contact Methods

  • Skype
    yep

Recent Profile Visitors

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

  1. Danke! Hey malzbie ! Dich gibts ja auch noch Ja laut den foreneinträgen ist das schon 4 Jahre her 8[]
  2. Okay das mit der stillen stunde ging doch schneller als gedacht ^^ Hab ich nun verstanden und danke das du meinen gehirnknoten gelöst hast, du hast natürlich recht ! 🙇‍♂️
  3. Okay dann haben wir aneinander vorbei geredet... ich habe mich auf diesen Ansatz bezogen und ihn so verstanden das hier die äußere form nach innen fortgesetzt werden soll. Wenn du Sascha dich auf die erste herangehensweise beziehst hast du natürlich recht Deine "begründung" zu meiner Frage muss ich mir in einer Stillen Stunde nochmal durchlesen... das habe ich grade nicht verstanden Allerdings habe ich vielleicht grade eine Lösung für das problem gefunden 🤔 In meinem kopf macht das grade jedenfalls sinn und klingt vielversprechend ^^' Also im prinzip wie zu anfang nen mittelpunkt finden und in der ersten iteration alle außenpunkte verbinden. In jeder weiteren iteration alle edges teilen und die position aller punkte angleichen Was denkt ihr ?
  4. Offenbar wurde mein hinweis nicht deutlich.. oder ich liege falsch.. glaube ich aber an der stelle nicht Ich hab euch hier mal die "front" und die "Seitenansicht" dargestellt mit markierten punkten zum besseren Verständnis. Ich habe auch eine Mittelachse entlang der größeren ausdehnung eingezeichnet (macht vermutlich am meisten Sinn M1). Sashas blaue linie würde anders herum verlaufen... kann man auch machen aber dann stimmen leider die eingezeichneten triangles nicht. Das macht zwar in der Ansicht sinn, würde aber zu ziemlich verzogenen faces in der anderen ansicht führen ( siehe meine obere darstellung der Fläche ) Hoffe das wurde nun deutlicher Mir wird grade was klar (denke ich) vielleicht kann @Sascha mich da erleuchten 🤔 ist nicht jede 3-dimensionale Fläche eine konkave fläche? Ich meine das kann doch garnicht gehen eine konvexe fläche zu erzeugen oder ? :mindblown: ... Volumenkörper hingegen sind Konvex.. dann hat das was mit der richtung der normalen zutun ? 🤔 ... ich bin verwirrt ^^'
  5. Die Fläche die du zu beschreiben versuchst ist ein 3D Objekt und befindet sich in einem 3D Raum. Was du vermutlich grade im Kopf hast ist ein Volumentkörper. Das ist eine Fläche die einen Raum (volumen) umschließt.
  6. Sicher kann er das Sofern du nen Algorithmus schreiben kannst, der genau das tut. Dein Ansatz das der user die mittellinie definieren muss wird dich denke ich nicht weiter bringen da dir immer 1 Dimension fehlen wird .. du versuchst hier eine Fläche (3D) zu beschreiben, gibst dem Anwender aber nur ein2D tool (linie als mittelachse) um dieses problem zu lösen. Das wird wohl in einigen anwendungsfällen klappen aber gerade bei konkaven flächen auch wieder nicht ausreichend sein ... mit dem Ansatz noch zusätzlich Kontrollpunkte angeben zu lassen kommst du den NURBs die ich dir oben gepostet habe schon ziemlich nahe. Du bist jedenfalls auf dem richtigen weg ! Du hast es immerhin schon von einer 1D lösung (Punkt) zu einer (zumindest theoretischen) 2.5D Lösung (Linie+ kontrollpunkte) geschafft 👍 Übrigens ist deine 'seiten' ansicht deiner oben gezeigten form zwar in etwa richtig, jedoch wirst du ziemlich sicher dein Mesh nicht so gebaut haben wollen .. So wie du es gezeichnet hast macht der stern (vertex oben rechts) zwar sinn aber bedenke das es sich um eine 3Dimensionale form handelt die von der anderen seite keine spitze bildet sondern einfach eine fläche ist der deine edges folgen sollten... andernfalls hast du wieder das problem das du eingangs beschrieben hast .. ¯\_(ツ)_/¯ Viel Glück !
  7. Hallo in die community ! Nach 4 Jahren bin ich wieder da ! ^^Leider mit einem neuen Profil nun Cxyda83 .. früher nur @Cxyda . Leider benutze ich die damals angegebene mail adresse nicht mehr und kann mich beim besten willen nicht mehr an das PW erinnern naja ¯\_(ツ)_/¯ Wahnsinn das ich mich tatsächlich noch an ein paar von euch erinnern kann die mich damals schon begleitet haben ! An dieser stelle DANKE SEHR an @Sascha der damals schon meine (bestimmt) nervigen Fragen beantwortet hat und mir damit quasi den weg zu meinem heutigen, besseren Ich geebnet hat Nun zu mir .. ich arbeite seit knapp 13 Jahren professionell in der GamesBranche .. früher als (Senior) 3D Artist bis ich dann angefangen habe zu coden und dann auch ein Informatik studium nachgeholt habe .. nun bin ich seit knapp 3 Jahren Software Entwickler für Games! ( \m/ ) In meiner freizeit arbeite ich gerne an meist hoffnungslosen spielideen. Da diese meistens als hardcore strategiespiele ausgelegt und tendeziell sehr aufwendig sind ^^ Hier irgendwo in diesem forum ist glaube ich auch noch einer meiner langzeit projekte beworben ... das projekt wurde bis dato mehrfach neu aufgelegt und ist immer noch nicht fertig .. nun gut. Ich hoffe man sieht sich nun (wieder) öfter Gruß, Cxyda
  8. 🤔 ich hab grade wieder mehrere Fragezeichen im kopf ^^' Also dann mal los... erstmal ist es schwer da ne ferndiagnose zu stellen da es an wirklich vielen dingen liegen kann. Aber fangen wir nochmal vorne an .. ehrlich gesagt werde ich nicht 100% schlau aus deinem Screenshot mit den tiles.. für mich sieht es so aus als wären die tiles nicht quadratisch sondern recht eckig oder ? Das einzige voll sichtbare stück scheint ein endstück zu sein und das hat doch auf 3 seiten keine anschluss möglichkeit, sollte da also transparent sein ? Dein code sieht so erstmal gut aus, allerdings könnte sich beim parenten an gameObject.transform ein fehler einschleichen, checke doch mal ob gameObject nicht doch vielleicht skaliert ist? Das (bzw. alle) parent objekte müssen natürlich alle scale = 1/1/1 haben (und sollten am besten auch auf 0/0/0 positioniert sein) damit die Rechnung aufgeht. Ich würde dir raten die tiles mit tile.transform.localPositon = new Vector3(posX, posY, 0); zu positionieren wenn du sie schon einem paren anhängst (sollte aber nicht der grund für das overlap sein) Allerdings kommt mir jetzt gerade beim schreiben dieser Zeile die lösung (glaube ich) für dein Problem ! Checke mal bitte den "Pixel Per Unit" wert deiner Tile grafik ! Die muss natürlich der Pixelgröße entsprechen damit das sprite auch genau 1 unit groß ist ! Also wenn dein Sprite 512x512 pixel groß ist musst du da natürlich auch 512 eintragen (512 pixel entsprechen dann auch genau 1 unit!) Sonst ist die skalierung von 1/1/1 natürlich relativ korrekt aber die tatsächliche größe ist nicht 1 einheit lang und 1 einheit breit! Beste grüße, Cxyda
  9. Ich bin verwirrt 😕 Die schwarze linie in bild 1 und 2 ist korrekt und du fragst dich wieso dein mesh (blau) so seltsam erzeugt wird ? Ich schätze das dein Algorithmus einfach so arbeitet.. alle vertices im mittelpunkt zusammen zu führen und dann linear triangulieren. Was willst du denn erreichen ? Das dein mesh (blau) auch im zweiten Bild eine schöne geschwungene fläche bildet ? Das ist auf jedenfall kein triviales problem. Ich kann mir eine reihe von komplexen formen ausdenken, die es jedem Algorithmus extrem schwer machen würden diese Aufgabe zu erfüllen und wenn ich deinen Ansatz richtig deute wirst du es damit auch nicht schaffen konkave formen darzustellen. Mir fällt jetzt aber auf anhieb auch kein Algorithmus ein den ich dir zur Lösung präsentieren könnte aer vielleicht hilft dir das ja weiter https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline
  10. Also ich denke du denkst da zu kompliziert. Das ist garkein problem... mach dir wie schon gesagt 1 Prefab das die standard größe 1 hat (x/y/z = 1/1/1) dann machste dir z.B. ein TileComponent das z.B. die farbe je nach Typ des Tiles zuweist (Wasser = blau usw) dann weist du beim generieren der Tiles dem TileComponent den typ zu z.B. Wasser / Land etc -> Farbe updatet sich dann hast du dir irgendwo aufgeschrrieben land = 2x2 einheiten groß, wasser 5x5 etc... und dann skalierst du das standadisierte ausgangsprefab das 1/1/1 groß ist mit den entsprechenden werten und setzt die position Oder du arbeitest mit Prefabs und nested prefabs ... machst von jedem TileTyp 1 prefab (wie mehrfach schon oben beschrieben) und instanzierst das entsprechende prefab, das schon skaliert ist, und positionierst es danach entsprechend ... eigentlich easy ¯\_(ツ)_/¯ also entweder stehen Sascha und ich auf dem schlauch, oder du 😉
  11. Hi chrische5! Also genau wie Sascha würde ich dir auch erstmal empfehlen das du dafür sorgst das alle deine Prefabs die selbe (zumindest optische größe haben). Wenn du die objekte alle selbst erstellt hast sollte das das kleinste problem sein... einfach alle mal von hand in eine Unity szene droppen und entweder Zusehen das alle auf dem Transform die gleichen Scale werte haben (in der gesamten hierarchie der Objekte sofern es sich um Objekte handelt mit mehreren Unterobjekten) Zusehen das die Objekte wenigstens optisch etwa gleich groß sind. Das wäre die Lösung wenn du nicht selbst die Objekte erstellt hast und / oder alle in unterschiedlichen größen nach Unity importiert wurden. Wenn du die Objekte nun alle auf eine einheitliche größe gebracht hast z.B. scale werte von 1/1/1. Kannst du beim instanzieren getrost darauf verzichten die objekte zu skalieren und musst dich nur noch um die positionierung kümmern (Da alle objekte die skalierung von 1/1/1 haben wären alle zentren der objekte 1 einheit (2D) oder ~1.41 Einheiten (3D) von einander entfernt). Soweit die Theorie.... nun weis ich aus eigener erfahrung das aller Anfang schwer sein kann!! Und vielleicht sollen nicht alle Objekte die selbe blockgröße haben (ist bei Lego ja auch nicht so)... dann wird es natürlich ein wenig komplizierter, aber der schlüssel zur lösung ist das du dir, wie Sascha schon empfohlen hat, die blöcke standardisierst ... d.h. du überlegst dir wie groß dein Grid bzw deine kleinste einheit sein soll (z.B. 1 Einheit) und dann baust du darauf auf .. z.B. hat der nächst größere Block die größe 2/1/1 und der danach 4/1/1 oder wie auch immer. Dann bist du in der lage relativ stressfrei die blöcke im code zu platzieren und musst dir nicht unnötig den kopf über objektgrößen zerbrechen! Sollte dir das wider Erwarten noch nicht geholfen haben oder du trotz unserer ratschläge dennoch die größe programmatisch berechnen willst solltest du dir einmal Renderer.bounds ansehen... vorallem bounds.extends würde dir die tatsächliche ausdehnung eines Objektes geben... dafür müsstest du dir nur vom GameObject die RendererComponent holen: Bounds bounds = myAwesomeGameObject.GetComponent<Renderer>().Bounds; Aber sei gewarnt .. sollten deine objekte aus mehreren unterobjekten bestehen, die nicht ALLE ihre skalierungswerte auf 1/1/1 haben, wirst du Pandoras Büchse öffnen wenn du versuchst dann die größe der Objekte via script zu setzen und ich schätze diesmal wird die Hoffnung nicht in der Büchse bleiben Hoffe wir konnten dir helfen... VG Cxyda
×
×
  • Create New...