Jump to content
Unity Insider Forum

feivel3333

Members
  • Posts

    7
  • Joined

  • Last visited

  • Days Won

    1

feivel3333 last won the day on April 9 2020

feivel3333 had the most liked content!

About feivel3333

  • Birthday 03/18/1967

Profile Information

  • Gender
    Male
  • Location
    Brühl/NRW
  • Interests
    Unity, Blender

Recent Profile Visitors

873 profile views

feivel3333's Achievements

Newbie

Newbie (1/3)

1

Reputation

  1. Hallo zusammen, da ich parallel auf einem Windows- und auf einem Mac-Rechner arbeiten will aber das selbe Projekt bearbeiten möchte, kam mir gestern die Idee, das gesamte Projekt auf dem Windows-Rechner per WinRAR zu komprimieren und auf dem Mac wieder zu extrahieren. Bitte schlagt mir nicht vor, das irgendwie über GitHub zu machen, so weit bin ich noch nicht, damit kenne ich mich noch nicht aus. Da keine Fehlermeldung beim Öffnen des Projekts auf Unity auf dem Mac auftrat, freute ich mich zunächst. Doch nach dem ersten Start kam die Ernüchterung: Ich hatte eine Routine geschrieben, die Schaltflächen und Texte in die jeweils gewünschte Sprache übersetzt. Darin nutze ich Strings, die mit entsprechenden Texten initialisiert werden. Doch die Texte wurden verstümmelt. Aus Umlauten wurden kleine Quadrate. Die deutschen Texte waren somit nicht mehr wirklich gut lesbar. Nun kam mir die Idee, in den Texten des Quellcodes auf dem Windows-Rechner die Umlaute gegen Char-Variablen zu tauschen, die ich zuvor nicht direkt mit Text, sondern mit z.B. var uml_ae = (char)225; initialisiere. Bei einigen Zeichen, die ich nicht brauchen kann, funktioniert das, aber nicht mit Umlauten. Da erscheinen dann wieder Quadrate statt Buchstaben. Selbst auf dem Windows-Rechner. Mein Ziel: Nicht: var uml_ae = "ä"; Sondern: var uml_ae = (char)nnn; (wobei nnn dann den Ascii-Code für z.B. "ä" enthält). Ich wollte die Texte dann zusammenstückeln. Beispieltext: Aus "Für dich" wird dann "F" + uml_ue + "r dich". Doch es funktioniert nicht. Vermutlich ist (char)nnn nicht der richtige Weg. Ich suche nun schon seit ein paar Stunden im Netz (ach was, das ist untertrieben, es sind eigentlich schon Tage), doch ich habe gerade kapituliert. Ich finde nicht die richtige Lösung. Weiß jemand, wie ich das lösen kann? LG. André
  2. Hallo Malzbie, vielen Dank für die Hilfe. Ich werde mir gleich mal die 2022.1 laden, da soll es angeblich funktionieren. Ansonsten muss ich wohl zu einer älteren Version zurück. Ciao.
  3. Hallo zusammen, auf meinem MacBook ist die neueste Betriebssystemversion installiert (soeben aktualisiert, aber der Fehler ist nicht beseitigt). Ich arbeite mit Unity 2021.2.0f1, also auch der neuesten Version. Ich arbeite nicht auf einer externen Tastatur (auch dies ändert nichts am Fehlerbild). Und es passiert folgendes: Sobald ich im Unity in der Benutzeroberfläche (also nicht im Quellcode-Editor) Text eingebe - z.B. für den Namen eines Game-Objekts oder Text für ein Text-Objekt, dann erscheint der erste eingegebene Buchstabe nicht auf dem Bildschirm. Erst wenn ich den nächsten Buchstaben eingebe, erscheint der zuerst eingegebene. Das macht das Schreiben natürlich extrem schwierig. Wenn ich einen Buchstaben ersetzen möchte und mit der Maus auf die betroffene Stelle klicke, reagiert Unity nicht. Erst wenn ich das zweite Mal dahin klicke, erscheint ein Cursor. Und dann zeigt sich wieder das soeben beschriebene Bild der verzögert auftauchenden Buchstaben. Unter Windows läuft diese Unity-Version einwandfrei. Allerdings will ich für ein iPhone programmieren, und somit ist das Arbeiten auf dem Windows-Rechner nicht die Lösung. Ich habe den Rechner bereits komplett neu gestartet, alle Updates gefahren, Unity neu aufgerufen, doch das Phänomen bleibt. Ist jemandem dieser Fehler bekannt? Wenn ja, was habt ihr oder was hast du dagegen getan? Ich will nun Unity nicht runterlöschen und neu installieren. Ich hatte es gerade erst vor einem Tag neu installiert. Hoffentlich stehe ich nicht allein mit diesem Phänomen da. Grüße aus Brühl, André
  4. Hallo zusammen, generell meine ich zu wissen, wo ich Variablen deklarieren soll. Wird die Variable nur in einer Methode gebraucht, dann dort, ansonsten, wenn sie klassenintern aber methodenübergreifend gebraucht wird, oben im Kopf der Klasse. Jetzt ist es bei mir im Kopf aber so eine Performance-Frage: Wenn ich beispielsweise in Update() eine Variable deklariere, dann wird sie jedes Mal erzeugt, wenn Update() ausgeführt wird - und das ist ja nicht selten. Je nach Geschwindigkeit pro Sekunde 50 mal und aufwärts. Sie wird erzeugt, benutzt und wieder gelöscht. Das Ganze dauert Zeit. Nun kam mir die Idee, die Variable als Klassenvariable zu deklarieren (die heißen dort oben sicher irgendwie anders, ich meine Membervariable oder ähnlich). Egal, ihr wisst sicher, was ich meine. Die Konsequenz ist natürlich, dass die Variablen dann von jeder Methode manipuliert werden können. Das ist mir bewusst, aber wenn man beim Programmieren aufpasst, sollte da nichts passieren. Die Frage ist: Macht das performancemäßig spürbar was aus? Sie bräuchten dann nicht bei jedem Durchlauf von Update() oder sonstigen Methoden angelegt und wieder gelöscht werden. Der interne Verwaltungsaufwand würde wegfallen. Danke für eure Tipps schon mal im Voraus. André
  5. Hallo zusammen, seit ein paar Tagen habe ich ein neues Notebook im Einsatz. Es ist frisch mit Windows 10 1909 vorbereitet. Anschließend installierte ich Unity 2020 beta mit Visual Studio 2019. Dieselbe Konstellation habe ich auch auf meinem alten Notebook laufen. Dort funktioniert es einwandfrei. Auf dem neuen Notebook lief die Installation auch einwandfrei durch, doch als ich das erste Mal mit VS arbeiten wollte, stellte ich fest, dass Intellisense nicht oder nur sehr unzuverlässig arbeitet. Manchmal kommen Vorschläge, dann aber nicht vollständig. Beispielsweise schreibe ich "float timer = Time" und setze einen Punkt, in Erwartung, nun unter anderem deltaTime vorgeschlagen zu bekommen, aber VS macht plötzlich aus "Time" "timer". "Time" kennt es nicht. Es handelt sich um ein ganz frisch erstelltes C#-Script, in dem ich sonst noch nicht viel geschrieben habe. Zum Vergleich habe ich dasselbe Script auf dem alten Notebook bearbeitet, dort funktioniert es einwandfrei. Nun wird jeder sagen: Nimm doch das Alte. Aber warum habe ich dann ein doppelt so schnelles, neues? Ich habe im Internet mehrere Stunden mit suchen verbracht, aber immer nur dieselben Vorschläge bekommen. "Sieh mal in den Optionen nach, da müssen die Haken XY gesetzt werden", "Installiere VS neu", "Starte VS oder den Rechner neu". Ich bin mittlerweile alle Tipps durch, die man dort findet. Keiner hat geholfen. Ich habe auch schon einen Wechsel auf VS 2017 hinter mir, da passiert dasselbe. Auch hier kommen keine Vorschläge. Dann habe ich vom alten Rechner die Konfiguration über EXTRAS -> Einstellungen importieren/exportieren... ausgelesen und mit einem Stick auf dem neuen Notebook wieder importiert. Hilft auch nicht. In meiner Verzweiflung wollte ich auf Monodevelop zurück, aber das ist mir nicht wirklich gelungen. Läuft irgendwie nicht. Soll auch nicht mehr unterstützt werden, las ich. Da dieses Thema ziemlich häufig im Internet auftaucht, aber nie richtig geklärt wird oder wurde, hoffe ich, dass hier im Forum jemand den goldenen Tipp auf Lager hat. Bringt es vielleicht etwas, den kompletten Programmpfad vom funktionierenden Rechner auf den neuen zu kopieren? Irgendwo muss doch diese nicht funktionierende "Logik" sitzen. Bitte gebt mir einen helfenden Tipp. Danke und Grüße aus Brühl, André Es ließ mir ja keine Ruhe, also suchte ich weiter und fand hier einen Lichtschimmer: https://stackoverflow.com/questions/59823422/vs-code-intellisense-not-working-for-unity3d Da steht, man soll in Unity auf Edit -> Preferences -> External Tools -> dort bei "Generate all .csproj files" einen Haken reinsetzen. Danach habe ich VS noch mal neu gestartet. Und siehe da: Es funktioniert.
  6. Hallo zusammen, als ehemaliger Delphi-Programmierer war ich es gewohnt, irgendwo an zentraler Stelle auf meiner Festplatte (z.B. Auf C:/Unity2020/AllgProz.cs) eine allgemeine, zentrale Funktions- und Prozedurensammlung zu erstellen, auf die ich von jedem Projekt aus zugreifen kann. Ich weiß, die Dinger heißen nun nicht mehr Funktion und Prozedur, aber das kann ich ja entsprechend umbenennen in Void etc. Nun fehlt mir aber jeglicher Anhaltspunkt, wie man so etwas macht. Muss ich ein C# Script erstellen, in dem ich eine Klasse definiere, innerhalb der ich wiederum public void, public int etc. Ablege? So war mein erster Gedanke. Doch wie greife ich von einem Projekt darauf zu? Mein Wunsch ist es, über "using AllgProz" diese Sammlung direkt in mein Projekt mit einzubinden. Bei Delphi musste man lediglich einen Pfad im Projekt angeben, über den der Compiler wusste, wo er die Datei(en) findet, die ich mit einbinden will. Geht so was auch bei Unity? In den Lehrbüchern, die ich bisher gelesen habe, stand leider nichts darüber. Im Forum habe ich auch noch nichts gefunden. Über ein paar Tipps wäre ich sehr glücklich und dankbar. Grüße aus Brühl, André
×
×
  • Create New...