olaf Geschrieben 9. September 2012 Melden Share Geschrieben 9. September 2012 Hallo! Ich bin gerade dabei einen kleinen Minecraft Clon zu schreiben. Nicht um Notch zu schlagen, sondern weil mich die World Generation interessiert. Jetzt habe ich das Problem, dass ich die Objekte, die aus Zerhackten Blöcken fallen aufsammeln muss, wenn sie in meiner Nähe sind. Wenn jetzt jedes Objekt einen Raycast zum Player senden würde, währe das wohl zu Performancelastig. über die Kollision bekomme ich das ganze nach viel rumprobieren nicht hin Gruß Olaf Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Morenar Geschrieben 9. September 2012 Melden Share Geschrieben 9. September 2012 Versuchs doch mal damit KLICK ^^ ist aufjedenfall ne andere Möglichkeit objecte im umkreis zu finden und mit diesen etwas anstellen, natürlich musst du es etwas an dein Programm anpassen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Alex88 Geschrieben 9. September 2012 Melden Share Geschrieben 9. September 2012 Hi, so habe ich das Problem gelöst. Füge den JavaScript einfach deinem Objekt, das du aufheben möchtest, hinzu und schreibe in die "if (distanceToPlayer < pickupDistanceToObject)" noch was passieren soll, wenn du das Objekt aufgenommen hast (z.B. "Destroy(gameObject);" // GameObjekt loeschen). Du musst im Unity Editor unter "Edit -> Project Settings -> Input" dann noch eine Taste mit dem Namen "Use" definieren und deine Spielfigur muss den Tag "Player" haben. // Variablen // --------- var player : GameObject; var distanceToPlayer : float = 0.0; var pickupDistanceToObject : float = 2.0; //------------------------------------------------------------------------------ function Awake() { player = GameObject.FindWithTag("Player"); // Das GameObjekt "Player" automatisch suchen lassen } //------------------------------------------------------------------------------ function FixedUpdate() { if (Input.GetButton("Use")) { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); if (distanceToPlayer < pickupDistanceToObject) { // Hier kommt hin, was das Objekt bewirken soll } } } //------------------------------------------------------------------------------ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
olaf Geschrieben 9. September 2012 Autor Melden Share Geschrieben 9. September 2012 Vielen Dank! Das klappt ausgezeichnet. Ich habe es natürlich in C# umgesetzt Gruß Olaf Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
olaf Geschrieben 9. September 2012 Autor Melden Share Geschrieben 9. September 2012 Hallo nochmal! Da es sich nicht lohnen würde einen neuen Thread zu eröffnen frage ich einfach hier. Also, ich habe angefangen ein Inventar zu machen, ja, es sieht nicht besonders schön aus Jedenfalls ist es eigentlich 600x400 Pixel breit. Aber wenn ich es in Unity darstelle ist es abgeschnitten und verzerrt (siehe Bilder); Also ich lasse es per Script darstellen: GUILayout.BeginArea(new Rect(Screen.width/2 - InventoryWidth/2, Screen.height/2 - InventoryHeiht/2, InventoryWidth, InventoryHeiht)); GUILayout.Label(inventory); GUILayout.EndArea(); InventoryWidth ist 600 un Height ist 400 Die Textureinstellungen sind: TextureType = Texture Alpha from Grayscale = false Wrap Mode = repeat Filter Mode = Bilinear Aniso Level = 1 Max Size = 1024 Format = Compressed Für Hilfe währe ich sehr dankbar. Gruß Olaf Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Morenar Geschrieben 9. September 2012 Melden Share Geschrieben 9. September 2012 GUILayout.Label(inventory); ist bei dir die Textur? Oder wie kann ich das verstehen? Also dein Script passt eigentlich hast es so geschrieben das es sich in die Mitte positionierst, sehe jetzt da eigentlich nicht das Problem, vielleicht ist ja dein Inventory Texture bild nicht 600x400 oder das andere nicht richtig. Hmm sollte mir was einfallen schreib ichs einfach dazu. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
olaf Geschrieben 9. September 2012 Autor Melden Share Geschrieben 9. September 2012 Danke für die Antwort! Jup, das Label zeigt die Textur an. Ich sehe aber gerade, dass im Unity Editor die Textur als 512x512 RGB... angezeigt wird. Also, wenn man sie in er project folder anklickt. Aber im Ordner, da ist sie 600x400 groß. Kann es sein, dass PNG ein ungünstiges Format für Unity ist? Gruß Olaf Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.