Jump to content
Unity Insider Forum

MaZy

Members
  • Gesamte Inhalte

    706
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    35

Beiträge erstellt von MaZy

  1. Hallo, ich fand den Code von AgentCodeMonkey 10253-sceneslistwindow total cool, aber ich wollte es bisschen präziser haben.

    Daher habe ich was eigenständiges, aber aber basierend auf den Teil des Codes (Beispiel Ordner durchsuchen) gemacht. Quasi eine Erweiterung.

     

     

    pkSOS7m.gif

     

    Wie man sieht gibt es mit einem Show und Hide button die alte Scenelist zu sehen. Jedoch wurde noch ein paar Erweiterung eingebaut.

    Man kann nun zwei weitere Scenen auswählen, die permanent gespeichert werden (Auch wenn man Unity beendet, werden sie beim Start wieder hergestellt).

    Dies soll dazu helfen, wenn man jetzt Beispiel ein Projekt hat, wo öfters zwischen zwei Scenen gewechselt werden muss, flexibel zu sein.

     

    Der Nachteil bei dem hier ist, da es gespeichert wird, gibt es zwei C# Dateien :P.

    Die Dateien ebenfalls in einem Editor Ordner reinspeichern. Codes sind bei Pastepin-Links zu finden.

    Nicht wundern. Nach dem man diesen Fenster öffnet / schließt oder Unity beendet wird eine .Asset Datei erstellt bzw. dann erst abgespeichert.

     

    http://pastebin.com/NUsZM3Gr

    http://pastebin.com/Uzqz2XXS

     

    Ich arbeite ebenfalls an eine private komplexere Version.

     

     

    Dort soll man auch Buttons haben, die switchen und Playmode aktivieren. Das ist schon getan.

    uMVOSlB.png

     

    Jedoch kommen hier noch weitere Features

    Buttons...

    • 2x Button: Starte eine Scene im Editor (Nice für Client / Server tests, aber ist optional ;))
    • 2x Button: Wechsel die Scene in Buildsettings zum ersten Platz und Build it und starte nachdem Build das Spiel. (Eben falls nice für Client / Server tests, aber ist optional ;))

     

     

  2. Hi,

     

    wie würdet ihr in der UI System Chat machen?

    Ich habe als am leichtesten an string gedacht, wo ich dann die nächsten Zeilen anfüge mit nem "\n"

    Da habe ich aber später ein Problem.

     

    Ich möchte später, dass die Namen der "Chatter" anklickbar sind bzw. ein Menü öffnet usw. Bzw neben den Namen ein Icon ist.. usw. Da wäre ja besser, wenn man mit mehreren Text-Objekten arbeitet.

    So, dass hab ich auch ausprobiert, indem ich zwei GameObjects habe wo einmal der Name ist und einmal der Text. Und hier hab ich das Problem. Bekomme das mit Grid usw nicht hin.

     

    Entweder ist der Name zu lang und es wird in zwei Zeilen geschrieben oder je nach Einstellungen ist die Box länglich oder kurz usw.. voll komisch.

     

    Ich weiß nicht mehr weiter-.-

  3. *Update

    Das Script geht jetzt durch alle Directories im Assets Dir ;)

    Wieso wird das Menü resetet, wenn man aus dem Play-Mode raus geht? Kann man das verhindern?

    Zweitens ich hab dein Code für mich angepasst.

     

    Edit: jetzt sieht man die Liste auch nach dem man aus dem Playmode raus geht:

    Update:

    • Ordnerpfade werden nun als Übersicht auch angezeigt, siehe unten (das hatte ich gemeint bevor ich diesen Edit bzw Update hinzugefügt habe).
    • Es wird jetzt beim Szenenwechsel gefragt, ob man erst mal speichern will!
    • Unnötige static Variablen und Methoden wurden umgewandelt
    • Die meisten Methoden sind nicht mehr public (hab da kein Sinn gesehen ^^).
    • OnEnable() hinzugefügt. Jetzt werden die Szenen beim Öffnen geladen bzw. auch wenn man vom Playmode rausgeht
      • Besser als Init(), da Init() nur aufgerufen wird, wenn man auf das Menüitem klickt anstatt, dass es Allgemein neu getriggert wird.

    Ich denke muss hier nichts erklären ^^.

    R5j89Ru.png

     

     

    
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using UnityEditor;
    using UnityEngine;
    
    public struct SceneInfo
    {
    public string FolderName;
    public string SceneName;
    public string ScenePath;
    }
    
    public class ScenelistWindow : EditorWindow
    {
    
    
    private Vector2 _scrollPosition;
    private static readonly string RootFolder = "Assets";
    private readonly List<SceneInfo> Scenes = new List<SceneInfo>();
    
    [MenuItem("Window/ShowScenes")]
    public static void Init()
    {
    	// Open this window
    	GetWindow(typeof(ScenelistWindow));
    }
    
    void OnEnable()
    {
    	SearchForScenes();
    }
    
    private void OnGUI()
    {
    	if (GUILayout.Button("Reload"))
    	{
    		SearchForScenes();
    	}
    
    	GUILayout.Space(10);
    	_scrollPosition = GUILayout.BeginScrollView(_scrollPosition, GUILayout.Height(position.height - 40));
    
    	string lastDir = "";
    	foreach (var scene in Scenes)
    	{
    		if(lastDir != scene.FolderName) {
    			lastDir = scene.FolderName;
    			GUILayout.Space(10);
    			GUILayout.Label(lastDir);
    		}
    
    		if (GUILayout.Button(scene.SceneName))
    			if(EditorApplication.SaveCurrentSceneIfUserWantsTo())
    				EditorApplication.OpenScene(scene.ScenePath);
    	}
    	GUILayout.EndScrollView();
    }
    
    void SearchForScenes()
    {
    	Scenes.Clear();
    	ProcessDirectory(RootFolder);
    }
    
    void ProcessDirectory(string targetDirectory)
    {
    	// Process the list of files found in the directory.
    	string[] fileEntries = Directory.GetFiles(targetDirectory);
    	foreach (string fileName in fileEntries)
    		ProcessFile(fileName, targetDirectory);
    
    	// Recurse into subdirectories of this directory.
    	string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
    	foreach (string subdirectory in subdirectoryEntries)
    		ProcessDirectory(subdirectory);
    }
    
    // Insert logic for processing found files here.
    void ProcessFile(string fileName, string folderName)
    {
    	if (!fileName.Contains(".unity") || fileName.Contains(".meta")) return;
    	var name = fileName.Substring(fileName.LastIndexOf('\\') + 1);
    	name = name.Substring(0, name.Length - 6);
    	var sceneInfo = new SceneInfo
    	{
    		SceneName = name,
    		ScenePath = fileName,
    		FolderName = folderName
    	};
    	Scenes.Add(sceneInfo);
    }
    }
    

    • Like 1
  4. Hallo,

     

    gibt es eine Möglichkeit die Werte in einer Animation so zu verändern, dass man da mathematische Operatoren anwenden kann? Beispiel will ich einige Kreise animieren, in dem die Scales hoch über ihren StartScale gehen und runter auf 0.

     

    Das Problem ist halt, dass die StartScales variieren und kann daher nicht wirklich diese Animation auf alle verwenden.

     

    Ich kenne bis jetzt eine Möglichkeit, um das Problem zu lösen, aber da müsste ich auf dein MainGameobjekt noch ein MainGameobjekt draufklatschen wo dieser aber keine veränderte Scale hat. Einfach leer und annimiere dann halt so und die Childs Scalen mit. Aber um ehrlich zu sein mag ich das nicht so.

  5. Also dein Überschrift sollte wirklich mal dein Problem definieren und nicht einfach so "Tags" haben.

    Wäre ja krass, wenn das jeder machen würde. :unsure: & Dein Code ist unübersichtlich, aber jetzt nur wegen der Formatierung hier im Thread.

     

    Ich habe nur eine Theorie :D:

    1. Du machst zu erst Network.InitializeServer oder Connect und danach Network.natFacilitatorIP. Deswegen bekommst du erst mal die Meldung von der alten IP

    Aber wie es aussieht machst du das schon in Awake correct. Daher vielleicht ist die Reihenfolge bei anderen Scripts anders? Ich habe bei mir getestet und bei mir nimmt es ne andere IP an.

     

    Zweite Sache. Du brauchst MasterServer und so weiter nicht schreiben bzw. neue Adresse zuweisen, da du ja einen Custom MasterServer benutzt. Daher verbindest du dich ja nicht zu dem Server, sondern holst die Daten aus einem Webserver.

     

     

    An sowas habe ich mal früher gedacht. Damit wollte ich eventuell Auto-Matchmaking. B)

  6. Hallo,

     

    ich habe mir SSD geholt mit 250 GB. Ich habe das nun angesteckt und dort habe ich Win7 drauf. Ich werde langsam langsam dort hinziehen, aber wenn ich an die ganzen Stuff denke, was ich nochmal laden und installieren muss macht mich fertig ^^.

     

    Daher wollte ich Unity oder sowas dort schon installieren, aber in dem ich die SSD-Festplatte als sekundäre Festplatte benutze.

    Bringt das von Schnelligkeit her trotzdem was, obwohl ich ja noch auf den normalen Festplatte gebootet habe, aber Unity in aus SSD starte oder macht das eher kein Sinn?

     

    Ich kenn mich da leider nicht so aus. Nachher arbeite ich noch scheinheilig ^^

  7. Hallo,

     

    Kurzform

    Was lernt ihr hier?

    • Wie man einen Android-Java-Code in Unity mit C# ausführen kann.
    • Als Beispiel im Video: Wie Teilenfunktion Code in C# aussieht.

     

    Langform

     

    Ich habe die Idee als Statusnachricht geschrieben und ihr hattet Interesse daran einen Tutorial zum Thema Teilenfunktion in Unity.

     

    Dazu ist hier ein Video-Tutorial wie man ein Android Javacode in Unity mit C# ausführen kann. Daher wird das teils ausführlich erklärt, wie ich vorgegangen bin und was man in Unity machen muss.

     

    Natürlich wird dabei sehr stark aufs Teilenfunktion eingegangen.

    Wenn ihr es verstanden habt, solltet ihr das danach selbst eigene Dinge schreiben können :D

     

    Das ist meine aller erstes Video-Tutorial. Also Kritik gerne angenommen xD.

    Und wenn es euch irgendwie hilfreich war, dann bitte Daumen hoch :)

    • Like 3
  8. Hast du das Fahrzeug selbst gezeichnet? Sieht richtig gut aus.

    Ich brauche demnächst ein (oder mehrere) Mountainbikes^^. Was Zeichnen geht bin ich nicht wirklich gut. Da brauch ich echt sehr viele Anläufe (und neu Anfänge) bis es mal "gut" aussieht.

     

    Das mit Editor finde ich voll cool gemacht.

    • Like 1
  9. <ul>

    <li>Mir gefallen die Texturen total.</li>

    <li>Die Musik sollte sich nicht neustarten. Bitte unbedingt ändern.</li>

    <li>Die Steuerung wie alle schon sagen finde ich nur eine Sache doof. Tapst du einmal kommt es kaum hoch (als würde man nur das Fallen bremsen), tapst du zweimal fliegt es vielleicht 3x mehr so hoch als es sein sollte. Ich finde das bissel zu krass.</li>

    </ul>

    <p>Ich habe gerade das mit Tappen wieder ausprobiert. Die Physik ist ja übertrieben dynamisch muss ich sagen. Die Tap-Pause-Zeit zwischen den Taps muss man selbst regeln sonst fliegt es zu hoch oder gar nicht so hoch. Man kann das nie einschätzen. Das finde ich bissel schade.</p>

    <p> </p>

    <p>Arbeitest du mit AddForce? Liegt wohl daran.</p>

     

    EDIT: öhh wasn das fürn bug jetzt ^^

  10. Hallo.

     

    Ich spiele gerade mit 2D Fahrzeugstabilität rum (Federung, Bremsen usw.), Soweit so gut geschafft. Jetzt würde ich gerne, wenn das Fahrzeug beschleunigt und die Räder sich durchdrehen, Partikeleffekte erscheinen..

     

    Ich habe zwei CircleCollider2D für ein Fahrzeug. Wie kann ich das per Script erkennen. Da muss ja ein Wert bestimmtes Wert erreicht haben. Aber was genau verstehe nicht. angularVelocity ist es nicht denke ich, da die Zahl sehr hoch ist als der eigentliche Fahrzeug velocity.

     

    EDIT: Ubs kam aufs enter.. ich ergänze das noch mal hier und den Titel.

    EDIT2: So. Jetzt hoffe ich auf eure Hilfe :)

     

    EDIT3: Mittlerweile hab ich das gelöst, aber ist nicht perfekt. Die Lösung hat jashan bereits auch gegeben. Bei mir hab ich noch den DRA

  11. Hallo leider hab ich bis heute Quaternion nicht verstanden daher kann ich sie nicht selber lösen.

     

     

    Es geht um diesen Abschnitt (nicht von mir)

     

    Quaternion targetQ = Quaternion.identity;
    Vector3 fPosition = transform.position + transform.TransformDirection(new Vector3(0f, 1.0f, 1.0f));
    Vector3 fDirection = transform.TransformDirection(Vector3.down);
    Ray fRay = new Ray(fPosition, fDirection);
    
    RaycastHit fHit;
    float fDistance = 2;
    
    Debug.DrawLine(fRay.origin, fRay.origin + fRay.direction * fDistance, Color.cyan);
    
    if (Physics.Raycast(fRay, out fHit, fDistance, filter)) {
     if (fHit.collider.tag == "road"){
      Debug.DrawLine(fHit.point, fHit.point + fHit.normal * fDistance, Color.magenta);
      targetQ.SetLookRotation(fHit.point - transform.position, target);
      gameObject.transform.rotation = Quaternion.Slerp(gameObject.transform.rotation, targetQ, smoothRatio * Time.deltaTime);
     }
    }
    
    

     

    Dieser Code tut was es tun soll und zwar ein Fahrzeug mit RayCast richtig rotieren, in dem die Bodenlage durch Raycast angeschaut wird (z.b. ob es Schräg ist).

     

    Das Problem ist, dass die Y-Achse immer auf 0 gesetzt wird und das möchte ich nicht, da ich ja das Fahrzeug um Y-Achse drehen möchte

  12. Ja man könnte das auch so machen wie du da zeigst. Aber wo ist für dich der Vorteil dabei?

    Das du es in einem abspeichern kannst oder wegen dem Dictionary?

     

    Wenn ich mittels miniJSON abspeichere nutze ich auch ein Dictionary damit ich die Werte besser übergeben kann. Trotzdem nutze ich (gerade bei einem Inventarsystem) viel lieber mehrere Arrays im Spiel. Das ist für mich einfach einfacher zu bewerkstelligen, wenn ich in einem Array auf der Speicherstelle 1 (weil es der erste Slot vom Inventar ist) den Typ, die Anzahl, die Eigenschaft etc. finde. Ich gucke immer nur nach der Zahl und habe alles beisammen. Weiß auch nicht warum, aber ich mag das so lieber.

     

    Sag mal, warum du das lieber serialisierst.

     

    Hey sorry. Ich habe irgendwie nicht mitbekommen, dass das du darauf eine Antwort gegeben hast :lol: (Hab auch keine Benachrichtung oder so bekommen). Ich habe mich wohl nicht ausführlich ausgedruckt. Mir ging es jetzt nicht um die Typen sondern eher um die massenhafte Registrierungseinträge. Der Vorteil wäre (für mich) in meinem Beispiel, dass man nur einen Eintrag in der Registry hätte. Nochmal:

    Heino:3300;Superfreak;2530;Susi:13

    Ob du jetzt mehrere Arrays nimmst für die beiden Einträge oder ne extra Klasse erstellst und nen Dictionary oder sonst was nimmst ist mir in diesem Fall wurscht :rolleyes: .

     

    Ich habe bei meinem Spiel (nur in diesem Fall) ausnahmsweise miniJson ausgelassen, da es ein paar Sachen nicht so klappen wollte mit dem Script was ich da hatte. Zum Glück sind es nicht viele Zeilen. Sonst benutze ich es auch gerne. Weiß nicht, ob ich jetzt einen oder mehrere Vorteile dadurch habe, da es ja ziemlich Eingeschränkt ist, aber zumindest sind es nur zwei Funktionen und die Items sind sofort im Inventar oder in einem Eintrag.

  13. Ok wir haben es getestet.

    • Sehr viele NullException Error. Irgendwas mit OnTriggerEnter. Um das zu lösen bitte über all if(variable != null) verwenden und besser noch bei "else" Meldung anzeigen, dass da etwas fehlt. Ich vermute, dass es was mit den Fußspuren zu tun hat, weil sie irgendwann nicht mehr aufgetaucht sind. Dieser kleiner Fehler kann in vielen Systemen ausfallen lassen.
    • Die Häuser sind im Verhältnis zu Figuren zu groß. Wir kamen uns wie Zwerge vor.
    • Stamina wird nur in "Escape"-Menü angezeigt. Außerdem zeigt es zwei FPS an xD.
    • Manchmal haben wir uns im Raum nicht gesehen. Manchmal hat es auch nur ein paar Leute sich nicht gesehen, die anderen wiederum haben alle gesehen. Das war nur ab und zu.
    • Maplimitieren. Manche sind auch mal in das ewige Loch gefallen und irgendwann ist das Spiel gecrasht.

    • xbox 360 Controller funktioniert so halb. Man kann nicht rennen. Ich würde dir raten, die Shift-Taste nicht einfach so mit keycode zu machen sondern als Input zu definieren :). Man konnte nur rennen. Man konnte sich nicht drehen.

     

    Im Prinzip kann man es testen, aber mehr ist es leider noch nicht drin. Es sieht nämlich nach großen Fehlern aus, die man üblicherweise nicht macht. Ich will jetzt nicht sagen "hingeklatscht"^^.

     

    Vom Gameplay und Spielidee fanden wir alle das ganz lustig und würden gerne weiterhin (eine "bugfreie" Version) spielen.

  14. Muss jetzt nochmal schreiben, weil die Seite bei mir sich einfach so neu geladen hat-.-.

     

    Also ich finde die Umgebung nett gemacht. Ich hatte nämlich auch ne Idee und die Umgebung sollte fast so ähnlich aussehen (bis auf die Schärfe ^^).

    Vor allem finde ich cool, wie schnell man sich im Spiel verlaufen kann.

     

    Ich habe es angetestet jedoch nur mit zwei Clients und dann alleine. Ich werde mal an meine Community den Link weitergeben und mal mit ihnen testen.

  15. Ja komisch oder, habe auch mit nen Weltraum Spiel angefangen gehabt was Richtung Freelancer ging.

    Leider bin ich und mein Kollege auf ne Strategieversion umgestiegen und dann ist das Projekt nun vollständig abgebrochen wurden da mein Kollege abgesprungen ist.

    Bin mir momentan nicht ganz sicher wie es weiter geht, habe 5 Spieleprojekte die ich gerne umsetzen würde und kann mich nicht entscheiden welches ich nun beginne.

     

    Naja deine Entwicklung sah schon vielversprechend aus. Wäre cool wenn es doch noch mal irgendwann weiter gehen würde.

    Das ist das Problem. Man sieht etwas und denkt sich nur, ich mache etwas ähnliches cooleres. Oder man hat spontan Ideen im Kopf. Man muss als Hobby was Kleines machen und nicht all zu Großes. Es sei denn, man findet die verwendete Zeit ok^^.

     

    Ich hab auch ein Traumspiel im Kopf. Seit 2005. Damals hatte ich habe nicht so viele Ahnung wie ich das realisieren könnte. Hab mir Gamesstudio 3D und mal SDL, XNA angeschaut, aber damit hätte sehr lange gebraucht. Sehr spät hab ich Unity entdeckt. Damit könnte man eventuell die Idee realisieren, aber dennoch schätze ich als One-man-team, dass man ca. mehrere Jahre dafür braucht, da es nur online läuft.

×
×
  • Neu erstellen...