Jump to content
Unity Insider Forum

Alex88

Members
  • Content count

    69
  • Joined

  • Last visited

  • Days Won

    1

Alex88 last won the day on June 27 2012

Alex88 had the most liked content!

Community Reputation

4 Neutral

About Alex88

  • Rank
    Advanced Member
  • Birthday 07/11/1988

Profile Information

  • Gender
    Male
  • Location
    Mainz
  1. Hmm, die Unreal Engine läuft jetzt auch nativ mit HTML 5, WebGL und Java Script ohne zusätzliches Plugin, oder Flash im Browser. Nicht schlecht. --> http://www.golem.de/news/html5-unreal-engine-laeuft-nativ-im-browser-1303-98432.html

    1. HortusLongus

      HortusLongus

      Jepp, das geht recht gut.

      Vielleicht schmeißt Unity seinen Player in absehbarer Zeit auch weg? :-)

    2. Sascha

      Sascha

      NaCL-Support gibt's ja schon.

      HTML5 wär aber WIRKLICH sexy.

  2. Alex88

    Texturieren für Dummies, 1: Texturen erstellen

    Um die Ränder mit GIMP nahtlos zu machen gibt es noch einen anderen guten Tipp. Wenn man sein gewünschtes Bild soweit vorbereitet hat und an den Rändern arbeiten möchte um sie nahtlos zu machen, geht man auf: [list] [*]Ebene -> Transformation -> Versatz -> den Button "Versatz um (x/2), (y/2)" [/list] Dann sieht man wunderbar wo die Ränder nicht nahtlos sind und man kann sich mit dem Klon-, oder Heilen-Werkzeug an die Arbeit machen. Wenn alles passt, macht man noch mal den "Versatz um (x/2), (y/2)" und man hat wieder sein normales Bild. =)
  3. Oh jeh, diese deutschen Buchverlage kann man echt alle in die Tonne hauen. :-S Die bieten alle nur veraltete Bücher zu horrenden Preisen an. Es wird Zeit, dass so manch einer dieser Verlage mal die Quittung dafür bekommt.

    1. Lars

      Lars

      Denk doch mal an den Entstehungsprozess. So ein Buch muss zu einem neuen Thema erst mal geschrieben, geprüft und dann noch vermarktet werden. Das dauert schon mal ein Jahr. Klar, dass das Thema dann veraltert ist.

  4. So, Unity 4 Pro ist jetzt offiziell erschienen. Es ist zwar die 4.0.0f7, die auch schon am Montag verfügbar war, aber hey, jetzt ist es offiziell! :-) Ich hoffe mal, dass es bald, zumindest von den amerikanischen Verlagen, ein paar gute Unity 4 Bücher geben wird. Wäre ja wirklich mal an der Zeit. :-/

    1. Tiles

      Tiles

      Musst nur eins schreiben ;)

    2. MadLion

      MadLion

      Ich finds schade daß sie keine neue Demo dazugepackt haben, welche auch die neuen Möglichkeiten von 4.0 anwenden.

  5. Alex88

    Elegantere Lösung für meine RTS Kamera

    Eigentlich stören mich nur diese zwei Zeilen: mainCamera.transform.Translate(new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")) * scrollSpeed * Time.deltaTime); mainCamera.transform.position.y = cameraHigh; Ich setze die Bewegung der Kamera über transform.Translate um, muss dann aber quasi manuell die Kamerahöhe wieder zurücksetzen, da sich die Kamera sonst durch die 30 Grad Neigung nach unten bewegen würde. Das empfinde ich halt als unsauber. Mit dem Rest bin ich eigentlich zufrieden.
  6. Alex88

    Elegantere Lösung für meine RTS Kamera

    Hey Sascha, danke für deine Hilfe, aber wirklich viel besser klingt deine Lösung leider auch nicht. Ich habe den Script jetzt mal etwas verfeinert. Jetzt muss noch eine Beschränkung beim Zoomen rein und dass die Kamera sich bei Berührungen des Bildschirmrandes bewegt. Mal gucken ob ich mich mit meiner Lösung doch noch irgendwie anfreunden kann. function FixedUpdate() { var cameraHigh : float = mainCamera.transform.position.y; // Zwischenspeicher fuer die Kamerahoehe mainCamera.transform.Translate(new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")) * scrollSpeed * Time.deltaTime); mainCamera.transform.position.y = cameraHigh; if (Input.GetButton("Fire3")) { mainCamera.transform.Rotate(0, Input.GetAxis("Mouse X") * rotateSpeed * Time.deltaTime, 0, Space.World); } if (Input.GetAxis("Mouse ScrollWheel")) { mainCamera.transform.Translate(new Vector3(0, 0, Input.GetAxis("Mouse ScrollWheel")) * zoomSpeed * Time.deltaTime); cameraHigh = mainCamera.transform.position.y; // Neue Kamerahoehe zwischenspeichern } }
  7. Hallo zusammen, ich arbeite im Moment an einer Echtzeit-Strategie-Spiel Kamera wie z.B. bei C&C. Im Moment stehe ich allerdings noch ganz am Anfang und versuche folgendes um zu setzen: Mit den Pfeiltasten oder WASD soll sich die Kamera vorwärts, rückwärts, links und rechts bewegen lassen. Bei gedrückter mittlerer Maustaste soll man die Kamera um sich selber drehen können. Da die Kamera allerdings nicht gerade von oben auf das Geschehen drauf schaut, sonder im 30 Grad Winkel ist, fällt es mir etwas schwer, dass die Kamera sich nicht in Blickrichtung, sondern in die Drehrichtung bewegt. Ich habe das ganze wie folgt gelöst und obwohl es zwar funktioniert, bin ich mit der Lösung noch nicht glücklich. Habt ihr ein paar Tipps für mich? function FixedUpdate() { mainCamera.transform.Translate(new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")) * scrollSpeed * Time.deltaTime); mainCamera.transform.position.y = 5; if (Input.GetButton("Fire3")) { //mainCamera.transform.eulerAngles.y += Input.GetAxis("Mouse X") * rotateSpeed * Time.deltaTime; mainCamera.transform.Rotate(0, Input.GetAxis("Mouse X") * rotateSpeed * Time.deltaTime, 0, Space.World); } } P.S. Welche Form ist bei der Rotation mit der mittleren Maustaste eleganter?
  8. Hi, als erste möchte ich mich bei euch beiden bedanken. Ihr liegt nämlich beide richtig! @Kevin: "targetTemp" war wirklich vom Typ Transform und nachdem ich jetzt mal alles auf Vector3 umgeschrieben habe, klappt es auch wie gedacht. Das Transform mit "by-Reference" übergeben wird, wusste ich leider nicht. Mit dem Hintergrundwissen kann ich den entstandenen Fehler dann auch nachvollziehen. @malzbie: Mit der Position hast du auch Recht, da muss ich noch eine Toleranz hinzufügen, damit es so klappt wie ich das geplant habe. Meine Schreibweise basiert übrigens noch auf dem alten C Style. Ich setze meine Klammern bei Funktionen z.B. nicht in die gleiche Zeile wie den Name der Funktion, sondern in die Zeile darunter. Genauso lasse ich bei if/else Anweisungen die nur eine Befehlszeile haben, die { } weg. Ich glaube das meintest du, oder?
  9. Hallo zusammen, ich muss doch noch mal wegen meiner KI nerven. Ich habe vor die Logik meiner KI so um zu setzen, dass wenn der Spieler in der Nähe ist, und die Funktion Attack() aufgerufen wird, dass die KI prüft ob sie den Spieler sieht und wenn ja, dass sie die Position des Spielers dann in der Variable targetTemp zwischenspeichert und auf das Ziel zu läuft. Wenn der Spieler nicht mehr in Sicht ist, soll targetTemp nicht mehr aktuallisiert werden, die KI zu dem Punkt laufen und dort stehen bleiben. Jetzt habe ich aber das Problem, dass targetTemp immer aktualisiert wird, auch wenn die KI den Spieler gar nicht sieht. Die if Abfrage mit "if (hit.collider.tag == "Player")" funktioniert allerdings, denn wenn ich dort ein print Befehl mit einfüge und mir die Angaben in der Console anschaue, hört der print Befehl auf, wenn die KI den Spieler nicht mehr sieht. Warum wird dann targetTemp immer aktualisiert? // Raycast auf den Spieler // ----------------------- var hit : RaycastHit; var rayDirection = target.position - transform.position; if (Physics.Raycast(transform.position, rayDirection, hit, 200)) { Debug.DrawLine(transform.position, hit.point, Color.green); if (hit.collider.tag == "Player") targetTemp = target; // Position des Spielers zwischenspeichern print("Temp X: " + targetTemp.position.x + " Temp Y: " + targetTemp.position.y + " Temp Z: " + targetTemp.position.z); if (targetTemp != null && transform.position != targetTemp.position) { // Zombie zum Spieler drehen // ------------------------- var rotateDirection = targetTemp.position - transform.position; rotateDirection.y = 0; var lookAtTarget = Quaternion.LookRotation(rotateDirection); transform.rotation = Quaternion.Slerp(transform.rotation, lookAtTarget, Time.deltaTime * rotateSpeed); moveDirection = transform.TransformDirection(Vector3.forward * walkSpeed); } else moveDirection = Vector3.zero; }
  10. Hallo zusammen, derzeit läuft seitens Unity Technologies für die Pro User eine Umfrage zu dem aktuellen Lizenzmodell von Unity, bzw. wie man es ändern könnte. Folgende Möglichkeiten stehen zur Auswahl: Ich bin mal gespannt, welches Ergebnis dabei herauskommt. P.S. Ich persönlich bin ganz klar für Möglichkeit 1 oder 2 und habe das so in der Umfrage auch zum Ausdruck gebracht.
  11. Alex88

    Kopierschutz

    Das ist wirklich keine leichte Frage, denn gerade wenn man selber ein Game Designer ist, steht man da leicht in einem Interessenskonflikt. Ich persönlich bin auf jeden Fall kein Freund von einem Kopierschutz, der die ehrlichen Käufer einschränkt. Grundsätzlich würde ich mein Spiel allerdings schon mit einem Kopierschutz versehen, um einfach das Gesetz, dass man in Deutschland keinen Kopierschutz umgehen darf, auf meiner Seite zu haben. D.h. ein einfacher Kopierschutz für optische Datenträger und eine Seriennummer wären von meiner Seite schon okay. Ob die Seriennummer jetzt online überprüft werden soll, da bin ich mir persönlich auch noch uneinig. Als Käufer würde ich klar sagen NEIN! Als Entwickler, na ja, ist eine verlockende Möglichkeit. Ich habe mal in irgendeinem Interview eines Entwicklerstudios gelesen, dass sie ihr Spiel absichtlich ohne Kopierschutz verkauft haben, da dadurch sogar die Verkaufszahlen gestiegen sind.
  12. Ich danke euch beiden für die schnelle Hilfe. Dann war ich mit meinem Versuch ja gar nicht so weit weg von der Lösung.
  13. Hallo zusammen, ich arbeite im Moment an der KI für mein Spiel und eigentlich funktioniert es auch gar nicht so schlecht, allerdings habe ich jetzt doch mal eine Frage. Nach den üblichen if / else Anweisungen wie z.B. ob der Spieler in der Nähe ist, soll sich die KI in Richtung Spieler drehen. Das habe ich mit folgenden Scriptzeilen umgesetzt: var target : Transform; var rotateSpeed : float = 30.0; ... // KI zum Spieler drehen // --------------------- var lookAtTarget = Quaternion.LookRotation(target.position - transform.position); transform.rotation = Quaternion.Slerp(transform.rotation, lookAtTarget, Time.deltaTime * rotateSpeed); Das klappt soweit auch wunderbar, nur dreht sich die KI auch auf der X und Z Achse, z.B. wenn der Spieler in ein Loch fällt, komplett mit. Das soll sie natürlich nicht machen. Ich habe zwar schon in der Script Reference geschaut, da ich mich mit Quaternions allerdings nicht gut auskenne, komme ich leider nicht weiter. Wie könnte ich die zwei Achsen quasi blockieren? Bei normalen Rotationen wie transform.Rotate oder transform.eulerAngles wäre das ja einfach. P.S. Sorry wegen dem Titel, habe mich bei der Achse verschrieben!
  14. Alex88

    [C#] Objekte einsammeln?

    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 } } } //------------------------------------------------------------------------------
  15. Alex88

    Raycast zeigt immer auf die gleiche Stelle

    Also Collider hatte ich den Boxen natürlich schon gegeben, aber sie waren wirklich minimal zu klein und daher ist der Stahl knapp darüber gegangen. Ich habe es auch noch mal ohne die if Anweisung probiert und da funktioniert es jetzt auch. Wenn der Stahl keinen Collider findet, sieht es wieder so aus, wie auf dem Bild oben. Danke für die Hilfe!
×