Jump to content
Unity Insider Forum

LonlonFarm1

Members
  • Content Count

    18
  • Joined

  • Last visited

Community Reputation

1 Neutral

About LonlonFarm1

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Cool, klappt, hab in dem mirror Skript einfach die z Achse bei scale mit negativiert und alles klappt super. Dankeschöööööön.
  2. Okay, hab jetzt ein wenig rumexperimentiert und bin zu dem Ergebnis gekommen dass man gut mit normals arbeiten kann wenn man das global light ziemlich dunkel macht und die Beleuchtung über Objekte macht. Danke für die Hilfe
  3. Moin, Ich hab das Problem dass in meinem 2d Game, sobald ich meine characters spiegele sich bei der normalmap Licht und Schatten vertauschen, hat jemand eine Möglichkeit wie ich das beheben kann? Ich wollte zum Beispiel einfach beim spiegeln die normalmap durch eine gespiegelte ersetzen, ich weiß aber nicht ob es möglich ist die normalmap über Code zu erreichen, wäre sie in dem Material könnte ich sie über SetTexture erreichen, aber bei 2D macht man die normals ja in die secondary texture vom sprite. hoffe mir kann jemand helfen
  4. Cool, danke für die Hilfe, also das mit dem Licht auf den Spieler verstehe ich glaube ich, weil es dann auf die andere Seite springen würde wenn der Spieler gespiegelt wird(was übrigens auch ein Problem ist, da da scheinbar nie normalmap auf komische Art mit gespiegelt wird und Schatten Licht ist, wäre cool wenn dafür jemand eine Lösung hätte) aber das mit dem freeform light verstehe ich noch nicht so ganz, wenn das auf der ganzen Welt wäre, würde es den Spieler dann nicht gleichzeitig von allen Seiten beleuchten und somit keine Schatten haben?
  5. Das ist der Vergleich, Nr.1 mit NormalMap, Nr.2 auch NormalMap aber wenn halt kein Licht drauf fällt und Nr.3 mit Sprite Schatten, also auf dem Bild würde ich jetzt sagen die Sprite Schatten sehen am besten aus, allerdings kann man mit den Unity Light super Sachen machen und es wäre schade sie deshalb nicht zu verwenden. Und dass die NormalMap Version nicht so gut aussieht kann auch daran liegen dass ich in der Hinsicht noch nicht so geübt bin.
  6. Sorry hab mich vielleicht schlecht ausgedrückt, ich benutze die 2d lights und weiß ehrlich gesagt garnicht was Shadercode ist ich kann ja heute Abend mal ein Vergleichsbild machen
  7. Moin, ich bin mir bewusst dass das kein richtiges Problem ist und weiß auch dass das halt in meiner Entscheidung liegt wie ich es mache, allerdings hab ich privat einfach weil es nicht so viele Spieleentwickler gibt nicht wirklich jemanden der sich auskennt also stelle ich euch einfach die Frage und hoffe dass ihr verstehen könnt warum ich sie hier rein poste. Ich mache ein Spiel in Pixel Look und habe zuerst die Schatten auf meine Sprites gemacht, was natürlich aufwändig wird weil man dann bei Animationen immer die Schatten versetzen muss und den Charakter nicht einfach Spiegeln kann. also hab ich da ich eh mit dem Licht in unity gearbeitet hab, Normalmaps für die Schatten gemacht, und das funktioniert auch ganz gut, allerdings nur wenn auch ein nahes Licht da ist und das heißt wenn ich in spiel an eine relativ dunkle Stelle komme, steht der Sprite ohne Schatten da und die Schatten sind ja auch an vielen Stellen das was den sprite gut aussehen lässt, ich denke schon ein paar Wochen jetzt darüber nach ob ich nicht lieber wieder zu den Sprite Schatten zurück gehe, ich hätte einfach gerne einen Denkanstoß oder so, was haltet ihr davon? falls es ein passenderen Ort gibt diese Frage zu stellen, kenne ich den nicht also sorry falls sich jemand dran stört und wenn ihr einen besseren Ort wisst könnt ihr mir den gerne sagen
  8. Danke für deine Hilfe, ich hab es vor ein paar Minuten allerdings selbst gelöst. mir kam der Einfall dass die einzig mögliche Variante ist dass immer wieder die grundintensität genommen wird und immer wieder die einzelne Steigerung drauf addiert wurde. Also hab ich eine Variable für die grundintensität gemacht die außerhalb der Abfrage gemacht wurde, hab sie in der start Funktion auf 2 gesetzt und dann die Zeile dann ungeschrieben: lantern.getcomponentinchild<Light2D>().intensity += defaultintensity darunter hab ich dann: defaultintensity += lichtsteigerung geschrieben und es hat funktioniert. es scheint also einfach ein Verhalten zu geben dass wenn man in Animation propertys macht, diese in den anderen Animationen in jeder update Methode auf den startwert zurück setzt. danke für euren Aufwand, ich find es echt super wie in diesem Forum immer so schnell und engagiert geholfen wird.
  9. public void WaitAndLight() { foreach (GameObject lantern in lanterns) { if (lantern.transform.GetChild(0).gameObject.activeSelf == true) { Debug.Log("lol"); lantern.GetComponentInChildren<Light2D>().intensity += lichtSteigerung; } } } private void LateUpdate() { if (LanternActiveCount() == 10) { foreach(GameObject lantern in lanterns) { lantern.GetComponent<Animator>().Play("LanternLightUp"); } WaitAndLight(); StartCoroutine(nameof(CancelRepeat)); LightUp(); LightAndSummon(); Spawnswitch(false); ChangeBackground(withouteyes); enemyDeathCount = 0; } if (Input.GetKeyDown(KeyCode.P)) { Spawnswitch(false); } } Also ich scheine mich da falsch ausgedrückt zu haben, ich hab nicht weitergemacht ohne den Fehler zu beheben. Ich bin ja gerade an der Stelle an der ich den Fehler wieder beheben möchte. Wie gesagt es hat alles funktioniert, dann hab ich, um ein Flackern zu erzeugen in die On Animation der Fackel die Property für ein paar der Parameter der Fackel gepackt. Das hat die Parameter festgesetzt so dass der Code der auch auf die Parameter zugreift selbstverständlich nicht mehr funktionierte. Und ohne mein Spiel dann an anderen Stellen weiterzumachen habe ich mich direkt dem Problem angenommen, ich las in einem Forum dass man die Parameter dann nur noch im LateUpdate aufrufen kann kann, also erstellte ich eine weitere Brand Animation mit den gleichen Frames nur halt ohne die Propertys. Mit der += Gleichung hat ja vorher auch alles funktioniert, sollte ich mich nicht irren ist das ja die Abkürzung für: Lantern.Intensity = Lantern.Intensity + Lichtsteigerung. Eigentlich hätte es dann Funktionieren müssen, aber wie gesagt wird die Lichtsteigerungs Zeile nur einmal ausgeführt, der ganze Code läuft gewollter weise nur eine Sekunde lang und die sowohl über der If abfrage und direkt über der Zeile wird eine Debug.Log("lol") Zeile 640 mal ausgeführt.
  10. Das mache ich beides morgen, da ich jetzt nicht mehr an den pc kann, allerdings sollte ich wohl noch erwähnen dass meine Zeile mal funktioniert hat, ich dann die intensity in einer Animation als property verwendet hab und es danach logischerweise nicht mehr funktionierte, ich hab dann eine neue Animation ohne die property gemacht und den Code in die lateupdate Methode getan damit es auch aktualisiert wird. Falls diese Info weiter hilft
  11. Also die Laterne hat ein intensity level von 2, die Steigerung ist auf 0,5 eingestellt und am Ende ist der intensity level 2,5. ich kann es mir wirklich nicht erklären, es ist auch eine foreach Schleife die das für jede Laterne ausführt, es ist halt nur so komisch dass die log Nachricht sich 1000 mal ausführt und die Zeile direkt darunter nur einmal
  12. Moin, Ich hab das Gefühl etwas einfaches zu übersehen, da mein Problem für mich einfach keinen Sinn ergibt. also, ich hab eine Zeile Code in der lateupdate Funktion, sie steht in einer if Abfrage, komischerweise wird sie nur einmal aufgerufen, ich dachte vielleicht wird die Abfrage nur einmal auf True geschaltet. Allerdings hab ich eine Message mit debug. Log gemacht und sie direkt über die Zeile gesetzt und die Nachricht wurde in der ersten Sekunde 999+ mal ausgegeben. meine Zeile ist: lantern.GetComponentInChildren<Light2D>().Intensity += lichtsteigerung; ich hoffe jemand kann mir helfen
  13. Hab es jetzt ausprobiert und es funktioniert perfekt, ich hatte noch garnicht dran gedacht die force auf Impulse zu stellen, der Schuss sieht nun brilliant aus
  14. Wow, danke für die tolle Antwort! ich hätte nicht gedacht so schnell eine so gute, hilfreiche und sogar komplett verständliche Antwort zu bekommen. In einem Forum ist Dankbarkeit sehr schwer auszudrücken, aber sie ist auf jedenfall bei 100%, an der Antwort ist echt nichts auszusetzen, einfach perfekt falls es hier noch irgendwas gibt wo man eine gute Antwort markieren kann, was ich noch nicht tat, sag einfach Bescheid , ich kenne mich hier noch nicht so gut aus
  15. Moin, Ich hab ein kleines Problem, ich dachte eigentlich dass es einfach wird, aber ich irrte. Also, ich programmiere zurzeit ein 2d Plattformer in dem man Schusswaffen haben kann, ich möchte dass man in jede Richtung schießen kann, was ich auch hinbekommen habe. Allerdings möchte ich einen streu-Effekt bei der Schrotflinte haben. Als mein Charakter nur nach vorn und hinten schießen konnte war es einfach:Beispiel für mach rechts schießen bullet.AddForce(new Vector2(1, UnityEngine.Random.Range(-0.5, 0.5)) * schusskraft) Hoffentlich ist es verständlich ich hab das jetzt aus dem Kopf geschrieben. jetzt ist mein Problem dass ich die Random Streuung nicht mehr über y laufen lassen kann, da sie sobald man nach oben zielt ja über x laufen müsste. also hab ich am Ende des Waffenlaufs ein empty object platziert das ja immer die selben lokalen Koordinaten hat egal wie die Waffe sich dreht, der waffenlauf ist bei Dem Sprite links also müsste ich ja die force einfach immer so zufügen dass sie nach links geht mit zufälligen Abweichungen nach unten und oben. das ist mein Problem, die force scheint immer in Welt Koordinaten zu funktionieren und schießt daher immer einfach nach links von Charakter ich probierte auch bereits addRelativeForce was auch nicht funktioniert hat, vielleicht verstehe ich die relative force auch einfach nicht richtig. ich hoffe jemand hat eine Idee wie er mir helfen kann oder kann mir die relative force so erklären dass es funktioniert der lange Text tut mir leid, ich wollte nur alles So gut wie möglich erklären.
×
×
  • Create New...