Jump to content
Unity Insider Forum

Garzec

Members
  • Content Count

    308
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Garzec

  1. Hier nur mal zur Info, so sieht momentan der Workaround Code aus. Auch damit ihr mal sehen könnt, wie klein dieses "Feature" eigentlich ist, ich möchte es eben nur mit dem neuen Input System noch kleiner machen public sealed class SelectedPositionStateController : MonoBehaviour { private void Update() { #if UNITY_ANDROID || UNITY_IOS if (UnityEngine.Input.touchCount > 0) { Touch touch = UnityEngine.Input.GetTouch(0); // hier touch.position an meine ECS Simulation übergeben } #elif UNITY_S
  2. Stimmt, ganz vergessen. Geht auch Wobei mein oberstes TODO ist diesen Code natürlich komplett rauszuwerfen, da man es mit dem neuen Input System einfacher und performanter haben kann 👍
  3. @Brighthell96 nein, noch nicht. Da ich das Input System nur dafür brauche, sieht mein momentaner Schlachtplan wie folgt aus... Das Ganze wird mit dem alten System umgesetzt, das heißt, ich prüfe 1x pro Update, auf welcher Plattform ich mich befinde, je nachdem ziehe ich mir dann den Vector2 und überschreibe die Variable. Schlechte Lösung, ist aber klein und hat keine Abhängigkeiten. Besser (sobald Lösung da ist): - Neues Input System installieren - Klick/Tap für Desktop/Mobile konfigurieren - Update Code komplett wegwerfen - Select Methode als Event Handler defini
  4. Leider passt das nicht ganz.... 1. Das wäre jetzt nur für die Maus, auf Mobile müsste es ja anders sein 2. Jetzt wird das Event durchgehend getriggert. Ich möchte das Event ja nur auslösen, wenn tatsächlich geklickt / getappt wurde Aber danke
  5. Ich habe als Grundlage erstmal dieses Video hier genommen und dann eben versucht die "Jump" Funktion zu erweitern. Jump muss ja keine Daten durchreichen, bei mir muss halt noch der V2 durchgereicht werden.
  6. @Sascha Ich sehe den Fehler erst einmal bei meiner Konfiguration. Ich werde das Ganze nochmal konfigurieren, muss aber gestehen, dass ich das System als Neuling gar nicht so einfach zu konfigurieren finde. @Brighthell96 Das stimmt zwar alles, aber im Code möchte ich nicht mehr wissen, von wo der Input kommt Wenn Unity das alles schon kann, dann muss ich selbst weniger Code warten / Tests schreiben
  7. @Brighthell96 vielen Dank für den Ansatz! Leider habe ich dort Probleme, die mir Unity schon lösen würde 1. Ich muss selbst noch Code schreiben, auf welcher Plattform ich mich gerade befinde 2. Das Ganze ist nicht eventbasiert, das heißt, ich würde im Update 1x pro Frame den Wert abfragen, was nicht notwendig ist, wenn mir Unity ein Event triggern kann
  8. @Sascha Hier der Stacktrace von der zweiten Meldung, lässt mich aber leider nicht schlauer werden
  9. Ich habe ein neues Projekt angelegt und das neue Input System installiert. Ich möchte einfach nur die Klick (Desktop)/Tap (Mobile) Position abspeichern. Ich weiß, dass das alte System schon etwas liefert - https://docs.unity3d.com/ScriptReference/Input-mousePosition.html - https://docs.unity3d.com/ScriptReference/Touch-position.html Ich möchte es aber mit dem neuen System umsetzen. Hier meine Input Map Konfiguration Hier ein Script für Tests public class FooBar : MonoBehavi
  10. Ja, ihr habt ja Recht. Aber nehmen wir mal ein Standard C# Projekt als Beispiel, dort ist ja der "default" Namespace erstmal von der Ordnerstruktur abgeleitet. Natürlich kann man den manuell anpassen, aber wenn man eine neue Datei anlegt, ist es ja erstmal so.
  11. @Sascha danke. Also wenn ich ein Standard C# Projekt erstelle, richtet sich der Namespace ja auch erstmal nach dem Folder, wo die Datei drin ist. Kann man händisch natürlich abändern, aber wird wahrscheinlich niemand tun. In Unity wurde mit der 20.2 Version damit geworben, dass es jetzt Namespace Support gibt. Wenn das in Unity so nicht geht, frage ich mich, was dieses Feature (also die Einstellung) dann soll.
  12. Hallo zusammen, ich habe mir die neue 20.2 Version gezogen und möchte jetzt für alle Scripte die Namespaces dabei haben. Also habe ich in den Settings erst einmal einen Ordner im Assets Ordner angegeben, wo jeglicher Code liegt Die Ordner Struktur sieht aktuell so aus Das Problem ist, dass neue Scripte nicht den richtigen Namespace haben. Das Script Test hat den Namespace Sources, obwohl ich dort Sources.Scripts erwarten würde. Weiß jemand, wie man das richtig einstellt?
  13. Mein Ziel ist es ein Spiel ähnlich zu dieser Vorlage zu erstellen Das Spiel ist zwar ein Voxel Game, aber für den Code kann man es ja als 2D Grid betrachten. Wie im Video zu sehen ist das Spiel rundenbasiert. Ich gebe also Input rein, der Spieler bewegt sich und bis zum Ende der Runde ist weiterer Input deaktiviert. Zunächst gibt es Obstacles und Trigger, die auf bestimmte Dinge reagieren. Obstacles wären also Wände, Bäume, Tische, ... Diese kann ich mir in einer Liste merken oder einzeln betrachten, zumindest reicht es aus, wenn alle 4 Außenseiten ein Obstacle haben, um d
  14. Das Problem wurde schon teilweise gelöst. Der Code ist korrekt, ebenso sind die Felder im Inspector zugewiesen. Dennoch haben die Collectables als Objektreferenz der Highscore zuerst die richtige Instanz und danach eine .. warum auch immer .. nicht existierende Instanz. Das kam wohl dadurch zustande, dass Objekte in der Szene erstellt wurden, diese dann den Collectables zugewiesen wurden. Dann wurden diese Objekte zu Prefabs gemacht und gelöscht, dann wurde alles nochmal im Asset Ordner zugewiesen und wahrscheinlich ging es dann ein wenig durcheinander bei Unity, sodass bei seiner Version
  15. Hallo, ich habe hier ein Projekt eines Unity Anfängers hochgeladen. Das Minispiel ist ein typisches "Dinge fallen vom Himmel, du musst sie einsammeln, manche Dinge bringen Punkte, manche Dinge ziehen dir Punkte ab" - Spiel. Das Projekt an sich ist extrem simpel gehalten, in 5 min. nachgebaut etc. Nun gibt es zwei Probleme: 1. Das Highscore-Text-Element updated sich trotz txt.text = currentHighscore.ToString(); nicht. Obwohl er laut Debugger immer in die Methode reingeht. Das finde ich sehr komisch, da sich der Text im Spiel eigentlich verändern sollte, der Wert ist ja erstma
  16. Hallo, ich habe hier den A* Algorithmus angefangen. Das Ziel wird schon angelaufen (von unten links nach oben rechts). Es gibt verschiedene Feldkosten, der Wert 0 bedeutet nicht begehbar, da werde ich noch etwas passenderes wählen, aber das soll es erst einmal sein. An manchen Stellen springt der zu bewegende Gegenstand noch ein wenig hin und her, da noch nicht die einzig relevanten Felder in der Liste stehen. Hier zuerst mal der Code dazu, das map Objekt baut die Map auf und hält alle Zellen in einem 2D Array vom Typ Cell. Jede Zelle kennt dann ihre Feldkosten, ihren Index
  17. Habe es gekürzt bekommen, die Rotationen stimmen aber nicht. public class InterferometricCube : MonoBehaviour { [SerializeField] private Projectile projectileLeft; [SerializeField] private Projectile projectileRight; private void OnCollisionEnter(Collision collision) { HandleProjectile(collision); } private void HandleProjectile(Collision collision) { GameObject collidingObject = collision.gameObject; Projectile projectileComponent = collidingObject.GetComponent<Projectile>(); if (projectileComponent)
  18. Hallo, schieße ich mit einem Projektil auf einen Würfel, so sollen über die getroffene Seite folgende Mittelpunkte berechnet werden: gegenüberliegenden Seite linke Seite rechte Seite Die drei neuen Punkte dienen mir danach als Grundlage für Spawnpositionen. Ich habe schon einmal den Code vorbereitet: public class InterferometricCube : MonoBehaviour { [SerializeField] private Vector3 cubeScale; // Größe des Würfels private const float SPAWN_SPACING = 1.5f; // Abstand zum Würfel private void OnCollisionEnter(Collision collision) {
  19. Ich habe es erstmal hinbekommen mit public void ReflectProjectile() { RaycastHit hit; Ray ray = new Ray(transform.position, currentMovementDirection); if (Physics.Raycast(ray, out hit)) { currentMovementDirection = Vector3.Reflect(currentMovementDirection, hit.normal); } }
  20. Hallo, beim Abfeuern eines Projektiles verwende ich erstmal folgenden Code private Rigidbody rigid; private Vector3 currentMovementDirection; private void FixedUpdate() { rigid.velocity = currentMovementDirection; } public void InitProjectile(Vector3 startPosition, Quaternion startRotation) { transform.position = startPosition; transform.rotation = startRotation; currentMovementDirection = transform.forward; } Dabei verwende ich InitProjectile als Startmethode, weil ich die Projektile nicht zerstöre sondern recycle (Renderer disablen). Sobald das Projekt
  21. Hallo, ich würde mal gerne wissen, wie man ein Ability System aufbaut. Das Spiel selbst wäre 2D TopDown. Ich habe ein System mit Actions aufgebaut, je nachdem, welche Charakterklasse der Spieler auswählt, werden ihm dann bei Spielstart andere Fähigkeiten zugewiesen. public class Ability { public Ability(Action ability, int cooldown, Sprite icon) { AbilityToUse = ability; Cooldown = cooldown; AbilityIcon = icon; CurrentCooldown = Cooldown; } public Action AbilityToUse { get; set; } public float Cooldown { get; set; } public flo
  22. Habe grade gesehen, dass man dafür Java / Android Zeugs installieren muss, also das JDK, NDK, etc. das muss ich erstmal machen, aber das benötigt man wohl nur, wenn man den Build direkt aufs Handy packen will.
  23. Ne, am PC bleibt das Spiel unverändert flüssig. Liegt wohl am Handy befürchte ich.
  24. Jeder sagt mir, dass es bei ihm geht. Also entweder habe ich eine Einstellung übersehen oder ich weiß auch nicht mehr weiter.
×
×
  • Create New...