Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

All Activity

This stream auto-updates     

  1. Yesterday
  2. Custom Base-Textur für Terrain

    Der Terrainshader bekommt die 4 Splatmap + Controltextur + Basemap als Input ... Unity verwendet die berechnete Basetextur des Terrain ja von Haus aus, wenn die Kamera einen bestimmten Abstand zum Terrain hat. Man kann fürs Terrain unter den Settings auch einen eigenen Terrainshader definieren, aber ich denke das würde zu weit führen. Ich vermute man kommt an die Basetextur des Terrain von Außen nicht ran... Der Unityterrainshader ist ohnehin sehr performant, von daher würde ich mir hier keine Gedanken machen ...
  3. Custom Base-Textur für Terrain

    Wäre eine Möglichkeit, aber dadurch würde die ja nicht korrekt verwendet. Ich schätze mal ich müsste die dem Base-Shader händisch übergeben. Kann man das mit einem Skript machen? Dann wäre es doch egal wo ich die hinpacke oder? Lohnt sich der Aufwand überhaupt dafür. Ich meine ist der Performance-Gewinn druch eine Base-Textur signifikant wenn maximal die hälfte des Terrains davon betroffen wäre, oder hab ich das wieder raus, wenn ich einfach 3 Bäume weniger in die Scene setze?
  4. Custom Base-Textur für Terrain

    Ich denke nein, Unity berechnet soweit ich weiß die Basetextur aus den Splatmaptexturen + Controltexturen. Du kannst aber deine "Basetextur" als Splatmaptextur 1 (bzw. 0) des Terrains übergeben. Unity füllt das Terrain ja mit der Splatmaptextur 1 vollständig aus (sozusagen die Grundierung). Wenn du die "Size" der Splatmaptextur auf die Größe deines Terrains ziehst, dann wird deine Textur über das komplette Terrain gezogen (und nicht gekachelt). Allerdings wird die Textur des Terrain damit pixelig, da Unity ja nun nicht mehr die Auflösung der Splatmaptextur erhöhen kann, wenn die Kamera dichter an's Terrain kommt ...
  5. Custom Base-Textur für Terrain

    Hallo, gibt es eine Möglichkeit um eine eigene Base-Textur fürs Terrain zu machen? Ich dachte notgedrungen an einen Screenshot von dem Terrain, aber konnte niergendwo im Terrain finden, wo ich die Texture anhängen kann.
  6. Billboards

    Hab deine Grafik angeschaut und deine Alpha geht bis an den unteren Rand und dies ist schlecht! Im Alphachannel sollte unten ein schwarzer Rand sein mit mind. 2-3 Pixel Breite ...
  7. Billboards

    Wie werden denn die Billboard in Unity dargestellt? Beim "Edge Padding" werden im Endeffekt die Ränder der Textur nach außen gezogen und der Hintergrund an die Textur angeglichen. Hier ein Beispiel. Damit soll ein "Color Bleeding" verhindert werden, aber dein Problem sieht eher nach einem "Randproblem" aus, d.h. die UV greift über die Textur hinaus...
  8. Billboards

    Es ist seltsam, die meisten Billboards sind OK. Habe das Problem nur bei einigen - die hab ich nun im Photshop durchgecheckt Ränder vergrößert, auch in versch. Dateiformaten abgespeichert, Ergebnis ist aber leider immer dasselbe. Es muss an Unity liegen, hab alles mögliche probiert, eine der "üblen" Dateien hab ich hier mal angehängt. Was tut man beim "Edge padding"? bush_7217.tif
  9. Objekteigenschaften ansprechen per Script

    Sieht ein wenig "konfus" aus. Dies hier ist völlig verkehrt: public class Spawner : MonoBehaviour { void Start () { TileClass tileClass = new TileClass(); tileClass.init(); } } Eine MonoBehaviour-Klasse wird nie mit "new" erzeugt! Was genau lädst du mit?: tileObject = Resources.Load("Tile") as GameObject; Resources.Load sollte man wenn es geht vermeiden, da dies eigentlich nur für bestimmte Spezialfälle gut ist und ich glaub du ganz etwas anderes machen willst: Du solltest folgendermaßen vorgehen: erstelle ein GameObject in deiner Szene und hänge die Klassen dran die du brauchst (z.b. die TileClass-Klasse) mache ein Prefab aus diesem GameObject in der Szene: das Szenenobjekt mit der Maus in deinen Projektfolder ziehen ( = Prefab) Szeneobjekt aus der Szene löschen dieses Prefab übergibst du deinem Spawnerskript (siehe unten) Der Code könnte dann folgendermaßen aussehen: using UnityEngine; public class Spawner : MonoBehaviour { private GameObject[] entities; public GameObject prefab; // Hier dein erzeugtes Prefab draufziehen mit deiner TileClass Klasse void Start() { // Ich erzeuge hier mal nur 1 Objekt GameObject tileGO = Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity) as GameObject; TileClass tile = tileGO.GetComponent<TileClass>(); tile.value = 10; } } using UnityEngine; public class TileClass : MonoBehaviour { public int value; private void OnMouseDown() { this.value; } }
  10. [multi language] Spiel in mehreren Sprachen erstellen

    Ein kleiner Hinweis. Manche Frameworks verwenden den englischen Text als Schlüssel. Damit sind Teilübersetzungen auch verwendbar und falls alle Stricke reißen kann man es trotzdem noch lesen. Vor allem auch im Editor. stone=Stein start new game=Neues Spiel starten
  11. OnMouseUp, OnDrag Alternative für Mobile

    Nun das kommt auf die Aufgabe an Wenn ich schon beim Anklicken auf das Objekt kinematic auflösen möchte, damit ich ihn physisch bewegen kann und nicht erst nachdem ich ihn angefangen habe zu bewegen, was vermutlich nicht mal gehen würde, weil Objekt kinematic ist, dann helfen mir keine OnBeginDrag, oder OnDrag Funktionen. Wie ich jetzt verstanden habe, gibt es keine alternative Funktion für touch in Unity intergriert, aber auf Wiki haben sie einen Script zur Verfügung gestellt als Alternative für OnMouse_ zwar in Java aber immerhin schon was http://wiki.unity3d.com/index.php/OnTouch Wobei einige Entwickler meinen, dass man die Warnung ruhig ignorieren kann.
  12. Objekteigenschaften ansprechen per Script

    Ok, irgendwas mache ich noch falsch. //========| Script1 |=========== using System.Collections; using System.Collections.Generic; using UnityEngine; public class Spawner : MonoBehaviour { void Start () { TileClass tileClass = new TileClass(); tileClass.init(); } } //========| Script2 |=========== using System.Collections; using System.Collections.Generic; using UnityEngine; public class TileClass : MonoBehaviour { private GameObject tileObject; public int value; public void init() { tileObject = Resources.Load("Tile") as GameObject; tileObject.transform.position = new Vector3(0, 0, 0); value = 10; tileObject.AddComponent<TileScript>(); Instantiate(tileObject, tileObject.transform.position, tileObject.transform.rotation); } } //========| Script3 |=========== using System.Collections; using System.Collections.Generic; using UnityEngine; public class TileScript : MonoBehaviour { TileClass tileClass; private void OnMouseDown() { tileClass = GetComponent<TileClass>(); Debug.Log(tileClass.value); } } Wenn ich nun auf das Objekt klicke wird mir 0 ausgegeben, anstatt der gewünschten 10.
  13. OnMouseUp, OnDrag Alternative für Mobile

    OnMouseUp und OnDrag mische ich nicht zusammen. Für ein Drag nehme ich OnBeginDrag OnDrag und OnEndDrag. Vielleicht hilft dir das ja was
  14. Last week
  15. OnMouseUp, OnDrag Alternative für Mobile

    Ich weiß wie ich touch Input auslese. Das Problem ist ein Anderes. OnMouseDown und 2 weitere Funktionen, rufen sich automatisch auf, wenn ich auf das Objekt klicke, auf dem diese Funktionen im Script drauf sind. Ziemlich praktisch gemacht.
  16. Objekteigenschaften ansprechen per Script

    Ich sehe gerade da war noch ein Fehler in der Unity-Doku (woraus ich Teile des Codes kopiert hatte), hier sollte man nicht Transform als Datentyp fürs Prefab nehmen, sondern GameObject (das führt später sonst zu allerlei Problemen): //public Transform prefab; public GameObject prefab;
  17. Objekteigenschaften ansprechen per Script

    Ahh ok, jetzt habe ich es verstanden. Vielen Dank! LG: Niclas
  18. Objekteigenschaften ansprechen per Script

    // Instantiates 10 copies of prefab each 2 units apart from each other using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { private GameObject[] entities; public GameObject prefab; void Start() { entities = new GameObject[10]; for (int i = 0; i < 10; i++) { entities[i]= Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity) as GameObject; } } } Obiges Array "entities" speichert die 10 erzeugten GameObjekts. Für ein Zugriff auf eine Klasse die am jeweiligen GameObjekt hängt kannst du noch folgendes zusätzlich machen: entities[i] = Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity) as GameObject; // auf die Klasse "Missile" zugreifen die am GameObjekt hängt (also zuvor am Prefab) Missile missile = entities[i].GetComponent<Missile>(); missile.speed = 5.0f; // Eigenschaft speed der Klasse Missile setzen
  19. OnMouseUp, OnDrag Alternative für Mobile

    Schau mal bei https://docs.unity3d.com/ScriptReference/Touch-phase.html nach.
  20. Guten Abend, ich verwende OnMouseUp, OnMouseDown, OnDrag Funktionen um Objekte beim Klicken zu bewegen, das funktioniert zwar auch auf dem Android ziemlich gut, aber Unity warnt mich jedes mal, dass diese Funktionen ungeeignet sind für Mobile und ich sie ersetzen sollte. Gibt es irgendwelche alternative Funktionen für die touch Steuerung?
  21. Guten Abend, mein Ziel ist es gerade eine Map per Script zu erstellen (z.B. mit einer Größe von 10x10). Jedes Feld soll Eigenschaften besitzen. (z.B. posX = 1, posY = 1, menge = 100, etc.) Am generieren hängt es nicht, jedoch habe ich das Problem, dass ich nicht weiß wie ich ein bereits generiertes Objekt wieder ansprechen und somit auf die Eigenschaften zugreifen kann. Also wenn ich zum Beispiel ein Script auf allen Objekten habe und auf ein Objekt per "OnMouseDown()" zugreife, das dann die Position im Array ausgegeben werden kann. Hätte da vielleicht irgendjemand einen Hinweis für mich? Vielen Dank. LG: Niclas.
  22. Billboards

    Schwer zu sagen ohne weitere Informationen. Wie hast du dieses Billboard dargestellt? Oft tritt dieses Problem auf, wenn die Grafiken die auf einer Atlastextur platziert werden einen zu geringen Abstand zueinander haben (kann beispielsweise bei Detailtexturen des Unityterrains passieren. Diese werden nämlich von Unity intern auf einer 1024-Altastextur angeordnet, um die Performance zu optimieren. Hier hilft dann auch nur ein "Edge Padding" der jeweiligen Detailtextur die verschwimmt). Zudem gibt es auch noch einen ähnlichen Effekt beim internen erstellen von MipMaps in Unity. Hier kann es passieren, das bei einer Textur die UV-Ränder verwaschen, da beim MipMapping die Textur verkleinert wird. Auch hier hilft nur ein ensprechend breiterer Rand zwischen den "UV-Shapes". Meine Vermutung in deinem Fall wäre, daß ein entsprechend vergrößerter Rand um deine Billboardtextur helfen könnte. PS: Zu beachten ist auch, daß der Alphachannel-Rand ebenfalls groß genug sein sollte (= schwarzer Rand im Alphachannel)
  23. Mehrere Canvas-Objekte in Szene

    Ich denke mehrere Canvas(e) im "World Space"-Mode sind kein Problem. Damit kann man das Canvas im 3D-Raum positionieren und die Größe der Anzeige skaliert mit dem Abstand des Spielers/NPC zur Kamera. Möchte man dies nicht, dann ist denke die Methode von @Thariel besser, damit bleibt die Anzeigengröße unabhängig vom Abstand zur Kamera.
  24. Mehrere Canvas-Objekte in Szene

    Ich nutze immer ein Image als Background (z.B. Rot) und ein zweites Child-Image als eigentlichen Balken (z.B Grün). Danach ändere ich die grösse des Childs rectTransform.deltaSize = new Vector2(health, 10) um die Lebenspunkte anzuzeigen. Positionieren tu ich das ganze einfach mit transform.position = Camera.main.WorldToScreenPoint(target.position).
  25. Billboards

    Hi, alle zusammen, hab grade ein Problem: Billboards zeigen beim Rendern häßliche Kanten, was kann ich tun ?
  26. Hi, ich mache gerade eine Healthbar für einen multiplayer-Modus in Unity. Ich habe einen UI-Canvas mit Script, wo im Singleplayer die Healthbar in der Ecke angezeigt wird. Im Multiplayer soll diese jedoch deaktiviert und stattdessen über jedem Spieler eine Healthbar angezeigt werden. Allerdings benutzt meine Healthbar ein "Image"-Component (Ich benutze im Script "Image Type: Filled", das gibt's beim Sprite-Renderer leider nicht) und ist daher auf einen Canvas angewiesen. Daher hab ich nun überlegt für jeden Spieler einen Canvas mit Healthbar als Child anzulegen, damit diese ihm folgt. Wie performant ist es so viele Canvas-Objekte zu haben und gibt es einen bessern Weg/ bzw. macht das Sinn? Viele Grüße
  27. Sprite Shader- Color Tint

    So, nun hab ich aber was gut Hier der Shader (ich habe noch ein paar Zeilen aus dem Original Sprite Shader eingefügt für's PixelSnap und Flipping): Shader "Sprites/Beat/Diffuse-Shadow" { Properties { [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} _Color("Tint", Color) = (1,1,1,1) [MaterialToggle] PixelSnap("Pixel snap", Float) = 0 [HideInInspector] _RendererColor("RendererColor", Color) = (1,1,1,1) [HideInInspector] _Flip("Flip", Vector) = (1,1,1,1) _Cutoff("Shadow alpha cutoff", Range(0,1)) = 0.5 } SubShader { Tags { "Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout" "PreviewType" = "Plane" "CanUseSpriteAtlas" = "True" } LOD 200 Cull Off Lighting On ZWrite Off CGPROGRAM #pragma surface surf Lambert vertex:vert addshadow alphatest:_Cutoff #pragma multi_compile _ PIXELSNAP_ON #include "UnitySprites.cginc" struct Input { float2 uv_MainTex; fixed4 color; }; void vert(inout appdata_full v, out Input o) { v.vertex.xy *= _Flip.xy; #if defined(PIXELSNAP_ON) v.vertex = UnityPixelSnap(v.vertex); #endif UNITY_INITIALIZE_OUTPUT(Input, o); o.color = v.color * _Color * _RendererColor; } void surf(Input IN, inout SurfaceOutput o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * IN.color; o.Albedo = c.rgb; o.Alpha = c.a; } ENDCG } Fallback "Legacy Shaders/Transparent/Cutout/VertexLit" } Dieses Skript ist auch noch notwendig, damit der Sprite Renderer auch Schatten weiterleitet: using UnityEngine; using UnityEngine.Rendering; public class ControlSpriteRenderer : MonoBehaviour { private Renderer render; // Use this for initialization void Start () { render = GetComponent<Renderer>(); render.receiveShadows = true; render.shadowCastingMode = ShadowCastingMode.On; } } Der Schattenwurf scheint aber nur für's Directional-Light zu funktionieren. Bei einem Spot-Light scheinen keine Schatten zu entstehen ...
  1. Load more activity
×