Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation since 03/13/2019 in all areas

  1. 2 points
    Okay... ist für mich schwer zu entscheiden, wo ich ansetzen soll. Einerseits kommt einige Verwirrung daher, dass deine Schleifenvariable ("Durchlauf") keine lokale Variable ist, sondern auch nach Beendigung deines Schleifencodes weiterhin bestehen bleibt und du deshalb manuell den Wert zurücksetzt. Aber anstatt darauf einzugehen, würde ich lieber noch ein, zwei Schritte zurückgehen und darauf hinweisen, dass es mehr Datensammelstrukturen als Listen gibt. Wenn dein Ziel ist, eine Sammlung von Elementen zu haben, in der kein Element doppelt vorkommt, und du willst wissen, ob ein bestimmtes Element drin ist oder nicht, empfiehlt sich ein HashSet. Das entspricht nämlich genau dem mathematischen Konzept einer Menge und erlaubt dir superfixes Nachschauen, ob ein Element schon drin ist. Zwar hat die Liste auch eine "Contains"-Funktion, aber es gibt gute Gründe, bei einer solchen Situation das Set zu nehmen. Performance ist nur einer davon, und nicht einmal der beste Hier ein Beispiel, wie man HashSets benutzt: var menge = new HashSet<int>(); menge.Add(5); menge.Add(10); Debug.Log(menge.Contains(5)); // true
  2. 1 point
    Jomnitech Ja ich überprüfe mit position.Count die Größe der List . Deshalb soll die forschleife solange durchgehen bis sie am Ende der List angelangt. Das ganze klappt auch solange ich im inspector vorgefertigte Zahlen habe und diese abfrage. Doch wenn ich neue Zahlen zufüge geraden immer wieder aufs neue die gleichen Zahlen hinein. Doch danke Sascha habe ich jetzt eine wesentlich bessere Alternative
  3. 1 point
    Wenn das nicht eine unschöne Veränderung für deinen Code bedeutet, kannst du ein Struct verwenden, da diese sich ein- und ausklappen lassen. [System.Serializable] private struct SpeedSettings { public float speed; public float acceleration; } [SerializeField] private SpeedSettings speedSettings; DoSomethingWith(speedSettings.speed); Ansonsten geht so etwas nur mit einem eigenen Inspector. Alternativ auch mit so etwas wie Odin, wenn du dich da reinfuchsen willst. Der Inspector könnte etwa so ausshen: [CustomEditor(typeof(YourClassName))] public class YourClassNameEditor : Editor { private bool open = false; public override void OnInspectorGUI() { serializedObject.Update(); open = EditorGUILayout.Foldout(open, "Show My Variable"); if (open) { EditorGUILayout.PropertyField(serializedObject.FindProperty("myVariableName")); } serializedObject.ApplyModifiedProperties(); } }
  4. 1 point
    AH damnt, Punkt 2 habe ich übersehen😵, manchmal kann es so einfach sein THX
  5. 1 point
    Versuchs mal mit: Instantiate (Obstacle, Player.transform.position + zusatz, Quaternion.identity); Edit: Zur Info: Du kannst bei Player.transform kein Vector 3 (zusatz) hinzufüngen, da es sich um die ganze Transform Komponente handelt. Diese beinhaltet mehrere Vektoren wie transform.position, transform.scale, transform.roation, transform.eulerAngles usw. du musst schon deklarieren wo du dein Vector3(zusatz) hinzufügen möchtest. ps: wenn du im Skript mit der Maus über den Befehl "Instantiate" fährst, siehst du welche Variablen verlangt werden.
  6. 1 point
    Habs gefunden: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnValidate.html Edit: Falls jemand mal das gleiche machen möchte: using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class DialogueTrigger : MonoBehaviour { public int arraySize; public Dialogue dialogue; private void OnValidate() //DE, DiaN, DiaHC, EN, FR, ITA, Clas { Array.Resize(ref dialogue.DE, arraySize); Array.Resize(ref dialogue.DiaN, arraySize); Array.Resize(ref dialogue.DiaHC, arraySize); Array.Resize(ref dialogue.EN, arraySize); Array.Resize(ref dialogue.FR, arraySize); Array.Resize(ref dialogue.ITA, arraySize); Array.Resize(ref dialogue.Clas, arraySize); } public void TriggerDialogue() { TargetManager.instance.dManager.StartDialogue(dialogue); } }
  7. 1 point
    @SkipToPlay Ich glaube nicht, dass dein Link förderlich ist, denn er hat die Berechtigungen nicht verloren. Die Sicherheitseinstellungen im Programme Ordner sind genau so, wie sie sein sollen. Wenn man sich mit Windows auskennt, kann man ganz schnell alles so einstellen, wie man will. Wenn man sich nicht auskennt, sollte man die Finger davon lassen. Und das sage ich als jemand, der das 16 Jahre lang als Beruf ausgeübt hat. Aber mir ist es egal. Wenn ihr auf die harte Tour Erfahrungen sammeln wollt, dann nur los!
  8. 1 point
  9. 1 point
    Willst du die Änderung zur Laufzeit haben oder im Editor? Eine Längenänderung eines Array ist doof, weil es nicht sehr performant ist. Ich würde dir empfehlen Listen oder Dictionarys zu nutzen. Aber es geht natürlich: https://docs.microsoft.com/de-de/dotnet/api/system.array.resize?view=netframework-4.7.2
  10. 1 point
    Du könntest eine Komponente schreiben, welche Du auf jedes Toggle Objekt (wo die Toggle Komponente drauf liegt) legst. using UnityEngine.UI; [RequiredComponent(typeof(Toggle))] public StringToggle : MonoBehaviour { [SerializeField] private string character; private Toggle toggle; void Start() { toggle = GetComponent<Toggle>(); } public bool IsOn { get { return toggle.isOn; } } public string Character { get { return character; } } } Nun könntest Du in deiner Komponente statt Characters ein Array zur Verfügung stellen, wo Du im Inspector diese Toggle Objekte reinziehst [SerializeField] private StringToggle[] toggles; Und nun packst Du je nach dem, was Du vorhast, in Deine Komponente noch diese Eigenschaft, um alle aktivierten Toggle Buchstaben zu erhalten public List<string> Characters //oder char[], wenn Du nur einzelne Zeichen hast { get { var list = new List<string>(); foreach(var t in toggles) { if(t.IsOn) { list.Add(t.Character); } } return list; } }
  11. 1 point
    Danke, deine Antwort hat mir sehr weiter geholfen. Ich bin davon ausgegangen das wenn Elemente einmal erstellt wurden auch bleiben like Instantiate.
  12. 1 point
    Hallo zusammen, Wird Zeit das ich mal mein im Bau befindliches Unity Projekt vorstelle. Das ganze soll später mal ein Asset werden, sogar ein ganzes Framework (wobei ich nicht aufs Geld aus bin - mir gehts darum Code und content sauber zu trennen). Das ganze ist ein First Person Roguelike welches etliche Konzepte alter retro-Dungeon Crawler aufgreift. Ihr könnt euch auch hier noch ein wenig informieren: https://de.wikipedia.org/wiki/Rogue-like https://de.wikipedia.org/wiki/Rogue_(Computerspiel) Im Anhang gibt es ein paar erste Screens zu sehen, man merkt allerdings schnell das die Grafik nicht die Stärke des Projekts ist. Die 2d Monster und Items in einer 3d Umgebung sind absicht (das nennt man Faux oder Fake 3d). Es geht bei dem Projekt mehr um die Möglichkeiten im Sinne ein eigenes RPG damit zu erstellen, die Feature Liste ist schon recht umfangreich. Im übrigen sind es nicht nur die alten Spiele ala "Dungeon Master" welche diesen Grafikstil verwenden, auch moderne indie's wie z.B. "Delver": http://www.delvergame.com Ich werde hier immer wieder mal was posten um euch auf dem laufenden zu halten, auch für Fragen/Vorschläge/Kritik bin ich immer offen. Anbei der Link zu einem extrem im Bau befindlichen Video (es zeigt Wasser/ertrinken effekte): Anbei noch eine Liste mit den bisherigen Features: Enthält qualitativ hochwertige, kostenlose Grafiken von Justin Nichol (opengameart, CC0) Enthält qualitativ hochwertige 3d Modelle für den Dungeon (opengameart, CC0) Komplett dokumentiert als PDF und online KEIN Scripting/C# benötigt - komplett über den Editor steuerbar Enthält den vollen Sourcecode Mehrsprachig (Live umschaltbar, Demo ist Deutsch, English und Italienisch) Integriertes Sound & Musik System (Umgebungsmusik, Menumusik, Soundeffekte, Einstellbare Lautstärken) Monster mit verschiedenen Attacken (Nah-, Fernkampf) auch Mana-Basierend, einfache verhaltensweisen Türen, Schatztruhen, Teleporter, Schätze, Zerstörbare Objekte, Wasserflächen, Fallen Einfaches Fallen System (inkl Skillchecks zum entschärfen/umgehen der Falle) Einfaches Schlüssel System (inkl Skillchecks zum Schlösserknacken) Ausdauer System (Food Clock) Ausrüstungsschaden / Begrenzte Munition Einfaches Action Kampfystem (Nah-, Fernkampf sowie Magiekampf) Komplett frei definierbare numerische Attribute, Eigenschaften und Elementarresistenzen Effektsystem für alle Arten von Schäden, Nahkampftreffern und Projektilen Levelsystem mit upgradebaren Attributen und Skills Physische und Elementare Resistenzen (für Spieler und Monster) Was später noch dazu kommt (garantiert): Speichern/Laden Gegenstände identifizieren Verfluchte Gegenstände Charakter erstellung Crafting Animierte Fallen Ingame Shops Was garantiert nicht kommen wird: Richtige 3d Modelle als Grafik (da müsstet ihr euch selbst helfen, man kann es theoretisch umbauen) Prozedurale, Zufallsgenerierte Dungeons (da es hierfür haufenweise assets gibt) Minimap (auch hier gibts jede Menge assets) Netzwerk Features Multiplayer/MMO Mehrere Charaktere in der Party Top-Down oder 3rd Person Ansicht Das wars fürs erste, veröffentlichung nicht vor Januar 2019 - ich bin schließlich nur eine Person (teilzeit an dem Projekt). Danke fürs Lesen! -Weaver

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×