Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 03/07/2019 in all areas

  1. 1 point
    Guten Abend, leider sind letzte Zeit sehr wenig Experten aktiv hier, √ľber 50% meiner Fragen sind auch unbeantwortet worden ūüė≠ Daher liegts nicht immer an unverst√§ndlichen Fragestellungen. Ich bin selbst noch noob, aber ich schreibe mal wie ich das angehen w√ľrde. Wie Malzbie schon geschrieben hat und du erw√§hnt hast, kannst du jedem Region andere Farbe zuweisen und in einem Container Farben mit entsprechenden Regionnamen, stationierte Truppen und weitere Dinge abspeichern. Mit Raycast kriegst du dann die Farbe raus und durchsuchst den Container zur welchen Region das geh√∂rt. Diese L√∂sung grenzt dich aber stark aus, da du immer noch ein Sprite hast das du nicht manipulieren kannst. Hier w√§re vielleicht die alternative L√∂sung hilfreich. Du erstellst mit 3D-Grafiksuite z.b Blender ein 4eck Polygon, machst das Image als Textur drauf und schneidest einzelne Regionen aus, dann kannst du am Ende noch 3D-Fl√§che daraus extrudieren, damit sie wie echte Erdfl√§chen aussehen und exportierst die Regionen als einzelne Objekte nach Unity. Jetzt kannst du sie manipulieren wie du willst. Du kannst beim ausgew√§hlten Region, andere langsam unsichtbar machen, oder die Grenzen des Regions mit Farben abgrenzen und animieren lassen. Auch Farbe des Regions kann problemlos ge√§ndert werden.
  2. 1 point
    Hi. Also fangen wir mal am Anfang an. Du hast mehrere Regionen, die unterschiedlich aussehen und wahrscheinlich auch unterschiedliche Formen haben, und m√∂chtest mit diesen Regionen interagieren. Also wenn die Maus √ľber einer dieser Regionen ist, soll sie sich einf√§rben, wenn es die Regel zul√§sst. Dieses Problem ist recht leicht zu l√∂sen, denn es gibt die M√∂glichkeit einen Ray von der Camera aus in Richtung Mauszeiger (und dar√ľber hinaus) zu senden. Suche mal in der Unity Scripting Hilfe nach Physics.Raycast. Dieses Beispiel sthet da etwas weiter unten: using UnityEngine; public class ExampleClass : MonoBehaviour { void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, 100)) print("Hit something!"); } } In der Hilfe siehst du auch, dass mit diesem Raycast ganz viel Info zur√ľck kommen kann, die dir bei der Auswertung helfen werden. Der Ansatz, dass du eine Grafik im Untergrund hast, und dar√ľber unsichtbare Objekte f√ľr jede Region ist gut. Denn du musst ja irgendwie Grenzen schaffen. Also solltest du f√ľr jede Region ein 3D Objekt haben, was den Grenzverlauf der Region folgt, also z.B. wie Australien aussieht. Dieses Objekt bekommt einen Meshcollider und liegt genau √ľber der entsprechenden Region. Ob nun dieses Objekt dann eine Farbe annimmt oder ob daf√ľr dann ein Extra Grafikobjekt genutzt wird, ist ne Designfrage. Probiere einfach mal diverse Ans√§tze aus. Ich w√ľrde jetzt nicht den Farbcode des Untergrundes ermitteln wollen um somit zu erkennen auf welcher Region man ist. Das ist viel zu kompliziert und Fehleranf√§llig, denn wer wei√ü ob jedes Pixel in der Region wirklich die gleiche Farbe hat. Kompressionen k√∂nnen da schon mal probleme Verursachen. Was ich nicht so ganz verstehe. Willst du jetzt ein erhabenes3D Spielfeld haben, wo echte Berge zu erkennen sind? Oder ist es flach?

Announcements

Hy, wir programmieren f√ľr dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...