Jump to content
Unity Insider Forum

MustafGames

Members
  • Gesamte Inhalte

    436
  • Benutzer seit

  • Tagessiege

    4

Alle erstellten Inhalte von MustafGames

  1. Grüße, ich wollte mal fragen ob sich jemand mit den Graphics.DrawMesh Methoden auskennt? https://docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstancedIndirect.html Mein Ziel ist es 100000 Objekte (welche sich nicht bewegen) darzustellen. Jetzt habe ich das ganze mit Graphics.DrawMeshInstancedIndirect gemacht, aber weil das ja jeden Frame in Update ausgeführt wird, ist meine CPU relativ hoch ausgelastet und die GPU nicht. Was kann ich tun um die Auslastung etwas zu verschieben? Es ist bestimmt nicht möglich Graphics.DrawMesh nur einmal auszuführen und trotzdem die Objekt zu sehen richtig? Hoffe jemand hat das schon einmal benutzt. Vielen Dank
  2. Gruß, ich habe folgendes gefunden aber verstehe es noch nicht ganz: https://unity.com/de/how-to/advanced/optimize-lighting-mobile-games Es wäre schon cool, wenn ich meine Objekte alle so vorbereiten könnte das wirklich nur wenige Draw Calls nötig sind um die Gesamte Szene zu rendern aber der eingebaute Light Baking Prozess von Unity ist irgendwie müll. Jedes mal wenn ich im Lightning Fenster das Licht bake, kommt ein schlechteres Ergebnis heraus als wenn ich es einfach lasse. Hat jemand dazu Erfahrungen? Ich finde auch das Unity immer unübersichtlicher wird da immer neues dazu kommt aber einfach so rein geklatscht wird. Danke für Eure Hilfe.
  3. Gruß, bin etwas verwirrt, in meinem 2D Project habe ich im Light Manager und auch in den Project Settings überall Global Illumination deaktiviert, es gibt kein Licht in der Szene und keines meiner Materialien nutzt dieses, trotzdem ist im Profiler unter Global Illumination Bewegung da und das nicht wenig, warum? MfG Franz
  4. Guten Tag, kennt sich jemand mit dem Motion System von Cinema4D aus? Ich habe eine Figur mit Skelett (Bones). Diese hat im Motion System 2 Animationen hinterlegt, welche ich dann in die Timeline setzen kann wie ich möchte. Problem dabei entsteht erst wenn ich die fertige Figur mit Animation als Fbx exportieren will, dann öffne ich die exportierte Datei und die Arme und Beine der Figur sind beide auf der selben Seite und die Positionen und Rotationen der Knochen stimmen nicht mehr. Woran liegt das? Hoffe hier benutzt jemand Cinema4D, das Problem tritt bei C4D R13 und R19 auf, weitere Versionen habe ich nicht getestet. Mit freundlichen Grüßen. Mustaf.
  5. #Push Mein Fehler, hatte vergessen es auch als Coroutine zu starten xD
  6. Gruß, habe folgende Methode für meine Sammlung an nützlichen Methoden: public static IEnumerator StopCoroutineAfterDelay (Coroutine cor, float delay) { yield return new WaitForSeconds(delay); Camera.main.GetComponent<MonoBehaviour>().StopCoroutine(cor); yield break; } diese stopt die Coroutine aber leider nicht auch wenn ich statt Camera.main die Klasse angebe wo die Coroutine auch gestartet wurde. Als statische Methode wäre es schon ganz sinnvoll, sonst hätte ich in 10 Scripts die selbe Methode drin. Woran liegt das? Mfg Mustaf PS: Mir ist gerade aufgefallen wenn ich hier das DarkTheme auswähle als Webseitendesign, dann ist die Schrift vom "Folgen Button (wo man bei Antworten benachrichtigt wird)" unsichtbar.
  7. Grüße, habe Gestern mal auf 2019.2.5f1 geupdated von 2019.1.0f2, jetzt hat es in meiner Szene alles zurückgesetzt was ich eingestellt hatte im Inspector... Wie schlecht ist Unity bitte den gemacht das sowas passiert? 2. Problem wenn ich in meiner Tilemap ein Objekt platziere auf z-Achse 0 im Brush Menü und dann auf z-Achse 1 ein anderes platziere ist das von Achse 0 darüber? Manchmal kotzt Unity einfach nur ab.. MfG Mustaf
  8. Edit: public void LoadChunks () { int new_size = size - 1; int playerx = Mathf.RoundToInt(player.position.x); int playery = Mathf.RoundToInt(player.position.y); Vector3Int cellpos = tilemap.WorldToCell(new Vector3(player.position.x, player.position.y, 0)); Vector2Int pos = new Vector2Int(playerx / new_size, playery / new_size); Debug.Log(cellpos); for (int x = -loadDistance; x <= loadDistance; x++) { for (int y = -loadDistance; y <= loadDistance; y++) { //Chunk Positionen um die Spielerposition -1, 0 1 etc.. Vector2Int a = new Vector2Int(x + pos.x, y + pos.y); //Chunk Positionen verwendtbar zum generieren in 16er Schritten Vector2Int b = new Vector2Int(a.x * new_size, a.y * new_size); //Das selbe nur auf die Mitte ausgerichtet Vector2Int c = new Vector2Int(b.x - (new_size / 2), b.y - (new_size / 2)); //Hier muss mal irgendwie die Position so stark ansteigen das es Mittig beim Spieler ist //Interessant ist das durch mein Grid sind 4.26F des Spielers = 16 Felder im Grid, irgendwie muss das mit einberechnet werden? Vector2Int d = new Vector2Int(c.x, c.y); Vector2Int lastpos = new Vector2Int(d.x, d.y); Komme gerade überhaupt nicht weiter, einziges Erkenntnis ist mein Kommentar über Vector2Int d. Vielleicht hat von euch jemand eine Idee? Edit 2: Lösung gefunden, ist abhängig von den Einstellungen im Grid, bedeutet bei einer Grid Größe von 0,26f muss das hinzugefügt werden: int AlphaX = Mathf.RoundToInt(player.position.x / 4.26f) * new_size; int AlphaY = Mathf.RoundToInt(player.position.y / 4.26f) * new_size; Vector2Int d = new Vector2Int(c.x + AlphaX, c.y + AlphaY); Nächstes Problem ist folgendes: float dist = Vector2.Distance(lastpos, pos); if (dist < loadAndUnload.x) { Generate(lastpos, false); } else if (dist > loadAndUnload.y) { Generate(lastpos, true); } Ich versuche nun Abhängig von der Position des Spielers und des äußersten Chunks, Chunks zu laden oder zu deaktivieren. Hab das nur noch nie gemacht und bräuchte da vielleicht nen Anstups.
  9. Hallo, ich komme gerade nicht drauf, ich lade 1 Reihe im Moment um den Chunk der beim Spieler ist herum, jedoch sind die Chunks nicht im Raster angeordnet, bewegt sich der Spieler nur leicht, werden auch die Chunks nur verschoben und nicht im Raster angeordnet. Das ganze funktioniert über einer Tilemap. Frage ist nun wo hab ich falsch gerechnet und müsste es anders machen? Variable size bedeutet die Chunkgröße in diesem Fall 16 bzw. 17. LoadDistance ist bei 1 also eine Chunk-Reihe um den Spieler herum. public void LoadChunks () { Vector3Int cellpos = tilemap.WorldToCell(new Vector3(player.position.x, player.position.y, 0)); Vector2Int pos = new Vector2Int(cellpos.x - (size / 2), cellpos.y - (size / 2)); for (int x = -loadDistance; x <= loadDistance; x++) { for (int y = -loadDistance; y <= loadDistance; y++) { Vector2Int lastpos = new Vector2Int(pos.x + (x * size), pos.y + (y * size)); float dist = Vector2.Distance(lastpos, pos); if (dist < loadAndUnload.x) { Generate(lastpos, false); } else if (dist > loadAndUnload.y) { //Generate(lastpos, true); } } } } MfG Mustaf Hoffe bei meinen schwer verständlichen Erklärungen kann trotzdem jemand es verstehen.
  10. MustafGames

    GPS im Editor?

    Hallo, weiß jemand wo ich im Editor den Standort Zugriff aktivieren kann, das ist sonst nervig ständig einen Build zu starten? Mfg Mustaf
  11. Grüße, hat jemand eine Idee wo man Isometrische 2d Charakter animieren kann, habe einzelne Sprites (Kopf, Körper, etc..)? Mfg Mustaf
  12. Hallo, ich probiere gerade am neuen Isometric Tilemap Feature herum. Ich habe ein Tileset erstellt und einige Sprites hinzugefügt nun sind paar raus gelöscht, da sie nicht mehr gepasst haben oder ersetzt wurden, doch die bereits in der Scene platzierten Tiles bleiben und lassen sich nicht mehr entfernen, was kann man da machen? Mfg Mustaf
  13. Grüße, kann mir jemand die SetTexture Methode näher erklären und ob diese effizienter ist als alles ausführlich zu schreiben? Ich benötigte, Transparents & 1 Texture & Schatten Shader "Texture Only"{ Properties { _MainTex ("Texture", 2D) = "" } SubShader { Pass {SetTexture[_MainTex]} } } Mfg Mustaf
  14. Grüße, kennt jemand von euch Möglichkeiten wie man in Visual Studio einige Optionen deaktiviert damit Projekte schneller laden und wenn man Scripte speichert Sie schneller in Unity geladen werden? Mfg Mustaf
  15. Grüße, vorne weg das ist mein erster Shader. Wenn ich den für z.b. Gras nehme dann sieht das so gesliced also zerschnitten aus, wenn ich den Cutoff Wert erhöhe. Shader "Custom/Shader" { Properties { _Color("Color", Color) = (1,1,1,1) _MyArr("Texure", 2DArray) = "" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _MetallicMap("Metallic", 2D) = "white" {} [Gamma] _Metallic ("Metallic", Range(0,1)) = 0.0 _BumpMap("Normals", 2D) = "bump" {} _BumpScale("Bump Scale", Float) = 1 _ParallaxMap("Parallax", 2D) = "black" {} _ParallaxStrength("Parallax Strength", Range(0, 0.1)) = 0 _OcclusionMap("Occlusion", 2D) = "white" {} _OcclusionStrength("Occlusion Strength", Range(0, 1)) = 1 _EmissionMap("Emission", 2D) = "black" {} _Emission("Emission", Color) = (0, 0, 0) _Cutoff("Alpha Cutoff", Range(0, 1)) = 0.5 } SubShader{ Tags{ "RenderType" = "TransparentCutout" } LOD 200 CGPROGRAM #pragma target 3.5 #pragma surface surf Standard fullforwardshadows addshadow UNITY_DECLARE_TEX2DARRAY(_MyArr); struct Input { float2 uv_MyArr; float2 uv_BumpMap; }; UNITY_INSTANCING_BUFFER_START(Props) UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color) #define _Color_arr Props UNITY_DEFINE_INSTANCED_PROP(float, _TextureIndex) #define _TextureIndex_arr Props UNITY_DEFINE_INSTANCED_PROP(half, _Glossiness) #define _Glossiness_arr Props UNITY_DEFINE_INSTANCED_PROP(half, _Metallic) #define _Metallic_arr Props UNITY_DEFINE_INSTANCED_PROP(float, _BumpScale) #define _BumpScale_arr Props UNITY_DEFINE_INSTANCED_PROP(half, _Cutoff) #define _Cutoff_arr Props UNITY_INSTANCING_BUFFER_END(Props) sampler2D _BumpMap; sampler2D _MetallicMap; sampler2D _OcclusionMap; half _OcclusionStrength; void surf(Input IN, inout SurfaceOutputStandard o) { fixed4 c = UNITY_SAMPLE_TEX2DARRAY(_MyArr, float3(IN.uv_MyArr, UNITY_ACCESS_INSTANCED_PROP(_TextureIndex_arr, _TextureIndex))) * UNITY_ACCESS_INSTANCED_PROP(_Color_arr, _Color); o.Albedo = c.rgb; fixed4 metal = tex2D(_MetallicMap, IN.uv_MyArr); o.Metallic = metal.r * UNITY_ACCESS_INSTANCED_PROP(_Metallic_arr, _Metallic); o.Smoothness = metal.a * UNITY_ACCESS_INSTANCED_PROP(_Glossiness_arr, _Glossiness); o.Alpha = c.a * UNITY_ACCESS_INSTANCED_PROP(_Color_arr, _Color).a; clip(o.Alpha - UNITY_ACCESS_INSTANCED_PROP(_Cutoff_arr, _Cutoff)); o.Occlusion = tex2D(_OcclusionMap, IN.uv_MyArr) * _OcclusionStrength; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)) * UNITY_ACCESS_INSTANCED_PROP(_BumpScale_arr, _BumpScale); } ENDCG } } Mfg Mustaf
  16. Grüße, kann mir jemand erklären wie man über einen Raycast überprüfen kann ob man den linken, rechten, oberen oder unteren Rand des BoxColliders getroffen hat? (Damit meine ich nicht die Seiten). Ich schicke einen Raycast aus auf ein Fundament und möchte dann die Mauern fixieren an die Seiten des Fundaments. Mfg Mustaf
  17. MustafGames

    LOD Group

    Grüße, wenn ich jetzt ein leeres Objekt erstelle und diesem, den LOD Group Script gebe, dann als Childs einige Objekte welche als LOD 2 einen Sprite haben und als LOD 1 den MeshRenderer, jetzt bewege ich mich mit einen Kamera Control Script weg von diesen Objekten, sie sollten eigentlich einzeln ab bestimmten Entfernungen sich ändern oder muss ich jeden Baum den Lod Group Script geben? Kurz gesagt, wenn man viele Objekte hat sollte man dann ein leeres Objekt mit dem LodGroup Script einsetzen oder jedem Objekt diesen Script einzeln geben? Mfg Mustaf
  18. Edit: https://unity3d.com/de/learn/tutorials/topics/graphics/realtime-global-illumination-daynight-cycle Hier lernt man eine Simple Lösung, den Mond müsste man dann z.b. als Sprite 1000 units vom Spieler entfernt mit einem "LookAtCamera" Script ausrüsten und dann passend zur Sonne bewegen.
  19. Grüße, habe hier noch einen Shader gefunden in meinen Projekten, der nicht mehr ganz aktuell ist und wenn ich die _BlendAlpha Variable per Script ändern möchte in der Update Methode (für Tag/Nacht Zyklus), hängt Unity kurz (laggt). Darüber ändere ich die Variable: RenderSettings.skybox.SetFloat("_BlendAlpha", Mathf.Lerp(0, 0.5f, currentTimeOfDay)); Der Shader:
  20. Grüße, kennt jemand von euch sich mit Druckflaschen aus? Ihc benötige einen Aufsatz oder das ganze Stück mit passenden Gewinde für diese Flasche um sie per Kompressor mit Standart Anschluss zu füllen. Mfg Mustaf
  21. Grüße, mir ist gerade aufgefallen, das man den Cloth-Script gut nutzen kann wenn man Custom-Gras-Meshs etwas leben einhauchen möchte, negativ ist dabei das der Cloth Script immer mehr Mesh Collider hinzufügt (Bug). Kann man irgendwo die Collision deaktivieren für Objekte mit dem Cloth-Script? Mfg Mustaf
  22. EDIT: Problem hat sich gelöst, die Skalierung war auf -1 also verkehrt herum und so hatte das Event keine Möglichkeit etwas anzuklicken.
  23. Grüße, bei meinem DragAndDrop funktioniert es zur Zeit nur im Screen Space - Overlay (Canvas Render Mode), die Methoden reagieren nicht im World Space Modus aber warum? public void OnBeginDrag (PointerEventData eventData) { itemBeingDragged = gameObject; GetComponent<CanvasGroup>().blocksRaycasts = false; curinv.RemoveItem(item); } #endregion Ist es den Überhaupt möglich mit der OnBeginDrag Methode im World Space zu arbeiten oder gibt es dazu etwas anderes, könnte ja auch an der PointerEventData liegen? Mfg Mustaf
  24. Ok, die Denkblockade ist gerade vorbei. Mathf.RoundToInt(hit.point.x / 16) * 16 16 dann mit der Zahl des Wunsches ersetzen :-) Ich habe eine Position z.b. 2,2f diese wird durch 16 gerechnet (0,1375), das Ganze wird dann gerundet (0) und mit 16 multipliziert (0). Weiteres Beispiel: 18.7 : 16 = 1,16875 --> 1 * 16 = 16
  25. Grüße, hätte da mal die Frage, wie würdet ihr folgendes berechnen? Ich möchte ein Objekt platzieren und das der Punkt soll ein Vielfaches von 16 sein. Beispiel: Position x = 0 und z = 15, dann soll es auf Position x = 0 & z = 0 platziert werden. Beispiel 2: x = 0 Und z = 18, dann soll es auf x = 0 & z = 16 platziert werden, geht dann immer so weiter mit 32, 64 etc.. Habe da gerade eine Denkblockade beim berechnen :/ Freue mich auf eure Antworten. Mfg Mustaf
×
×
  • Neu erstellen...