Jump to content
Unity Insider Forum

Ron Dragor

Members
  • Content count

    131
  • Joined

  • Last visited

Community Reputation

8 Neutral

About Ron Dragor

  • Rank
    Advanced Member
  • Birthday 10/11/1975

Contact Methods

  • Website URL
    http://www.mysteria-arts.de

Profile Information

  • Gender
    Male
  • Location
    Freiburg
  1. Ron Dragor

    Hilfe! Auto zum bewegen kriegen!

    Vielleicht solltest Du Dich erst mal mit den Grundlegenden Dingen beschäftigen. Mach Dir mal ein "Playground" Projekt. Dann kannst Du "rumspielen". Mach Dir ein Terrain und ein paar Würfel und Kugeln. Setze Ridgid Bodys drauf. Dann programmierst Du auf einem Würfel mal eine einfache Steuerung. Vielleicht noch ein Force auf die Leertaste, dann kannst Du springen. Jetzt kannst Du mit der MAsse, ect. runspielen, um die Physik-Engine zu verstehen. Als nächstes nimmst Du Dir das Car-Asset und übst mal. Wenn man dann mit der Cam rumschauen können soll, kannst Du das über die Maus, oder Tastatur einbinden. Es liest sich zumindest, do, als hättest Du noch nicht viel bis gar nix mit Unity gemacht. Um Dir unnötige Frustration zu ersparen, empfehle ich Dir erst zu lernen und zu üben, bevor Du an ein Rennspiel gehst. Da man Sicher nicht allein fahren soll, wäre der nächste Schritt eine anständige KI, die die gegnerischen Wagen steuert. In Unity, oben in der Menüleiste: Assets ---> Import Package ---> Vehicles
  2. Also ich arbeite gerade an einem Android-Spiel. Derzeit mach ich alles allein. Ich arbeite hobbymäßig seit etwa 10 Jahren mit MAYA und mit PS noch länger. Vor etwa 2 Jahren hab ich mit JavaScript und Unity angefangen. Bin aber nach 3 Wochen auf C# umgestiegen. Nur mal zum sagen: Nach 10 Jahren beherrsche ich vielleicht 2000 der über 22000 Funktionen von MAYA. Ich hab mal in nem Forum gelesen: "Ich hab seit 3 Wochen MAYA. Kann mir jemand sagen, wo ich damit Geld verdienen kann?" Ich hab mich halb tot gelacht! Was zum Spiele-Entwickeln noch dazu kommt, SEHR oft aber unterschätzt wird, ist eben das ENTWICKELN. Eine Idee macht noch kein Spiel. Ich hab z.B. die GUI öfters mal wieder geändert. Genau, wie das Menue. Dann entscheidet man sich für eine Steuerung und programmiert die. Später kommt man entweder auf eine bessere Lösung, oder es kommt etwas hinzu. Schon muss man die Scripte umschreiben. Sowas braucht auch seine Zeit. Mein längstes Script ist für die meisten Berechungen zuständig. Das wird immer wieder erweitert. Ist ja relativ einfach. Aber wenn das Spiel komplexer wird, kann es sein, dass man merkt, dass z.B. die Steuerung nicht mehr ausreicht, oder gar ungeeignet wird. Dann heisst es umschreiben. Manche Codes ausm Netz enthalten eh Fehler. Die hab ich am Anfang benutzt. Als ich gemerkt hab, dass ich die Fehlersuche selbst und erfolgreich abschliessen konnte, und die Scripte zum Laufen brachte, wusste ich, ich habs verstanden. Jemand, der nur abschreibt, würde einen Fehler in einem 3500 Zeilen-Script wahrscheinlich nicht finden. Vor allem, weil Unity manchmal mehrere Fehlermaldungen ausgibt, dabei war es vielleicht "nur" ein falsch gesetztwa Zeichen. Ein "}" vergessen, oder zuviel, gibt oft mehr, als nur ein Parsing-Fehler. Ich bin Chemikant und hab mir alles "lerning-by-doing" selbst beigebracht. Sicher kann ich nach 2 Jahren nicht so viel, wie ein studierter. Deshalb studiert man ja. Aber, was ich erreichen will, schaffe ich auch. Dauert halt länger, als bei einem Programmierer. Mein Code sieht auch nicht nicht so schön aus. Aber das ist mir relativ egal. Ich lege mehr Wert auf die Optik, Steuerung und Spielfluss. "Ich mach eine Kugel und 20 Texturen. Dann hab ich 20 Kugeln." Sieht aber billig aus. Eine innovaive Steuerung und Menüführung finde ich auch besser, als immer nur "Standard". Was ich damit sagen will: Prinzipiell kann jeder Spiele entwickeln. Eben ENTWICKELN. Mal eben schnell ein Spiel machen? Dann kritzel lieber ein Daumenkino. Nach 3D/2D, Scripten und Level zusammenbauen, ect. kommt noch das VERMARKTEN! Wenn Spiele-Entwickeln soooo einfach wäre, würde ja jeder machen.
  3. Hi, Leute! Kennt das jemand? Ich habe eine Button "Spiel beenden" beim Klick erscheint meine Frage: "Spiel wirklich beenden?" und 2 Buttons. "Ja" und "Nein". Beim klicken auf "Nein" Schliesst sich das Fenster einfach wieder. Beim klicken auf Ja wird nur der Befehl "Application.Quit" ausgeführt. Funktioniert alles soweit. Nach dem Kompilieren erscheint nach dem Beenden auf dem Smartphone die Meldung: "Balancing Ball angehalten". Das ist eine Meldung vom Android. Doch warum erscheint die?
  4. Ron Dragor

    Android Game installieren

    hab ich mal kurz reingeschaut. könnte gehen, wenn ichs für mich ändern kann. so kann ich das nicht brauchen. Selbst über Unity einen Installer machen, geht wohl eher nicht? Ein anderer Gedanke wären Gutscheincodes im PlayStore. Wenn ich da Gutscheincodes generiere und die rausgebe, sind die da nur einmal verwendbar und an den jeweiligen Playstore Account gebunden, oder nicht? Nächste Möglichkeit, über die ich nachgedacht habe ist, eine Trial-Version beim Playstore einzustellen. Als erstes kann man sich bei meinem Server mit einem Account einloggen. Dann ist auf dem Account hinterlegt, ob "Premium", oder nicht. Wenn ja, wird die Vollversoin freigeschaltet. Hat man keinen Account, überspringt man den Login und hat die Trial-Version. Was wäre jetzt sinnvoller/Einfacher?
  5. Ron Dragor

    Android Game installieren

    Also ist es im Prinzip die Google Playstore-App, die das Spiel direkt installiert. Hmmm.... Demnach, wenn ich im Appstore auf "Installieren" klicke, sendet die Website an die Playstore-App einen Link mit dem Befehl: Installiere. Demnach müsste es möglich sein, so einen kleinen Installer zu machen. Es geht um ein ausgewähltes Publikum. Statt der ganzen apk, läd man sich Installer. wenn man den öffnet, muss man sich bei mir einloggen, dann wird das Spiel über meinen Server installiert. Das Ausgewählte Publikum wird das machen. Und jeder andere könnte sich den Installer runterladen, aber ohne Account nichts installieren. und die Freischaltung im Account kommt ja von mir. Ich wiederhole nochmal: Es geht nicht um jedermann, dafür ist der Playstore gut. Es geht um ein Ausgewähltes Publikum, dass einen Account bei mir bekommt und die Freischaltung. Ich will nur natürlich nicht die apk rausgeben, sondern einen Installer, der das Spiel von meinem Server aus auf dem Smartphone installiert. Konkret geht es teilweise um Beta-Tester und um Vorfinanzierung.
  6. Ron Dragor

    Android Game installieren

    Ok. Das mit USB Install ist schön, wenn man Zuhause hockt und am PC suchen kann. Muss aber nicht sein. Wenn ich die APK zum direkten Download anbiete, kann die immer einfach weiter gegeben werden. Ich will das Spiel ja verkaufen. Aber nicht unbedingt an einen Account auf meinem Server binden. Also, auf Google Play kann man es kaufen. Ausgewählte User können es kostenlos über meinen Server installieren. Wenn ich die apk herausgebe, landet sie sehr schnell auf einem Filesharing Portal. da wird auch ein Produktkey nix bringen. Dieses Spiel soll komplett offline, ohne Werbung und ohne InApp-Käufe sein. Gibt es also die Möglichkeit einen apk installer auf meinem Server zu hinterlegen, so dass die apk nicht downgeloaded wird, sondern von meinem Server aus installiert wird. Wenn ich die apk nach Installation löschen lasse, macht auch auch nicht viel Sinn, da sie trotzdem vor Installation weiter gegben werden kann.
  7. Ron Dragor

    Android Game installieren

    Hi, Leute! Weis jemand, wie man ein Spiel auf den eigenen Server zur installation setzen kann? Also, ähnlich, wie beim PlayStore. Ich dachte das so: Jemand erstellt bei mir einen Account und kann das Spiel dann entweder übers Smartphone, oder USB installieren. Also nicht die APK direkt downloaden. Der Sinn dahinter ist, dass ich manchen Usern das Spiel gratis zur Installation frei geben möchte. Klar, kann sich auch jemand anders mit den Accountdaten einloggen und es installieren. Aber das geht überallt. Sowas kann man nicht verhindern. Ich meinte jetzt keine Hacker. Wenn Ich mich bei einen Freund auf dem Smartphone mit meinen Accountdaten einlogge, kann ich es bei ihm intstallieren. Schon hat er es auch gratis. Solange es nicht um InApp-Käufe geht. Bi meinem Spiel gibt es keine InApp-Käufe. Daher wirds auch nicht kompliziert.
  8. Ron Dragor

    UnassignedReferenceException: Funktioniert trotzdem???

    LoadingScreen.gameObject.SetActive(public bool LoadingScreenActive = true;); Das war ein Copy/Paste Fehler. Hatte im Script natürlich: LoadingScreen.gameObject.SetActive(LoadingScreenActive = true); Das Script ist im Projekt auch nur einmal vorhanden. Hab die Zeile jetzt geändert: LoadingScreen.SetActive(true); Es kommt aber immoch die gleiche Fehlermeldung. Ich weis zwar nicht, warum, aber Sascha, Du hattest Recht! Ich habs nochmal kontrolliert und da war tatsächlich ein GameObject mit dem gleichen Script und da wars im Inspector nicht definiert. Daher kam die Meldung. Eigentlich hatte das Script an der Stelle ein 2. Mal nix zu suchen. Ein Script mit dem Namen "Game_Start" braucht man in Regel auch nur einmal. Danke, für eure Hilfe!
  9. Ron Dragor

    UnassignedReferenceException: Funktioniert trotzdem???

    Hi! Danke, für Deinen Denkansatz. An den Inspector hab ich gedacht. Sonst würde es ja nicht funktionieren... Klar, dass ich ein GameObject nicht mit einem Script aktivieren kann, dass auf einem inaktiven Objekt liegt. Das ist logisch und würde ja ebenfalls nicht funktionieren. Ich habe ein leeres GameObject mit dem Namen "Managers". Darunter sind die anderen ManagerObjekte sortiert. Im Object "Settings" liegt das Script. Von da aus greife ich dann auf das deaktivierte Object "LoadingScreen" zu: public GameObject LoadingScreen; LoadingScreen.gameObject.SetActive(true); Wie oben gesagt, ist das seltsame, dass das Script läuft und macht, was es machen soll und auch wie es soll. Trotz der Fehlermeldung. Also kann ich ein deaktiviertes GameObject per Script wieder aktivieren. Würde ja auch anders keinen Sinn machen. Sowas hat man ja öfter. Manchmal macht es Sinn, das ganze GameObject per Trigger abzuschalten, statt nur den Renderer, oder den Collider. Mit destroy ist es halt weg. macht auch nicht immer Sinn. Nur den Renderer abschalten ist in dem Fall nicht sinnvoll, da der LoadingScreen Childs enthält, die auch deaktiviert werden sollen.
  10. Hi, Leute! Ich hab mal wieder ein seltsames Problem und mich schon halbtot gegoogelt. Eine passende Antwort hab ich aber trotzdem nicht gefunden... Hier mal der Codeausschnitt: Zuerst schrieb ich das: public GameObject LoadingScreen; public GameObject Languages; public GameObject LoadSave; public Read_Languages Read_Languages; public Load_Save Load_Save; public string SaveGame1; public string SaveGame2; public string SaveGame3; public string SaveGame4; void Awake() { LoadingScreen.gameObject.SetActive(true); } Funktioniert eigentlich reibungslos. Nur bekomme ich folgende Fehlermeldung: Ok. Dann dachte ich Unity meint nicht das GameObject als solches. Also tauschte ich die Zeile: public GameObject LoadingScreen; gegen: public Transform LoadingScreen; Mit dem gleichen Ergebnis... Dann dachte ich: Unity will eine Variable? Ok. Dann halt mit Variable: public GameObject LoadingScreen; public bool LoadingScreenActive = true; public GameObject Languages; public GameObject LoadSave; public Read_Languages Read_Languages; public Load_Save Load_Save; public string SaveGame1; public string SaveGame2; public string SaveGame3; public string SaveGame4; void Awake() { LoadingScreen.gameObject.SetActive(public bool LoadingScreenActive = true;); } Klar: Gleiches Ergebnis. Oh, Wunder! Hat niemand erwartet! Ok. Erst die gewünschte Variable abfragen? Letztlich versuchte ich das: (Warum einfach, wenns auch umständlich geht...) public Transform LoadingScreen; public bool LoadingScreenActive = true; public GameObject Languages; public GameObject LoadSave; public Read_Languages Read_Languages; public Load_Save Load_Save; public string SaveGame1; public string SaveGame2; public string SaveGame3; public string SaveGame4; void Awake() { LoadingScreenActive = LoadingScreen.gameObject.activeSelf; Debug.Log(LoadingScreen.gameObject.activeSelf); Debug.Log(LoadingScreenActive); if (!LoadingScreenActive) LoadingScreenActive = true; { LoadingScreen.gameObject.SetActive(LoadingScreenActive); Debug.Log(LoadingScreenActive); } } Debug.Log Ausgabe: False False True Habs also jetzt wieder so gesetzt: public GameObject LoadingScreen; public GameObject Languages; public GameObject LoadSave; public Read_Languages Read_Languages; public Load_Save Load_Save; public string SaveGame1; public string SaveGame2; public string SaveGame3; public string SaveGame4; void Awake() { LoadingScreen.gameObject.SetActive(true); } Ich krieg die Fehlermeldung nicht weg. Aber trotzdem funktioniert es so, wie es soll.... Jemand ne Ahnung?
  11. Ron Dragor

    Zugriff auf GPS

    Ok. Danke. Ist mir aber schon ein paar mal aufgefallen das manches Codes in der Doku nicht funktionieren, weil kleinere Fehler drin sind. Ich setz dann einfach das Input.location.Stop() mit auf den "Beenden" Button. Hat super funktioniert mit yield. Danke! Geht das überhaupt aus Unity in der Android App direkt die Koordinaten an Google Maps zu senden? Also, dass sich der Browser automatisch öffnet und die Koordinaten markiert?
  12. Ron Dragor

    Zugriff auf GPS

    Ich hab mir mal den Code zu Testzwecken aus der Unity Documentation kopiert: IEnumerator GPS() { if (!Input.location.isEnabledByUser) return; Input.location.Start(); int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return new WaitForSeconds(1); maxWait--; } if (maxWait < 1) { print("Timed out"); return; } if (Input.location.status == LocationServiceStatus.Failed) { print("Unable to determine device location"); return; } else print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); Input.location.Stop(); } Bei return; bekomme ich folgende Fehlermeldung: Assets/Scripte/Berechnungen.cs(331,13): error CS0126: An object of a type convertible to `bool' is required for the return statement An dieser Stelle wird doch abgefragt, ob das GPS am Gerät eingeschaltet icht, oder nicht?: if (!Input.location.isEnabledByUser) return; Input.location.Start(); Fehlen da nicht auch Klammern: if (!Input.location.isEnabledByUser) { return; Input.location.Start(); }
  13. Ron Dragor

    Zugriff auf GPS

    Vielen Dank. Das schau ich mir mal an.
  14. Hi, Leute! Weis jemand, wie ich in Unity per c# Zugriff auf das GPS bei Android und iOS bekomme? Ich sollte die aktuelle Position als Koordinaten in variablen speichern und anzeigen können. Am Besten mit Google Maps anbindung. Jedoch hab ich kein Pln, wie ich darauf zugreifen kann. Weis das jemand?
  15. Ron Dragor

    Buchstaben aus Textfeld in Array speichern

    Schon klar. Das war ein Verschreiber.
×