Von VB generierte txt/ini mit JS/C# auslesen.

Es gibt 45 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    Gut also ich habe herausgefunden, das ich das auch mit einem float machen kann um den Sound zu regeln.

    Ich frage mich nur noch wiso Unity meine umgewandelten Werte verwenden kann, allerdings meine Strings einfach Ignoriert.

    Ich hätte eine Notlösung. Mann kann in die Textdatei den Wert der Map zuweisen. Dann ihn in ein float umwandeln und so die richtige Map starten.

    Edit:

    Ok jetzt hab ich das vollens begriffen mit dem String, Float, Integer usw... . Habe in Visual Basic noch nie was umwandeln müssen. ^^

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Tixewi“ ()

    Du probierst aber nicht so etwas:

    Quellcode

    1. Screen.SetResolution(screen_width, screen_height, true);

    wobei screen_width und screen_height String Werte sind?

    Das kann nämlich nicht funktionieren.
    Screen.SetResolution() erwartet als erste beiden Parameter positive, ganze Zahlen (das wäre zumindest sinnvoll).
    Ein String ist aber eine Zeichenfolge, und in der könnte auch "bla" drin stehen, und nicht nur "1366".

    Deshalb muss umgewandelt werden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Ja, das habe ich inzwischen begriffen ich meine nur wiso ich den Wert des Strings nicht in If-Abfragen verwenden kann.

    z.b. die Grafikqualität wird so festgelegt:

    Quellcode

    1. QualitySettings.currentLevel = QualityLevel.Fastest


    Ich frage gerade im Unity forum, ob ich da auch mit Strings arbeiten kann. Falls nicht müsste es nähmlich über If Abfragen zugewiesen werden.

    Also

    Quellcode

    1. if (graphic == "Fastest"){
    2. QualitySettings.currentLevel = QualityLevel.Fastest;
    3. }
    Ok ich hab es jetzt dann auch so gelöst. Das ganze funktioniert, ich hab wieder was dazugelernt und öhm...

    Danke nochmal an alle die mir geholfen haben. ;)

    Zusammenfassung für alle die Nachträglich hier drauf stoßen:

    Finale Lösung (Was wurde in der Textdatei geändert?)

    Spoiler anzeigen

    Die Map wird über die Nummer der Build Settings gestartet. Folglich ist in der Textdatei nun auch nur noch eine Nummer.
    Die Qualität wird über if abfragen zugewiesen, wobei 1 das schlechteste und 6 das beste ist.


    Final Script:

    Spoiler anzeigen

    Quellcode

    1. using UnityEngine;
    2. using System.Collections;
    3. using System.IO;
    4. public class splashscreen : MonoBehaviour {
    5. public float timer = 2f;
    6. public string levelToLoad = "";
    7. public string screen_wide;
    8. public string screen_height;
    9. public string graphic;
    10. public string sound;
    11. public string language;
    12. public string map;
    13. // Use this for initialization
    14. void Start () {
    15. StartCoroutine("DisplayScene");
    16. string Contents = System.IO.File.ReadAllText(System.Environment.CurrentDirectory + "/" + "settings.txt", System.Text.Encoding.Default);
    17. string[] SplittedContents = Contents.Split('\n');
    18. screen_wide = SplittedContents[1];
    19. screen_height = SplittedContents[2];
    20. graphic = SplittedContents[3];
    21. sound = SplittedContents[4];
    22. language = SplittedContents[5];
    23. map = SplittedContents[8];
    24. //Quality
    25. if(int.Parse(graphic) == 1)
    26. QualitySettings.currentLevel = QualityLevel.Fastest;
    27. if(int.Parse(graphic) == 2)
    28. QualitySettings.currentLevel = QualityLevel.Fast;
    29. if(int.Parse(graphic) == 3)
    30. QualitySettings.currentLevel = QualityLevel.Simple;
    31. if(int.Parse(graphic) == 4)
    32. QualitySettings.currentLevel = QualityLevel.Good;
    33. if(int.Parse(graphic) == 5)
    34. QualitySettings.currentLevel = QualityLevel.Fantastic;
    35. if(int.Parse(graphic) == 6)
    36. QualitySettings.currentLevel = QualityLevel.Beautiful;
    37. //Volume
    38. AudioListener.volume = float.Parse(sound);
    39. //Resolution
    40. Screen.SetResolution(int.Parse(screen_wide), int.Parse(screen_height), true);
    41. }
    42. IEnumerator DisplayScene() {
    43. yield return new WaitForSeconds(timer);
    44. Application.LoadLevel(int.Parse(map));
    45. }
    46. }



    Wie muss ich mir die Textdatei vorstellen?:
    Spoiler anzeigen

    //Settings:
    1920
    1080
    6
    50
    deu

    //Game:
    1
    The Neolithic
    Copper Age

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Tixewi“ ()

    Noch zwei Tipps:
    Um unüberschaubaren Code zu vermeiden solltest Du alle Klammern machen.
    Also

    Quellcode

    1. if(...)
    2. {
    3. bla();
    4. }
    5. if(...)
    6. {
    7. bla();
    8. }
    9. if(...)
    10. {
    11. bla();
    12. }


    Und um anhand eines Wertes abzuzweigen kann man das switch-Statement verwenden:

    Quellcode

    1. switch(DeineVariable) //hier ein Integer
    2. {
    3. case 1:
    4. {
    5. Bla();
    6. break;
    7. }
    8. case 2:
    9. case 3:
    10. {
    11. Bla();
    12. break;
    13. }
    14. }
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils