Jump to content
Unity Insider Forum

Kojote

Members
  • Gesamte Inhalte

    1.475
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    10

Alle erstellten Inhalte von Kojote

  1. Kojote

    Scale in Lightmap

    Hi! Hat irgendwer für mich eventuell ein paar Anhaltswerte für "Scale in Lightmap". Der Wert 0.0256 hat bei mir zum Beispiel im Terrain schlechte Ergebnisse gebracht, 0.5 war da schon viel besser. Gibt es vielleicht ein paar Anhaltswerte für Objekte, von wo man aus arbeiten kann? Dann noch eine Frage, einige Objekte benötigen bei mir recht viele UV-Charts. Hatte vor einer Weile bei ein paar Steinen schon einmal das UV-Chart Problem und hab mir da auch fast die Zähne ausgebissen. Jetzt wieder das Problem. Grüße v. Kojote
  2. Kojote

    Schwimmen

    Hi! Ich versuche gerade einen Ball auf der Wasseroberfläche zum Schwimmen zu bekommen. Eigentlich scheint das Tutorial hier recht simpel zu sein: Jedoch funktioniert der Spaß einfach nicht. Das Script ist drauf, die Y-Höhe des Wassers ist richtig, aber er fällt immer durchs Wasser durch. Hab das Script nur leicht geändert, aber auch das originale funktioniert nicht. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Water_Controler : MonoBehaviour { public Rigidbody rigidBody; private Transform waterPosition; public float depthBeforeSubmerged = 1f; public float displacementAmount = 3f; public bool waterAction = false; private void FixedUpdate() { if (!waterAction) { return; } if (transform.position.y < waterPosition.position.y) { float displacementMultiplier = Mathf.Clamp01(-transform.position.y / depthBeforeSubmerged) * displacementAmount; rigidBody.AddForce(new Vector3(0f, Mathf.Abs(Physics.gravity.y) * displacementMultiplier, 0f), ForceMode.Acceleration); } } private void OnTriggerEnter(Collider other) { if (other.gameObject.layer == 4) { // Layer 4 = Water waterPosition = other.gameObject.transform; waterAction = true; } } private void OnTriggerExit(Collider other) { waterAction = false; } } Sehr ihr da einen Fehler?
  3. Kojote

    Particle

    Hi! Mal ne Frage in die Runde, kann irgendwer gut Particel machen? Ich brauche eine Art Staub oder Blütenpollen Effekt, wenn man auf das Terrain tritt. Ich bekomms einfach net hin. In kleinem Maßstab halbwegs, sobald die Staubaufwirbelung größer wird, siehts einfach nur bescheiden aus. Grüße von Kojote
  4. 😁Hey, gibt's mal wieder Neuerungen, arbeitest du noch dran?
  5. Werd ich mal drüber nachdenken, ist ne gute Idee.
  6. Ja das mit den Steinen wurde mir schon paar mal gesagt, da muss ich noch mal etwas korrigieren. Was meinsst du mit Aura2? Benutze TextmeshPro.
  7. Kojote

    NavMesh

    Grüße! Ich nutze für mein KI Nav Mesh, genauer gesagt Nav Mesh Surface. Ich hab in einem GameObject zwei mal Surface drin, einmal Rabbit, einmal Corcodile. Include Layer: Terrain: Default Area: Walkable Klappt ganz gut, Problem ist nur, wie lege ich Not Walkable fest? Werde da irgendwie nicht schlau draus. Ich habs mit mehren Objekten getestet und unter Navigation im Mesh Renderer die Objekte auf Non Walkable gestellt. Neu gebacken, aber das Wasser, um was es mir geht, ist immer noch Walkable. Habt ihr da ne Idee was ich falsch mache? Grüße Kojote EDIT: Ah, ok, ich hab bei Layers noch Water und Default rein gemacht und nun sieht das alles schon besser aus. In die Objecte die nicht mit gerendert weerden soll, muss noch das Script Nav Mesh Modifier rein.
  8. Kojote

    Cursor.visible

    Grüße! Sagt mal, kann es sein, dass seit Unity Version 2018, Cursor.visible nicht mehr in einer Coroutine aufgerufen werden kann? In normalen Methoden kein Problem, scheint diese Methode innerhalb einer Coroutine nicht zu funktionieren. Bugmeldung gibt es keine, scheint einfach übergangen zu werden. Grüße von Kojote
  9. Dankesehr! 😃 Stand sieht bisher so aus: - Hauptmenü ist fertig - Tutorial Level ist fertig - Grafik- und Modellmäßg ist alles fertig - ca. 90% aller Script sind fertig - SFX und Musik sind ca. 30 % vorhanden - Englische Übersetzung ist fertig, weitere sind in Planung Roadmap sieht folgender maßen aus. - Erst mal noch ein paar minimale Bugs ausgemerzt - KI und Kampfsystem sind noch nicht 100%ig optimal - Mein Partner baut derzeit fleißig die weiteren Landschaften der nächsten Level - Camerafahrten und In-Game-Videos kommen danach Joar, ist noch einiges zu machen. Aber das ambitioniertes Ziel ist es bis spätestens Mai der Release. 😎
  10. Grüße! Nach langer Zeit auch mal wieder etwas von mir in dieser Ecke des Forums. Der erste Teaser zu Game Alchemists neuem Projekt. 😀
  11. Kojote

    Camera

    Grüße! Ich hab hier ein Camerascript, welches ich gern umschreiben würde, leider fällt mir keine passende Lösung ein. Genau genommen, geht es um dieses Stück hier: m_CurrentDist = Mathf.SmoothDamp(m_CurrentDist, targetDist, ref m_MoveVelocity, m_CurrentDist > targetDist ? clipMoveTime : returnTime); m_CurrentDist = Mathf.Clamp(m_CurrentDist, minDistanceZoom, maxDistnceZoom); m_Cam.localPosition = -Vector3.forward * m_CurrentDist; Der Rest der If-Anweisung ist von mir: if (Input.GetAxis("Mouse ScrollWheel") != 0f) { float scroll = Input.GetAxis("Mouse ScrollWheel") * scrollSensitivity; scroll *= (this.m_CurrentDist * 0.3f); this.m_CurrentDist += scroll * -1f; this.m_CurrentDist = Mathf.Clamp(this.m_CurrentDist, minDistanceZoom, maxDistnceZoom); m_Cam.localPosition = -Vector3.forward * m_CurrentDist; } else { m_CurrentDist = Mathf.SmoothDamp(m_CurrentDist, targetDist, ref m_MoveVelocity, m_CurrentDist > targetDist ? clipMoveTime : returnTime); m_CurrentDist = Mathf.Clamp(m_CurrentDist, minDistanceZoom, maxDistnceZoom); m_Cam.localPosition = -Vector3.forward * m_CurrentDist; } } Die Else macht folgendes. Kollidiert die Kamera mit einem Objekt, weicht sie automatisch aus, dazu verändert sie auch ihre Position und Entfernung zum Spieler. m_CurrentDist ist dabei für die Entfernung zuständig. Diese Variable würde ich gern manipulieren. Den Wert im Inspector verändern funktioniert. Nur leider mein If- Statement nicht, der Scroll funktioniert zwar, wird aber ständig durch die Else zurück gesetzt. Habt ihr da ne Idee? Hier noch mal die gesamte Late-Update: private void LateUpdate() { float targetDist = m_OriginalDist; // initially set the target distance m_Ray.origin = m_Pivot.position + m_Pivot.forward * sphereCastRadius; m_Ray.direction = -m_Pivot.forward; var cols = Physics.OverlapSphere(m_Ray.origin, sphereCastRadius); // initial check to see if start of spherecast intersects anything bool initialIntersect = false; bool hitSomething = false; for (int i = 0; i < cols.Length; i++) // loop through all the collisions to check if something we care about { if ((!cols[i].isTrigger) && !(MalbersTools.CollidersLayer(cols[i],dontClip))) //is on a layer we don't want to clip { initialIntersect = true; break; } } if (initialIntersect) // if there is a collision { m_Ray.origin += m_Pivot.forward * sphereCastRadius; hits = Physics.RaycastAll(m_Ray, m_OriginalDist - sphereCastRadius); // do a raycast and gather all the intersections } else // if there was no collision do a sphere cast to see if there were any other collisions { hits = Physics.SphereCastAll(m_Ray, sphereCastRadius, m_OriginalDist + sphereCastRadius); } Array.Sort(hits, m_RayHitComparer); // sort the collisions by distance float nearest = Mathf.Infinity; // set the variable used for storing the closest to be as far as possible for (int i = 0; i < hits.Length; i++) // loop through all the collisions { // only deal with the collision if it was closer than the previous one, not a trigger, not in the Layer Mask if (hits[i].distance < nearest && (!hits[i].collider.isTrigger) && !MalbersTools.CollidersLayer(hits[i].collider,dontClip)) { nearest = hits[i].distance; // change the nearest collision to latest targetDist = -m_Pivot.InverseTransformPoint(hits[i].point).z; hitSomething = true; } } if (hitSomething) // visualise the cam clip effect in the editor { Debug.DrawRay(m_Ray.origin, -m_Pivot.forward * (targetDist + sphereCastRadius), Color.red); } // hit something so move the camera to a better position protecting = hitSomething; if (Input.GetAxis("Mouse ScrollWheel") != 0f) { float scroll = Input.GetAxis("Mouse ScrollWheel") * scrollSensitivity; scroll *= (this.m_CurrentDist * 0.3f); this.m_CurrentDist += scroll * -1f; this.m_CurrentDist = Mathf.Clamp(this.m_CurrentDist, minDistanceZoom, maxDistnceZoom); m_Cam.localPosition = -Vector3.forward * m_CurrentDist; } else { m_CurrentDist = Mathf.SmoothDamp(m_CurrentDist, targetDist, ref m_MoveVelocity, m_CurrentDist > targetDist ? clipMoveTime : returnTime); m_CurrentDist = Mathf.Clamp(m_CurrentDist, minDistanceZoom, maxDistnceZoom); m_Cam.localPosition = -Vector3.forward * m_CurrentDist; } } Grüße von Kojote
  12. Kojote

    Editor

    Grüße! Mal eine Frage zum Editor bzw. zum Inspector. Ich hatte mal in einem Script gesehen, dass, wenn man bei einem Script im Inspector ein Häkchen setzt, weitere Felder im Script angezeigt wurden. Häkchen entfernt und sie wurden wieder versteckt. Wie funktioniert das? EDIT: Hab jetzt gerade folgendes durch Zufall gefunden: https://answers.unity.com/questions/192895/hideshow-properties-dynamically-in-inspector.html Habs nun mal genau abgeschrieben und funktioniert nicht.^^ Editor-Script liegt im Editor Ordner unter Assets. [CustomEditor(typeof(LD_SP_Food))] public class HideFieldEditor : Editor { void OnInspectorGUI() { var script = target as LD_SP_Food; script.isCadaver = GUILayout.Toggle(script.isCadaver, "Flag"); if (script.isCadaver) script.ID = EditorGUILayout.IntField("I field:", script.ID); } } EDIT 2: Ich bekomm das Script oben nicht zum laufen, keine Ahnung an was es liegt. Hab aber was anderes vom User "DMGregory" gefunden: https://gamedev.stackexchange.com/questions/157127/how-to-make-a-property-visible-in-the-inspector-window-if-another-property-is-tr public bool isLightOn = false; [ConditionalProperty("isLightOn")] public float brightness; public class ConditionalPropertyAttribute : PropertyAttribute { public string condition; public ConditionalPropertyAttribute(string condition) { this.condition = condition; } } using UnityEditor; [CustomPropertyDrawer(typeof(ConditionalPropertyAttribute))] public class ConditionalPropertyDrawer : PropertyDrawer { // Determine whether this field should be visible. // (We could probably do some caching here...) bool ShouldShow(SerializedProperty property) { var conditionAttribute = (ConditionalPropertyAttribute)attribute; string conditionPath = conditionAttribute.condition; // If this property is defined inside a nested type // (like a struct inside a MonoBehaviour), look for // our condition field inside the same nested instance. string thisPropertyPath = property.propertyPath; int last = thisPropertyPath.LastIndexOf('.'); if (last > 0) { string containerPath = thisPropertyPath.Substring(0, last + 1); conditionPath = containerPath + conditionPath; } // Get the SerializedProperty representing the field that is our criterion. var conditionProperty = property.serializedObject.FindProperty(conditionPath); // For now, we'll only support bool criteria, and default to visible if there's a problem. if (conditionProperty == null || conditionProperty.type != "bool") return true; // Use the condition property's boolean value to drive visibility. return conditionProperty.boolValue; } public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { if(ShouldShow(property)) EditorGUI.PropertyField(position, property, label, true); } public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { if (ShouldShow(property)) { // Provision the normal vertical spacing for this control. return EditorGUI.GetPropertyHeight(property, label, true); } else { // Collapse the unseen derived property. return -EditorGUIUtility.standardVerticalSpacing; } } } Grüße von Kojote
  13. Kojote

    Dig a Hole

    Grüße! Ich bin gerade dabei meinen Tier das Graben beizubringen. An sich das Graben ist keine große Sache, mein Problem ist gerade: Wie kann ich es vermeiden, dass ein Spieler auf einer Felskante steht und vor ihm in der Luft das Graben anfängt? Ebenfalls, wie kann ich verhindern, dass er nur im Gras und nicht auf Steinen gräbt? Hoffe ihr habt ne Idee und danke schonmal! Grüße von Kojote
  14. Kojote

    Lichtberechnung

    Grüße! Lichtberechnung mit Realtime und Baked Light hab ich in den letzten Projekten ja schon nutzen müssen. Nun hab ich das ganze in einer grüßeren Dimension, einer Landschaft. Hier dauert das Backen nun eine ganze Ecke länger. Da ich Low-Poly Style fahre, hat mein Grafiker die Landschaft nun teilweise mit großen Lowpolysteinen gebaut. Sieht ganz gut aus, nun aber dauert die Lichtberechnung eine gefühlte Ewigkeit, wir reden wir von 2 - 3 h bei einer 400 x 400 x 130 m Karte. Nun hab ich mich noch mal etwas schlauer gemacht und bin nun auf neue Einstellungen gestoßen, die ich bisher immer so gelassen habe. Unter Scene hab ich z.B. mal "UV Charts" angeschalten und hab nun einen ziemlichen Farmklantsch. Unter anderem hab ich nun im Mesh Renderer drei neue Optimierungen gefunden: Max Distance Specify the maximum worldspace distance to be used for UV chart simplification. If charts are within this distance, Unity simplifies them. Max Angle Specify the maximum angle in degrees between faces sharing a UV edge. If the angle between the faces is below this value, Unity simplifies the UV charts. Ignore Normals Enable this option to prevent Unity from splitting the UV charts during the precompute process for Realtime Global Illumination lighting. Leider mal wieder typischer Unity Text, ich versteh mal wieder nur die Hälfte, was diese Einstellungen bewirken. Was machen die? Und was macht "Scale in Lightmap", hier steht bei mir 1. Ich mache eine Realtime Berechnung, hat die Scale dann eigentlich einen Einfluss drauf oder hilt das nur bei Baked-Lightning? Ich hab jetzt mal "Max Distance" von 0.5 auf 0.4 geändert und "Ignore Normals" aktiviert. Der Farbklantsch ist nun fast komplett weg. Die Berechnung scheint auch ne ganze Ecke schneller zu sein. Ergebnis kenne ich leider noch nicht, er rechnet noch. Ach ja, alle Objekte der Landschaft haben Static drin. Noch ne Frage, nutzt man bei Realtime-Light die Lightprobes oder nur bei Baked Light? Kann mir hier wer weiter helfen? Grüße von Kojote
  15. Kojote

    SkinWeights

    Woher der Bug kommt weis ich nicht, der Fehler ist aber in der Settings Datei von mir. Die Scripte sind komplett gleich, füge ich aber das eine ein, kommt der Bug. Keine Ahnung was da ist. Datei "beschädigt"?
  16. Kojote

    Gras Shader

    Grüße! Hab hier bei einem Gras Asset die Meldung: XYZ must use the Nature/Soft Occlusion shader. Otherwise billboarding/lighting will not work correctly. Den Shader hab ich aber nicht. Unter Nature finde ich nur Terrain, Terr und Speedtree, jedoch kein Soft Occulsion Shader. Nutze Unity 2018, welchen sollte ich dann nehmen? Grüße von Kojote
  17. Kojote

    SkinWeights

    Grüße! "The type or namespace name `SkinWeights' could not be found. Are you missing an assembly reference?" Diesen netten Bug bekomme ich, wenn ich mein Projekt von Unity 2017 auf Unity 2018 hole. Bemängelt wird SkinWeights in diesem Abschnitt: [Serializable] public class LD_SP_System_Settings_Quality_Default { public string name; public int pixelLightCount = 3; public int masterTextureLimit = 0; public AnisotropicFiltering anisotropicFiltering = AnisotropicFiltering.ForceEnable; public bool softParticles; public bool realtimeReflectionProbes; public bool billboardsFaceCameraPosition; public ShadowQuality shadows; public ShadowResolution shadowResolution; public float shadowDistance; public int shadowCascades; public SkinWeights blendWeights; public int verticalSync = 1; //false = Dont sync; True = Every V Bank public float lodBias = 2f; public int particleRaycastBudget = 4096; } Ich weis nicht, was er will, der Namespace UnityEngine ist vorhanden und auf Version 2017 gab es keine Problem. Auch als ich das Projekt kurzzeitig auf Version 2019 hatte, gabs keine Probleme. Nun findet er SkinWeights nicht mehr. EDIT: So, konnte das Problem eingrenzen. In Version Unity 2017 und Unity 2019 Version, kann ich in VS folgendes eingeben: QualitySettings.skinWeights Auf Version Unity 2018 gebe ich das selbe ein und wird nicht gefunden. Anscheinend fehlt dort das Enum skinWeights oder ist nicht unter QualitySettings zu finden. Laut Unity 2019 ist das Enum vorhanden, irgendwas bugt da in 2018: https://github.com/Unity-Technologies/UnityCsReference/blob/master/Runtime/Export/Graphics/GraphicsEnums.cs Hat einer ne Idee? Grüße von Kojote
  18. Grüße! Mal ne Frage, ich habe aus dem Asset Store ein Modell. Hier liegt eine FBX Datei vor, in Idle, dazu noch 7 Animationsdateien. So, ich nutze Emerald AI für meine Enemys. Ich bräuchte für zum Beispiel für Attack auch eine FBX Datei, da ich Animations Events nutzen möchte. Frage wäre, kann ich in Unity über die Animations-Dateien auch eine FBX erstellen oder muss ich hier über ein 3D Programm gehen? Gibts alternativ noch ne Möglichkeit für die Animations-Events? Grüße von Kojote
  19. Kojote

    NavMesh Probleme

    Hi! Ich hab ein paar Probleme mit dem NavMesh. Ich habe testhalber mal einen NavMesh eingebaut und den Agent Type auf Humanoid gelassen. NavMesh Bake habe ich gemacht, funktioniert alles. Nun habe ich einen neuen Agent Type erstellt, wieder Bake gemacht und bekomme einen Berg an Fehlermeldungen, sobald ich in Nav Mesh Abend auf den neuen Type stelle. Hat einer ne Idee warum? Grüße Kojote
  20. Kojote

    Suche Mauscursor

    Hi! Sehr eigenartige Frage, ich weis, aber wo ist im Build mein Mauscursor. In Unity ist mein Mauscursor da und im Start steht, dass der Cursor sichtbar geschalten werden soll. Im Build ist der Cursor weg. Habt ihr ne Idee? EDIT: Korrektur, ich teste gerade im Fenstermodus. Wenn ich ihn außerhalb vom Spiel verschiebe, also im normalen Desktopbereich ist der Cursor zu sehen, hole ich ihn ins Spiel ist er am Rand kurz sichtbar und verschwindet dann. 🤨 EDIT 2: Ich hab jetzt mal in den Player-Settings einen Default-Cursor angegeben. Im Unity-Editor-Play-Mode wird mir der Cursor angezeigt, im Build nicht. EDIT 3: OK, "Fehler" gefunden. Hatte ein Image zum Einblenden deaktiviert. Das hat er im Editor ignoriert, jedoch im Build hat er die Coroutine gestoppt und erst danach war Cursor.Visible = true. Nebenfrage, war nicht mal in der 2017 Version die Debug-Console automatisch ab der ersten Karte an. Ich hab nun nen Dev-Build mit Console erstellt und bekomm die Console erst im Hauptspiel, nicht aber im Main-Menue. Grüße von Kojote
  21. Grüße! Mal ne Frage, ist zwar jetzt Kindergarten, aber da ich heute gerade was drüber gelesen habe und immer was anderes da stand, mal die Frage zu. & bzw. | ist ja eine Bitweise Verknüpfung. && bzw || wäre eine Logische Verknüpfung. Ich hab folgendes gelernt: if((a > b) & (b = c) & (d = a)){ // Do } Hier würde jede einzelne Klammer kontrolliert und ausgewertet werden, anders hier: if((a > b) && (b = c) && (d = a)){ // Do } Durch das doppelte && würde schon nach der ersten Klammer aufgehört zu arbeiten, wenn hier ein false kommen würde. Man würde sich damit den Rest sparen. Ist das so korrekt? Grüße von Kojote
  22. Kann ich nur abraten, 3D Max ist Geldverschwendung, damit bist du gut im Architektenbereich, jedoch für unsere Zwecke gänzlich falsch. Unübersichtlich, überladen und Bugreich. Ich kann eher Cinema 4D empfehlen, gut aufgebaut, übersichtlich, einsteigerfreundlich und vor allem das wichtigste FBX Im-und Export funktionieren auch mal.
  23. Kojote

    Poly Painting

    Grüße! Ich hab nen 3D Modell, sehr Lowpoly, hierzu gibt es nur eine einzige Textur, weil das Modell nur aus gut 16 Farben besteht. Ich wollte dem Spieler gern die Möglichkeit geben, im Spiel selbst etwas Hand anzuglegen. Es gibt ja Ingame Painting, zum Beispiel hier: Gibts das auch, Poly für Poly zum malen? Das man nur bestimmte Polys anmalt bzw. dem Spieler Gruppen von Polys anbietet, die er farblich ändern kann? Hier mal ein Bild worum es geht: Grüße v. Kojote
×
×
  • Neu erstellen...