Jump to content
Unity Insider Forum

devandart

Members
  • Content count

    386
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by devandart

  1. devandart

    "Kühlhaus Lamellen" mit Cloth Realisieren?

    Ohje, wer lesen kann ist klar im Vorteil. Sorry. Das habe ich in der Tat überlesen, dass Du das schon versucht hattest. Dass Cloth nur Sphere oder Capsule Collider unterstützt hat bestimmt gute Gründe. Vielleicht auch solche, dass eckige Collider Vertices festhalten bzw. feststecken bleiben und es somit zu komischen Verhalten kommt. Aber keine Ahnung... Wie schaut es mit IK (Inverse Kinematics) aus? Damit sollte man sowas auch hinbekommen.
  2. devandart

    "Kühlhaus Lamellen" mit Cloth Realisieren?

    Ich weiß nicht, ob @Sascha bei dieser Lösung an eine der "bescheuerten" denkt. Aber Du kannst sowas auch relativ schnell und einfach mit der Cloth Komponente lösen. Einfach das Plane Mesh in mehrere ("genug") Segmente unterteilen und dann die Cloth Komponente zuweisen. Anschließend im Editor oben die Fixpunkte "reinmalen", damit das Teil nicht runterfällt. Als Collider musst Du dann am einfachsten eine Capsule zuweisen, auf die die Lamellen reagieren und diese musst Du einfach mit der aktuellen Kiste durch das "Tor" schieben. https://docs.unity3d.com/Manual/class-Cloth.html
  3. devandart

    Viele Blender Objekte laden

    Kleiner Hinweis: man kann Meshes in Blender auch zusammenführen. Z.B. kannst Du alle Objekte in der Blender Szene markieren und dann mit STRG-J alle zu einem Objekt machen.
  4. devandart

    Der HavockLP stellt sich vor

    Die Betonung lag auf dem Virtual Ich möchte meinen, dass es Visual heißen soll. Aber wir wollen mal nicht kleinkariert sein.
  5. Moin, das ist ein relativ komplexes Thema, welches man auf 1001 Arten lösen kann. Aber anfangen zu suchen könntest Du mit den Stichworten "Streaming", "World Streaming", "Object Culling" und vielleicht (bei vielen gleichen Objekten) "Hardware instancing". Wenn sich Objekte bereits inaktiv in der Welt befinden, sprich diese schon instanziert wurden, wird mindestens der Arbeitsspeicher belastet. Weil irgendwo müssen die Objekte ja schon existieren.
  6. devandart

    Noch so ein Unity-Entwicklerblog

    Coole Idee und der Artikel über component based design gefällt mir.
  7. devandart

    Frage zu Lizensierung

    Moin und willkommen hier! Solange Du unter den besagten 100.000$ liegst und Dein Kunde Dir das Spiel im Sinne eines fertigen Produktes abkauft, wird Unity von niemandem irgendwas verlangen. Auch wenn Du wem Deinen Code verkaufst nicht. Einzig, wenn Du mit wem anders kooperierst und im Team am Code arbeitest, müssen alle Entwickler die gleiche Lizenz nutzen, soweit ich weiß.
  8. devandart

    selbe Variable in verschiedenen Szenen

    Und auf die Frage, wie Du das Problem bzw. dessen Lösung umsetzen kannst, gibt es viele Möglichkeiten. Eine einfache wäre, das Objekt zu markieren, dass dieses bei einem Szenenwechsel nicht gelöscht wird. Ein Beispiel für "DontDestroyOnLoad" findet sich hier unten auf der Seite https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html Damit bleibt das Objekt auch bei Szenenwechsel erhalten und wenn irgendwo ein weiteres vorkommt, löscht sich dieses selbst um Duplikate zu vermeiden.
  9. devandart

    C# Grundlagen - Vererbung in Unity3D

    Wenn Du in einer erbenden Klasse Parameter im Konstruktor übergibst, musst Du diese an die Basisklasse weiterreichen. public class Mensch { protected readonly int alter; public Mensch(int alter) { this.alter = alter; } } public class SuperMensch : Mensch { public SuperMensch(int alter) : base(alter) { } } Statt im Konstruktor kannst Du auch Eigenschaften beim Erzeugen vom Objekt setzen. Dies hat Vor- und Nachteile. public class Mensch { private int alter; private string name; public int Alter { get { return alter; } set { alter = value; } } public int Name { get { return name; } set { name = value; } } } public class SuperMensch : Mensch { } //... irgendwo var superMensch = new SuperMensch() { Alter = 10, Name = "Hans Wurst" };
  10. devandart

    Der HavockLP stellt sich vor

    Moin aus ebenfalls Hamburg und herzlich willkommen hier! Viel Spaß! War "Virtual Basic" Autokorrektur?
  11. devandart

    Array durch festglegten toggle befüllen

    Ich denke schon, ja.
  12. devandart

    Array durch festglegten toggle befüllen

    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; } }
  13. devandart

    C# - GetComponent oder allgemein Objekte in einer if

    Etwas mehr Erklärung oder Beispielcode wäre hilfreich. So kann man irgendwie nicht viel mit der Erklärung anfangen geschweige denn Tipps geben.
  14. devandart

    dynamische Summen bilden mit Linq

    Du iterierst durch alle Parzellen. In jedem Loop nimmst Du dir die aktuelle Parzelle und bildest die Summe aller in der Parzelle befindlichen Elemente. Danach addierst Du zur Gesamtsumme die jeweilige Summe der Parzelle. Du hast dann also "gesamtsumme", wo die... Gesamtsumme aller Parzellen enthalten ist und die parzellenSumme pro Loop, die die Summe deiner Parzelle abbildet. Sollte also so passen.
  15. devandart

    dynamische Summen bilden mit Linq

    Oder man fasst es noch kürzer zusammen... Gib mir die Summe aller Parzellen gebildeten Summen. float gesamtsumme = parzellen1.Sum(parzelle => parzelle.Summebilden()); Debug.Log(gesamtsumme);
  16. devandart

    Rotierende Gondel

    Java nützt Dir nichts, weil Unity Java nicht als Programmiersprache unterstützt. Unity Script, welches Javascript ähnelt, wird wohl auch nicht mehr unterstützt, sondern nur noch C#. Als Beispiel könntest Du Dein drehendes Objekt nehmen und diesem unsichtbare GameObjects unterordnen, welche deine "Ankerpunkte" sind. Nun kannst Du deiner Plattform, welche sich nicht um die Z-Achse rotieren soll eine Komponente geben, welche ungefähr so aussieht [SerializeField] //macht private Felder im Inspector sichtbar private Transform ankerpunkt; //kannst Du dann im Inspector dem Objekt zuweisen void Update() { transform.position = ankerpunkt.position; //das Objekt bekommt die Position von dem zugewiesenen Ankerpunkt, wird aber nicht rotiert } Oder Du lässt Deinen Aufbau wie gehabt mit den Cubes unterhalb des drehendes Objekts und setzt die Rotation auf den Cubes jeden Frame zurück void Update() { transform.rotation = Quaternion.Identity; }
  17. devandart

    Bleib da doch stehen!

    Vielleicht findest Du in diesem, auch recht frischem Thread ein paar Denkanstöße... Wenn Du Rigidbody bzw. Physics benutzt, sind da sicherlich ein paar coole Hinweise drin. Wenn Du eigene Pseudo Physik nutzt für die Steuerung, würde ich @malzbies Tipp beherzigen oder ein Skript schreiben, welches bei Berührung der Plattform die Position des Spielers relativ dazuaddiert. Aber transform.parent ist bestimmt einfacher in dem Fall.
  18. Der einfachste Grund, wieso ein Text nicht angezeigt wird ist, dass die Textbox für den aktuellen Text zu klein ist. Ziehe diesen mal zur Laufzeit größer und schaue, ob dein Text dann sichtbar ist. Wenn ja, musst Du die Laufzeitskalierung anpassen oder in der Text Component zum Testen mal Best Fit anhaken. Ein Prefab kann beim Instanzieren / Hinzufügen zu einem Canvas dennoch manchmal seine Eigenheiten haben.
  19. devandart

    Rigidbody rutscht auf beweglichen Plattformen

    Zu dem Punkt: Genau deswegen solltest Du lieber OnTriggerEnter2D nutzen, statt Stay. Weil dieses Event nur beim Eintritt ausgelöst wird. OnTriggerExit2D dann, wenn Du den Trigger wieder verlässt.
  20. devandart

    Rigidbody rutscht auf beweglichen Plattformen

    Nur Brainstorming: Eine Idee wäre, den Rigidbody vom Charakter bei Kollision auf Kinematic zu setzen und der Plattform als Child unterzuordnen, solange bis ein Player (oder anderer) Input kommt. Eine andere, den Rigidbody über einen Joint mit der Plattform zu "verknoten". Auch bis ein Input oder sonstiges dieses unterbricht. Mal schauen, was noch für schöne Vorschläge kommen oder was Du herausfindest.
  21. Um IK in Unity zu nutzen, musst Du diese nach dem Import des Models einrichten. Da Unity IK (für nicht humanoide Objekte) aber nicht von Haus aus unterstützt, brauchst Du dafür eine externe Lösung, wie z.B. diese hier https://assetstore.unity.com/packages/tools/animation/final-ik-14290 Welche da aber schlechter oder besser ist, kann ich leider nicht beurteilen.
  22. Um den größten Wert in einem int Array zu finden, kannst Du auch LINQ nutzen. Beispiel: //über deiner klasse LINQ einbinden using System.Linq; //irgendwo in deiner Funktion var arr = new int[] { 1, 2, 3, 4, 5, 6 }; //beispiel array var max = arr.Max(x => x); //max wert Wenn Deine 6 Flächen einzelne Objekte sind, kannst Du auch folgendes machen. Achtung, das ist nur Pseudocode, ungetestet. public Transform[] meineFlaechen; //da tust du deine flächen im inspector rein Transform ObereFlaeche { get { return meineFlaechen.Max(t => t.position.y); //die lambda variable t steht für das aktuelle Transform und vergleicht die Y Position aller Elemente. vom höchsten Y Wert wird dann das Transform zurückgegeben. } }
  23. devandart

    Icon von Gameobject erstellen

    Und wenn du es zur Laufzeit machen willst, kannst Du eine Kamera nehmen und dort eine RenderTexture hinterlegen. Von dieser kannst Du dann in Echtzeit die Textur nehmen und z.B. als PNG abspeichern. Ist aber ggf. einfacher, einen Screenshot zu machen und diesen als Bild zu importieren.
  24. Hallo zusammen, wir nutzen in unserem Spiel additives Scene Loading und haben das Problem, dass baked Occlusion Culling nicht additiv dazugeladen wird zur jeweiligen Scene. Bei Dr. Google haben wir bisher auch nur "Grütze" zu diesem Thema gefunden und hier finde ich ebenfalls nichts bisher. Kennt ihr einen Weg, wie man bei dynamisch additiv geladenen Scenes ordentlich das Occlusion Culling Gebäck nutzt oder eine gute, performante Alternative? Es geht vorallem um größere Außenlevel, sofern das eine Rolle spielt. Danke und LG
  25. devandart

    Codeüberprüfung und Feedback gesucht!

    Es gibt Editorskripte, welche den Unity Editor um eigene Werkzeuge erweitern und Custom Inspector, womit Du den Inspector eines Objektes beeinflussen kannst. Ein guter Einstieg ist denke ich diese Seite https://unity3d.com/de/learn/tutorials/topics/scripting/introduction-editor-scripting
×