Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation since 07/30/2020 in all areas

  1. 2 points
  2. 1 point
    https://docs.unity3d.com/Manual/ProfilerWindow.html Damit du weißt, wie du anfangen kannst
  3. 1 point
    Hallo Unity hat ja einen eingebauten Profiler. Damit kann man mit etwas Übung sehr genau erkennen, was Zeit kostet. Wenn du aber nix in der Szene hast, hilft vielleicht auch einfach ein Neustart oder ähnliches. Christoph
  4. 1 point
  5. 1 point
    Ja, weil's bei beiden Halbsätzen relevant war... hust
  6. 1 point
    Hab das Video jetzt mal nicht geschaut, gehe darauf also nicht ein. ScriptableObjects sind super dafür, um statische Daten, die nicht Teil einer Szene sein sollen, im Editor einzustellen und ins Spiel zu bringen. Sie sind auch noch dafür gut, statischen Code Dependency Injection-fähig zu machen (hust). Dafür muss man aber ein bisschen initiale Arbeit reinstecken (hust hust). Wofür sie weniger gut sind, ist Datenverwaltung zur Laufzeit. Wenn du dir ein beliebiges RPG vorstellst, wo eine Waffe auf dem Boden erscheint, nachdem ein Gegner besiegt wurde, dann ist es nicht sinnvoll, für dieses Schwert ein neues SO zu erzeugen. Da du die Eigenschaften des SOs zur Laufzeit generierst und nicht im Editor einstellst, ist ein ganz normales Objekt genauso sinnvoll - alles, was dir ScriptableObjects über normale Objekte hinaus anbieten (Serialisierung von Werten und Dependency Injection im Editor), nutzt du in diesem Moment nicht mehr. Dafür hast du dann aber leider ein UnityEngine.Object, welches (auch) in der C++-Welt existiert und manuell mit Destroy zerstört werden muss. Letztenendes machst du mit ScriptableObjects am besten nichts anderes, als du auch mit einer XML-/Json-/Sonstwas-Datei oder SQL-Dingen gemacht hättest: Eine Datenbank erstellen. Diese Datenbank besteht aber aus einer Datei pro Zeile/Objekt, die du im Editor editieren und per Drag and Drop irgendwo zuweisen kannst, und das ist sehr geil Wenn du also eine Item-Klasse hast, z.B. "Holzschwert", und der Gegner lässt davon eins fallen, dann machst du am besten keine Kopie deines Holzschwert-SOs, sondern erstellst lieber ein neues Objekt einer Item-Instanz-Klasse, die ihr Item-Klasse-Objekt (also das "Holzschwert"-SO) referenziert. So als simples Codebeispiel: public class TreasureChest : MonoBehaviour { [SerializeField] private ItemClass containedItemClass = default; // ItemClass ist eine ScriptableObject-Klasse public void Open(Player player) { player.inventory.AddItem(new Item(containedItemClass)); } } Kann man natürlich hübscher oder ganz anders machen, aber so als Idee. Wovon ich auf jeden Fall abraten würde, wenn du dafür nicht gute Gründe hast (und die gibt es allerdings), ist das: Solange du die Möglichkeit hast, mit Referenzen zu arbeiten, solltest du keine IDs, egal ob int oder String oder sonst etwas, nehmen. Beim Schatzkisten-Script da oben ziehst du das Apfel-SO in die Schatzkiste. Dann wird ein neuer Apfel erzeugt und dem Spieler gegeben, wenn man die Kiste öffnet. Da gibt's keine Möglichkeit, sich zu vertippen oder versehentlich die falsche ID einzutragen.
  7. 1 point
    Vor ein paar Jahren hatte ich glorreiche Idee mein ganz eigenes 3D RPG zu entwickeln.... Nach meiner Abschlussprüfung habe ich zwei Jahre lang an einem C# Projekt gearbeitet. Hier habe ich schwere Techniken von einem Kollegen übernommen, bei denen ich verdammt lange gebraucht habe, um sie zu verstehen und gleichzeitig zu akzeptieren, dass man manche Magie einfach nicht verstehen kann, weil sie zu sehr versteckt ist. Ich habe jeden kleinen Schritt praktisch alleine lernen müssen, weil wir nicht wirklich C# Entwickler im Unternehmen hatten und mir alle nur halb helfen konnten. Am Ende hat das aber dazu geführt, dass ich wusste, dass ich NIEMALS mit einem 3D RPG fertig werden würde. Denn selbst, wenn ich die Programmierung schaffen würde, bliebe noch der Rest. Objekte, Animationen, Multiplayer.... Ohne Team klappt es nicht und da ich selber nie weiß, wann ich wie viel mache, macht es auch keinen Sinn eins zusammen zu stellen. Am Ende ist mir also genau das passiert, was vielen Anderen, die sich übernehmen auch immer gesagt wird... Ich habe mich übernommen! Aber ich will den Traum vom eigenen Spiel nicht aufgeben. Wenn ich etwas im Programmierer-Alltag gelernt habe, dann, dass man eh nie alles wissen kann und einfach anfangen muss. Ich weiß nun wo meine Stärken und Schwächen sind, weil ich die Basics nun besser beherrsche. Nur das Ziel muss kleiner gesteckt werden, damit ich zum Erfolg komme. Auf Minispiele habe ich zwar trotz dem keine Lust, dafür aber auf eine Simulation in 2D. Assets lade ich mir erstmal runter und gucke mir alles ganz in Ruhe an. Ich denke es ist vor allem wichtig nicht komplett aufzugeben, wenn man von der Realität eingeholt wird...
  8. 1 point
    Also wenn du es es kürzlich gekauft hast, ohne nachzuschauen wann das letzte Update war, dann ist es schon ein wenig deine Schuld. Aber im Store kann sowas immer mal wieder vor kommen. Ich hatte selber mal ein kleines Helferlein für AA gekauft (bevor unity selbst bessere AA Möglichkeiten geboten hatten). Nach einem Update von unity hat das Tool nicht mehr funktioniert und auch ich hatte den Entwickler kontaktiert. Der wollte sich zwar kümmern, aber es ist nie was draus geworden. Klar, ich kann das Tool bis zu einer gewissen Unityversion nutzen, trotzdem ist es ärgerlich. Also wenn du das Asset erst kürzlich erworben hast, dann melde dich bei Unity. Wenn du das Asset schon länger hast, dann wirds nichts werden. Du kannst aber auch die veralteten Codeteile selber korrigieren, falls du die Fehlermeldungen verstehst. Ich gehe davon aus, dass einfach nur gewisse Codeteile durch neuere Varianten ersetzt werden müssen.
  9. 1 point
    https://support.unity3d.com/hc/en-us/articles/205060439-How-do-I-request-a-refund-on-an-asset- Wenn der dir Müll verkauft hat musst du dich nicht auf den Publisher verlassen. Wenn du allerdings irgendetwas überlesen hast (z.B. dass das Asset für Unity 5 ist oder so), dann ist's deine Schuld. Ansonsten kannst du direkt zu Unity gehen und da Bescheid sagen.
  10. 1 point
    Gerne! Und das ist ganz normal beim Programmieren, dass man da manchmal Stunden oder sogar Tage oder Wochen keine Lösung für etwas bestimmtes findet. Die Kunst ist es glaube ich durchzuhalten, bis man bei den meisten Problemen die Lösung für selbstverständlich hält.

Announcements

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

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...