Jump to content
Unity Insider Forum

MustafGames

Members
  • Posts

    436
  • Joined

  • Days Won

    4

MustafGames last won the day on February 20 2019

MustafGames had the most liked content!

Recent Profile Visitors

2,455 profile views

MustafGames's Achievements

Advanced Member

Advanced Member (3/3)

10

Reputation

  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. 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
×
×
  • Create New...