Jump to content
Unity Insider Forum

Kojote

Members
  • Posts

    1,459
  • Joined

  • Last visited

  • Days Won

    10

Kojote last won the day on May 13 2021

Kojote had the most liked content!

Recent Profile Visitors

3,791 profile views

Kojote's Achievements

Advanced Member

Advanced Member (3/3)

51

Reputation

  1. Hi! Mit der letzten und vorletzten neuen Version von Unity 2020 habe ich wunderbare zufällige Fehler bekommen: (0,0): error System.IO.IOException: Sharing violation on path C:\Users\User\Documents\Project\Temp\Assembly-CSharp.dll Es kommen einige Fehler aus dem Temp Ordner, immer mit Sytsem.IO.IOException. Ich muss Unity neustarten, denn sind die Fehler weg. Leider kann ich auch nicht sagen wodurch sie ausgelöst werden, da sie zufällig erscheinen. Hat jemand die selben Probleme oder eine Lösung dafür? Grüße von Kojote
  2. Also eigentlich einmal abspielen, dann rückwärts abspielen und dann das gesamte wieder von vorn.
  3. Hi! Ich habe zwei Modelle die noch Legacy Animationen verwenden. Umgestellt auf Generic habe ich jedoch das Problem das die Animationen nun unvollständig sind. Der Ersteller hat bei den Legacy Animationen 'Wrap Mode - Clamp Forever' eingestellt. Problem damit ist nun dass beide Vögel ihre Schwingen von unten nach oben bewegen und danach das selbe wieder. Schwingen von oben nach unten hatte Clamp Forever erledigt, scheint es aber in den Generic Animationen nicht mehr zu geben. Kann man das irgendwie fixen außer die gesamte Animation neu zu erstellen? Grüße von Kojote
  4. Hallo! Ich habe ein Problem, das ich mir nicht erklären kann. Nennen wir es einfach "Bewegliche Schattenkante im Terrain". Wenn ich mich dem Terrain nähere, gibt es einen kreisförmigen Farbunterschied im Terrain. Je näher ich komme, desto größer wird er. Wenn ich auf dem Terrain stehe, ist es etwa 300 m entfernt. Denselben Effekt habe ich auch im Editor, wenn ich hinein- und herauszoome. Kann mir jemand sagen, woran das liegt? Bei Bild 4 sieht man es am besten.
  5. Hi! Ich habe mein Projekt von BuildIn zu URP 10.8 gewechselt. Die Umstellung der normalen Materlianien funktionierte gut. Nur die Partikel machen eine Menge Probleme. Wie hier am Bild zu sehen: Rechts Original, Links Nachbau. Selbe EInstellungen, nur wird links nichts angezeigt. Hat jemand eine Idee?
  6. Hi! Ich hab mich mal wieder mitd em Frame Debugger beschäftigt, da ich an einer Stelle einen plötzlichen Performanceeinbruch in der Map habe, den ich mir nicht erklären kann. Im Debugger habe ich eine rießige Liste mit "Draw Mesh". Keine Infos und nichts dazu. Was ist das? Liegt dies an Vegetation Studio oder ist das ein Fehler?
  7. Was im Endeffekt auch reichen würde, wäre eine Plane die die selbe Farbe hat wie das Terrain und knapp unter dem Terrain ist. Hatte ich schon einmal probiert. Das Problem war jedes mal, dass die Plane und das Terrain nie 100%ig die selbe Farbe hatten und unterschiedlich auf das Licht reagiert haben.
  8. Wäre eine Option. Nur beabsichtige ich den Rand der Welt als Teleporter zu nutzen. Da ich bei meinem Spiel auf Distanz setze, um Weite zu erzeugen hat man eine relativ hohe Sichtweite. Würde ich den Teleporter also weiter nach innen setzen, was ja eine Option wäre, verliere ich gut 1/5 meiner gesamten Map. Hast du eine Idee wie solche Shader sich nennen? Ich habe ein Wüstengebiet, von daher sind dichte Bäume keine Option, ebenfalls keine Mauer. Der Rand des Terrains dient auch als Teleporter-Trigger in einen anderen Bereich. Es soll also so aussehen, als läuft man einfach in das nächste Gebiet. Wäre eine Idee, werde ich auf jeden Fall mal austesten wie es wirkt.
  9. Hi! Ich überlege mal wieder wie ich das Ende meiner Welt verbessern kann. Da ich ein flaches Terrain habe fällt ein Berg als Kante aus. Idee war bisher es mit hohem Gras zu kaschieren. Funktioniert aber nicht, wenn die Sichtweite doppelt so hoch ist, wie das Gras gerendert wird. Nächste Idee war ein Nebel, der müsste aber wieder dermaßen dicht sein, dass es unatürlich wirkt. Problem auch, er verdeckt nicht wirklich die Kante, sie scheint immer noch durch. Neue Idee von mir, eine Art Verzerrungsbereich. Wenn man an warmen Tagen in die Ferne schaut verschwimmt ja alles. Gibt es so etwas als Shader und wäre es möglich dies auf eine Spline zu legen, die ich am Terrain ausrichte?
  10. OK, ich konnte den Fehler einkreisen, er kommt aus dieser Klasse: using System.Collections; using System.Collections.Generic; using Unity.Collections; using Unity.Entities; using Unity.Mathematics; using Unity.Transforms; using UnityEngine; namespace Dungeon_Emperor { public class DE_Map_Loader_Authoring : MonoBehaviour, IConvertGameObjectToEntity { public DE_Game_Map_Configuration gameMap; public List<DE_Map_Tile_View_Configuration> tileViewConfigurations; public GameObject floorColliderPrefab; public GameObject solidColliderPrefab; public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { // Define Archetype for every MapTile var mapTileArchetype = dstManager.CreateArchetype( typeof(DE_Map_Tile), typeof(Translation), typeof(Rotation), typeof(LocalToWorld) ); int mapWidth = gameMap.terrain.width; int mapHeight = gameMap.terrain.height; // Create entities for every tile var tileEntities = new NativeArray<Entity>(mapWidth * mapHeight, Allocator.Temp); dstManager.CreateEntity(mapTileArchetype, tileEntities); // Get pixels from the terrain and territory textures var terrainPixels = gameMap.terrain.GetPixels32(); var territoryPixels = gameMap.territory.GetPixels32(); for(int y = 0; y < mapHeight; y++) { for(int x = 0; x < mapWidth; x++) { int tileIndex = x + y * mapWidth; var tileEntity = tileEntities[tileIndex]; dstManager.SetName(tileEntity, $"Tile {x} {y}"); // Define owner and MapTile type by pixel color int owner = gameMap.palette.GetPlayer(territoryPixels[tileIndex]); DE_Map_Tile_Type terrainType = gameMap.palette.GetTerrain(terrainPixels[tileIndex]); var type = terrainType; //Owned empty tiles will become MapTileType.Tile, owned earth tiles will become MapTileType.Wall if(type == DE_Map_Tile_Type.Empty && owner > 0) type = DE_Map_Tile_Type.Tile; else if(type == DE_Map_Tile_Type.Earth && owner > 0) type = DE_Map_Tile_Type.Wall; // Assign information to entity dstManager.SetComponentData(tileEntity, new DE_Map_Tile { Type = type, Owner = owner, Position = new int2(x, y)}); dstManager.SetComponentData(tileEntity, new Translation { Value = new float3(x + 0.5f, 0, y + 0.5f) }); dstManager.SetComponentData(tileEntity, new Rotation { Value = quaternion.identity }); } } // construct BlobAsset containing the Entity id for every cell of the map using(BlobBuilder blobBuilder = new BlobBuilder(Allocator.Temp)) { ref DE_Map_Tile_Blob_Asset tileMapAsset = ref blobBuilder.ConstructRoot<DE_Map_Tile_Blob_Asset>(); BlobBuilderArray<Entity> tileArray = blobBuilder.Allocate(ref tileMapAsset.Map, mapWidth * mapHeight); // Copy MapTile entities to blob array for(int t = 0; t < mapWidth * mapHeight; t++) { tileArray[t] = tileEntities[t]; } // Create immutable BlobAssetReference var assetReference = blobBuilder.CreateBlobAssetReference<DE_Map_Tile_Blob_Asset>(Allocator.Persistent); // Assign BlobAssetReference to GameMap dstManager.AddComponentData(entity, new DE_Game_Map { TileMap = assetReference, Width = mapWidth, Height = mapHeight }); } tileEntities.Dispose(); // Initialize systems var world = World.DefaultGameObjectInjectionWorld; world.GetOrCreateSystem<ED_Tile_View_System>().ConvertMapTileViewConfigurations(tileViewConfigurations); } } } Ich vermute fast das, dass Problem mapWidth und mapHeight zu hoch sind. Wobei es nur 256 x 256 ist. Was jedoch 65536 Entities wären. Nach dem was ich gelesen habe und das richtig verstehe hat der Entitie Speicher ein 16 kb Limit.
  11. OK, ich konnte vermutlich das Problem lösen. Nun wenn ich starte bekomme ich diesen Fehler:
  12. Hätte nicht gedacht das ich da echt was dazu finden, wenn ich den Namen + Unity eingebe. xD Hab ein schönes Tutorial gefunden. Leider hat Unity vor kurzem das gesamte JobSystem über den Haufen geworden, was das halbe Tutorial zerstörte. 🤨 https://docs.unity3d.com/Packages/com.unity.entities@0.50/manual/upgrade-guide.html#nestedefe Folgendes Stück funktioniert zum Beispiel nicht mehr: protected override JobHandle OnUpdate(JobHandle inputDeps) { // create concurrent commandbuffer that can be used in mulithreaded burst jobs var commandBuffer = _commandBufferSystem.CommandBuffer.ToConcurrent(); // get all entities that require an update var updateEntities = _updateQuery.ToEntityArray(Allocator.TempJob); // first we wanna clean up all ViewPart Entities currently attached to the MapTiles that require an update // iterate over all ViewParts var cleanUpViewPartsHandle = Entities.WithAll<ViewPart>().ForEach((int entityInQueryIndex, Entity entity, in Parent parent) => { // if parent requires update if (updateEntities.Contains(parent.Value)) { // destroy ViewPart Entity commandBuffer.DestroyEntity(entityInQueryIndex, entity); } // we need to tell the compiler that we will only read the updateEntities array. when the job is complete dispose it }).WithReadOnly(updateEntities).WithDeallocateOnJobCompletion(updateEntities).Schedule(inputDeps); ...... Das habe ich nun folgend abgeänert: protected override void OnUpdate() { // Create concurrent commandbuffer that can be used in mulithreaded burst jobs var commandBuffer = commandBufferSystem.CreateCommandBuffer().AsParallelWriter(); // Get all entities that require an update var updateEntities = updateQuery.ToEntityArray(Allocator.TempJob); // First we wanna clean up all ViewPart Entities currently attached to the MapTiles that require an update // Iterate over all ViewParts var cleanUpViewPartsHandle = Entities.WithAll<ED_View_Part>().ForEach((int entityInQueryIndex, Entity entity, in Parent parent) => { // If parent requires update if(updateEntities.Contains(parent.Value)) { // destroy ViewPart Entity commandBuffer.DestroyEntity(entityInQueryIndex, entity); } // We need to tell the compiler that we will only read the updateEntities array. when the job is complete dispose it }).WithReadOnly(updateEntities).WithDisposeOnCompletion(updateEntities).Schedule(inputDeps); ...... Problem ist, im alten Code existiert der Parameter 'inputDeps'. Dieser ist nun nicht mehr vorhanden. Ich hab keine Ahnung wo er her kommt oder was er macht. Kann mir jemand weiter helfen?
  13. Hi! Ich grübel über ein kleines Minispiel nach. Bei dem der Spieler Blöcke abbauen kann. Nein, es soll kein Minecraft Clon werden, aber die Technik ist ähnlich. Hier mal ein Bild zur Hilfe: Man hat ein "Terrain" oder besser gesagt Boden, auf diesem sind Blöcke. Einige von diesen Blöcken kann man abbauen, einige nicht. Erinnert mich stark an Voxeln. Darunter finde ich aber nichts, bzw. nur Minecraft zeug mit generierten Landschaften und der gleichen wie ich es bei Minecraft kenne. Ich wollte die Landschaften aber selbst erstellen und sagen wo ein Spieler buddeln darf und wo nicht. Zudem brauch ich nur eine Ebene und nicht wie in Minecraft hunderte. Hat jemand eine Idee bzw. Stichworte nach denen ich googeln kann?
×
×
  • Create New...