Jump to content
Unity Insider Forum

TurTur

Members
  • Content Count

    43
  • Joined

  • Last visited

  • Days Won

    3

TurTur last won the day on February 10

TurTur had the most liked content!

Community Reputation

9 Neutral

About TurTur

  • Rank
    Advanced Member
  • Birthday 12/06/1952

Profile Information

  • Gender
    Male
  • Location
    Niedersachsen, Burgdorf

Recent Profile Visitors

1,389 profile views
  1. Sascha: Das sich Unityobjecte zu boolean casten lassen war mir bis jetzt nicht klar (habe sie als normale Objecte verstanden). Und schon habe ich wieder was dazu gelernt­čÖé Luis: Sorry, wenn ich dich etwas verwirrt haben sollte, aber auch ich lerne noch dazu. ­čÖé Gru├č TurTur
  2. Hallo Luis, da die Standard-Programmiersprache in Unity ist zZt. C# ist, gibt es eigentlich keinen Unterschied . Zu deiner ersten Frage: Nein. Du musst unterscheiden zwischen Referenztyp-Variablen und (ich sage mal) normalen Variablen (int, float, bool, ..). Der Not-Operator "!" kehrt einfach das Bitmuster der Variable um. Bool-Variable == False (alle Bits auf 0) entspricht dem Wert "0", == true (alle bits auf 1) entspricht dem Wert "-1". Bei der Verwendung der If-Abfrage in der Kurzform if(g) mach irgendwas.. wird gepr├╝ft ob der Wert von "g" irgendein Wert ungleich dem mathematischen 0 ist. L├Ąsst sich der Inhalt von "g" als mathematischer Wert interpretieren wird die Bedingung ausgef├╝hrt (wenn er nicht "0" ist). Da auch ein Objektverweis letztlich ein Zahlenwert ist, kann das klappen. Allerdings w├╝rde diese Abfrage auch als "true" ausgewertet werden, wenn der Ojektverweis "g = NULL" enth├Ąlt, da dieser eben nicht dem mathematischen "0" entspricht. Aus diesem Grund wird auch ein if(!g) ich existiere nicht... ausgef├╝hrt, ob jetzt ein g├╝ltiger Objekt- Verweis vorliegt oder als NULL gekennzeichnet ist. Da nur das Bitmuster von "g" umgedreht wird, kann das Ergenis in jeden Fall als Wert ungleich "0" ausgewertet werden In deinem vorletzten Post hast du den Code doch korrekt aufgebaut und am Ende auch die richtige Erkl├Ąrung geschrieben (" ich muss statt !p p == null und statt p p!=null schreiben."). Gru├č TurTur
  3. Hallo Luis, Das Symbol "!" ist in C# der Not-Operator. In Verbindung mit einer Boolschen Variable kann er verwendet werden um den Inhalt der Variable zu invertieren bool boo = false; if(boo) //wird als If(boo==true) ausgewertet mach irgendwas.. if(!boo) //wird als If((Not boo)==true) ausgewertet mach was anderes... Es ist lediglich eine verk├╝rzte Schreibweise. Bei Verweisen (Objecte, Class, ..) geht das nicht, da der Inhalt invertiert werden w├╝rde. In solchen F├Ąllen musst du den Vergleich mit dem "Gleich-Operator" == oder mit dem "Ungleich-Operator" != ausf├╝hren. Gru├č TurTur
  4. Du initialisierst am Anfang deiner Funktion die Variablen 'shipcolor[]' bei jedem Aufruf neu. Dadurch wird nur der zweite Zweig der Bedingungsabfrage ausgef├╝hrt. shipcolor[0] = true; shipcolor[1] = false; Ist diese initialisierung erforderlich, dann packe sie in eine Start-Routine. Wenn du diese Anweisungen aus der Funktion entfernst, sollte es funftionieren. Gruss TurTur
  5. Es ist "leider" der sauberste Weg, das Objekt-File und die erforderlichen Texturen in den Projekt-Asset-Folder zu kopieren (oder dort in einen vorgesehenen Sub-Folder).­čÖé Unity hat sonst keine M├Âglichkeit, die Texturen zu referenzieren. Das kleine Vorschaubild im Importdialog zeigt, ob die Texturen bereits gefunden wurden. Ist es texturiert, nur noch die Materialien exportieren. Ist das Objekt weiss, erstellt man die erforderlichen Materialien in Unity neu. Im Import-Dialog (Material-Reiter) werden unter "Remapped Materials" Material-Slots angezeigt, vor denen der in Blender vergebene Materialname steht. Hier dann die erstellten Materialien reinziehen. Sollte Unity beim Import bereits "Dummy"-Materialien angelegt haben/verwenden, gen├╝gt es auch, diese mit den korrekten Texturen zu f├╝llen.
  6. Der eigentliche Fehler ist, du ver├Ąnderst in der Update-Routine den Wert f├╝r "index" direkt nach dem Aufruf der Coroutine, was dazu f├╝hrt, das nach dem ersten Zeichen (aus der gew├╝nschten Zeile/Feldelement) die restliche Zeichenfolge aus der folgenden Zeile/Feldelement extrahiert wird. Beim Start der Coroutine wird diese bis zur Yield-Anweisung ausgef├╝hrt und dann die Anweisung "index ++" in der Update-Routine. Eine M├Âglichkeit w├Ąre in der Update-Routine "indes ++;" vor dem Aufruf der Coroutine zu setzen. Dann m├╝sstest du "index" allerdings mit -1 initialisieren. Oder du pufferst den Inhalt aus "Sentences[index]" in eine lokale Variable (innerhalb der Coroutine) und greifst in der Schleife darauf zu. Gru├č Turtur
  7. Ein gravierender Unterschied ist bei der Zuweisung an "sentence" zu sehen. In deinem Code sentence += sentences[index].Substring(0,i) und im Video sentence = sentences[index].Substring(0,i); Der Unterschied ist das kleine "+" bei der Zuweisung. In deinem Fall erg├Ąnzt du deine Variable "sentence" immer um die komplette Zeichenfolge die dir die Funktion Substring() liefert, im Beispielvideo wird sie aber ersetzt.
  8. Auch von mir ein herzliches Willkommen und viel Spa├č beim Umsetzen deiner Spieleideen. Gru├č TurTur
  9. Hallo Sascha, Stimmt leider genauso. Die Idee ging auf eine L├Âsung f├╝r ein ScriptableObject zur├╝ck, f├╝r das ein Initialwert eingetragen wird, der dann beim Start (Playmodus) einer "RunTimevariable" zugewiesen wird, mit der M├Âglichkeit der Reinitialisierung. Von Nachteil ist in diesem Fall aber die Tatsache, das diese Runtime-Variable als [NONSERIALIZED] definiert werden muss (aus den von dir genannten Gr├╝nden) und damit leider auch nicht im Inspector zu sehen ist. Und da ich vermute das Haegar Daten auch im Inspector eingeben will, ist die einfachste wohl auch die beste L├Âsung . Gru├č TurTur
  10. Es wird zwar richtig initialisiert, l├Ąsst sich im Editor aber nicht mehr ├Ąndern. Sorry
  11. Hi Haegar, der Hinweis von Sascha auf " ISerializationCallbackReceiver " hat mich auf eine Idee gebracht, die ich mal im Zusammenhang mit ScriptableObjects gefunden habe. Dort wird das "OnAfterDeserialize()"-Event verwendet, um Defaultwerte zu pr├╝fen/setzen. [Serializable] public class cGewinnSplit: ISerializationCallbackReceiver { public int Geldgewinn; public int GeldsplitA; public int GeldsplitB; public int GeldSofortAddier; public void OnAfterDeserialize() { Geldgewinn = -1; GeldsplitA = -1; GeldsplitB = -1; GeldSofortAddier = -1; } public void OnBeforeSerialize() { } } F├╝r deinen Anwendungsfall (Array) scheint es zu funktionieren, auch im Editor. Gru├č TurTur
  12. Schau dir mal dieses Tutorial an. K├Ânnte sein, das es deinen Vorstellungen entspricht, sieht richtig gut aus. https://www.youtube.com/watch?v=XhSp8nFLUi4 Gru├č TurTur
  13. Herzlich Willkommen hier im Forum. Gru├č TurTur
  14. TurTur

    LOD

    Hey, zu deiner Frage 2 schau mal hier nach https://answers.unity.com/questions/1470341/what-is-the-meaning-of-active-lod-bias-is-20-dista.html Wenn ich es richtig interpretiere legt dieser Wert fest, in welchem Ma├če ein Objekt detailreicher oder weniger detailreich gerendert wird, wenn diese Objekt sich von der Entfernung her zwischen zwei LOD-Levelgrenzen befindet. Gru├č TurTur Edit: Zu deiner Frage 1 (hat mich jetzt auch mal interessiert) schau mal hier nach https://forum.unity.com/threads/automatic-lod-on-import.238814/ Ist wohl nur eine Frage der Namensgebung der einzelnen Objekte im FBX-File. Gru├č TurTur
×
×
  • Create New...